Maxovy poznamky k vsftpd.conf

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
2 Likes

To je super návod, kdysi jsem se s tím vsftp dost natrápil. Ale teď jsem dal do LXC celý isp_config a tam je pureftpd a administrace přes web.

Pro zajemce https://www.howtoforge.com/tutorial/perfect-server-debian-8-4-jessie-apache-bind-dovecot-ispconfig-3-1/2/#-install-pureftpd-and-quota

Pro inspiraci https://www.howtoforge.com/tutorial/perfect-server-debian-8-4-jessie-apache-bind-dovecot-ispconfig-3-1/

1 Like

Jo je to takove neustale dilema, ktery jaky a nebo ci ftp demon je vhodnejsi, lepsi, rychlejsi, bezpecnejsi a buhvijaky jiny. :slight_smile: V tomto smeru uz jsem se naucil se vzdy prizpusobit tomu co je dodavano jako default daneho distra.