Pro pripad, kdyby se nekdo trapil s vsftpd nastavovanim.
## Zdroj: https://linux.die.net/man/5/vsftpd.conf
## Rychlonavod:
## vytvorit dedikovaneho uzivatele (v duchu nobody,ftp) napr. ftp_user . NoHome, NoShell, clen skupiny "users"
## pridat nejaky testovaci - lokalni ucet do souboru povolenych uzivatelu
## vytvorit "konfiguracni" slozku pro vsftpd .... ( /srv/vsftpd ) podslozky: certs , vsFtpdChroot
## vytvorit "datovou" slozku pro vsftpd ( /mnt/MyData/vsFtpRoot ) kde budou pristupna data
## vygenerovat certifikaty pomoci openssl a ulozit do "certs" (nastavit prava 0700)
## pripravit si banner soubor, .message soubory
## pouzit example config dodany vsftpd balickem (nebo sample nize) a vytvorit ( /srv/vsftpd/vsftpd.conf )
## udelat symlink /etc/vsftpd.conf --> /srv/vsftpd/vsftpd.conf
## spustit pres /etc/init.d/vsftpd start
## zkontrolovat logy
## zkusit se pripojit pomoci nejakeho povoleneho lokalniho uctu co ma heslo,home a shell.
## --- FTP with explicit SSL (auth TLS)
background=YES ## spustit se jako demon
## listen=YES ## po spusteni naslouchat ...
## listen_address=192.168.1.1 ## ... na teto IP
## listen_port=21 ## ... na portu 21
## == listen parametry nejsou nutne pokud nebezi vicero instanci, ktere je potreba rozlisit.
anonymous_enable=NO ## zakazat anonymous uzivatele/nastaveni
## == osobne preferuji bezpecnost pred jednoduchosti :)
nopriv_user=ftp_user ## spustit se pod uzivatelem "nobody"
## == zde je doporucovano pouzit jiny mene vytizeny ucet , napr (ftp,ftp_user ...)
chown_uploads=YES ## zmenit vlastnika pro nahrane soubory
chown_username=ftp_user ## ... vynuceny vlastnik nahranych souboru
## == ftp_user je clenem "users" takze ostatni uzivatele maji grantovan pristup pres "group" prava
chown_upload_mode=0650 ## zmenit unix prava pro nahrane soubory
ftp_username=ftp ## ucet (nobody, ftp, ftp_user ... ) pro "anonymous" operace
local_enable=YES ## povolit lokalni uzivatele (je-li anonymous povolen, lze zakazat)
write_enable=YES ## povolit zapis na urovni systemu (prikazy: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE and SITE)
chroot_local_user=YES ## v kombinaci s ostatnimi "chroot" moznostmi, uzamkne uzivatele v hlavnim top level adresari
chroot_list_enable=NO ## povolit vylistovani v top level slozce
secure_chroot_dir=/srv/vsftpd/vsFtpChroot ## falesna top level slozka ( prazdna a patrici rootovi ci jinemu system like uzivateli )
## == vsftpd nepotrebuje zadna prava nad touto slozkou, --> zmenit na chmod 0640, mozna i 0440
local_root=/mnt/MyData/vsFtpRoot ## fakticka top level slozka ( s daty )
local_umask=022 ## maska novych souboru
check_shell=NO ## nekontroluj, ma-li uzivatel shell (nutne jen pri pouzivani PAM modulu)
dirmessage_enable=YES ## povolit pouzivani ".message" (male info o kazde slozce)
banner_file=/etc/banner ## hlavni banner serveru (info o serveru)
session_support=NO ## bez podpory pro session (nutne jen pri pouzivani PAM modulu)
syslog_enable=NO ## zakazat logovani do syslogu
vsftpd_log_file=/srv/vsftpd/vsftpd_main.log ## logovat do vlastniho logu (vstpd log)
xferlog_enable=YES ## logovat prenosy (transfer log)
xferlog_file=/srv/vsftpd/vsftpd_xfer.log ## ... cesta k transfer logu
xferlog_std_format=YES ## ... format transfer logu
dual_log_enable=YES ## povoleni dualniho logovani (ftplog/xferlog)
userlist_enable=YES ## povolit seznamy "povolenych" uzivatelu
userlist_deny=NO ## zakazat seznamy "zakazanych" uzivatelu --> userlist je pak jen jeden a obsahuje povolene uzivatele
userlist_file=/srv/vsftpd/vsftpd.users ## ... cesta k souboru se seznamem "povolenych" ftp uzivatelu (co radka to jeden zaznam)
ssl_enable=YES ## povoleni SSL
force_local_data_ssl=YES ## vynuceni SSL pro data prenasena lokalne
force_local_logins_ssl=YES ## vynuceni SSL pro lokalni uzivatele
ssl_tlsv1=YES ## povoleni TLS v1
ssl_sslv2=YES ## povoleni SSL v2
ssl_sslv3=YES ## povoleni SSL v3
rsa_cert_file=/srv/vsftpd/certs/vsftpd_cert.pem ## cesta k certifikatu
rsa_private_key_file=/srv/vsftpd/certs/vsftpd_privkey.pem ## cesta ke klici
## == ca a key file lze vytvorit pomoci openssl nastroju
hide_ids=YES ## maskuj vlastnika a skupinu jako ftp:ftp pri listovani souboru
max_per_ip=3 ## maximalni pocet spojeni z jedne ip
max_clients=23 ## maximalni pocet klientu paralelne pripojenych
idle_session_timeout=600 ## timeout pro spojeni
data_connection_timeout=120 ## timeout pro prenos
## ===== sifrovani vs rychlosti.
## nesifrovat, bez komprese, anonymous mode .... nemam tucha, nezkousel jsem (asi ozkousim)
## pri pouziti sifrovani jsou rychlosti nekde kolem 9-14MB/s
## pri pouziti sifrovani a komprese jsou rychlosti nekde kolem 3-5MB/s
## lze lehce ovlivnit zmenou aktiv (jen port 21, port 20+21) a passv modu (bez rozsahu/s rozsahem portu)
## ===== mount-bind/mount-rbind priklady pro zpristupneni dat z jednoho mista
# mount --rbind /mnt/MyShare_0/Video /mnt/MyData/vsFtpRoot/Videos ## zdroj ma v sobe jine bindy, symlinky a data se sdili vice sluzbami
## --- obsahuje zpetne i ../Torrent/Seeds , kam se presouvaji stazene soubory
# mount --bind /mnt/MyShare_1/Music /mnt/MyData/vsFtpRoot/Music
# mount --bind /mnt/MyShare_2/Pictures /mnt/MyData/vsFtpRoot/Pictures
# mount --bind /mnt/MyDisk/InBound/Upload /mnt/MyData/vsFtpRoot/Upload ## zdroj je fakticky symlink (univerzalni "upload" slozka sdilena irc,sambou,ftp,ssh)
# mount --bind /mnt/MyDisk/Torrent/Files /mnt/MyData/vsFtpRoot/Download ## zdroj je fakticky symlink a transmission zde hleda .torrent soubory a spusti stahovani