Com configurar un servidor FTPS amb vsftpd a Debian.
Els certificats que s’utilitzen són verificats per Let’s Encrypt (veure entrada).
Recomanacions prèvies:
Instal·lem els paquets:
$ sudo apt-get install vsftpd openssl
Editem el fitxer de configuració:
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak $ sudo nano /etc/vsftpd.conf
En el meu cas queda així:
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES ftpd_banner=It's bigger on the inside! chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list allow_writeable_chroot=YES user_config_dir=/etc/vsftpd_user_conf secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd
Amb aquesta configuració tenim que tots els usuaris queden fixats al seu home
, excepte els que posem al fitxer /etc/vsftpd.chroot_list
.
La línia user_config_dir=/etc/vsftpd_user_conf
ens serveix per tenir configuracions especifiques per cada usuari, en aquest cas el local_root
.
Afegim usuaris al vsftpd.chroot_list
(un usuari per línia):
$ sudo nano /etc/vsftpd.chroot_list
Afegim configuracions personals d’usuari:
$ sudo mkdir /etc/vsftpd_user_conf $ cd /etc/vsftpd_user_conf $ sudo nano <usuari>
Hi posem la línia:
local_root=<directori>
Habilitem l’usuari root
:
No és una opció recomanable, però es pot fer. Editem el següent fitxer i comentem la línia root
.
$ sudo nano /etc/ftpusers
Reiniciem el servei:
$ sudo /etc/init.d/vsftpd restart
Configuració del TLS
Editem el fitxer de configuració:
$ sudo nano /etc/vsftpd.conf
Afegim:
# Turn on SSL ssl_enable=YES # Allow anonymous SSL connections allow_anon_ssl=NO # All non-anonymous logins are forced to use a secure SSL connection in order to # send and receive data on data connections. force_local_data_ssl=YES # All non-anonymous logins are forced to use a secure SSL connection in order to send the password. force_local_logins_ssl=YES # Permit TLS v1 protocol connections. TLS v1 connections are preferred ssl_tlsv1=YES # Permit SSL v2 protocol connections. TLS v1 connections are preferred ssl_sslv2=NO # Permit SSL v3 protocol connections. TLS v1 connections are preferred ssl_sslv3=NO # Disable SSL session reuse (required by WinSCP) require_ssl_reuse=NO # Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla) ssl_ciphers=HIGH # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/letsencrypt/live/aniolmarti.cat/fullchain.pem rsa_private_key_file=/etc/letsencrypt/live/aniolmarti.cat/privkey.pem
Reiniciem el servei:
$ sudo /etc/init.d/vsftpd restart
Configuració del mode passiu
Editem el fitxer de configuració:
$ sudo nano /etc/vsftpd.conf
Afegim les línies:
pasv_enable=YES pasv_max_port=10100 pasv_min_port=10090
Reiniciem el servei:
$ sudo /etc/init.d/vsftpd restart
Fitxer final
# Basic configuration listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES ftpd_banner=It's bigger on the inside! chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list allow_writeable_chroot=YES user_config_dir=/etc/vsftpd_user_conf secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd # Turn on SSL ssl_enable=YES # Allow anonymous SSL connections allow_anon_ssl=NO # All non-anonymous logins are forced to use a secure SSL connection in order to # send and receive data on data connections. force_local_data_ssl=YES # All non-anonymous logins are forced to use a secure SSL connection in order to send the password. force_local_logins_ssl=YES # Permit TLS v1 protocol connections. TLS v1 connections are preferred ssl_tlsv1=YES # Permit SSL v2 protocol connections. TLS v1 connections are preferred ssl_sslv2=NO # permit SSL v3 protocol connections. TLS v1 connections are preferred ssl_sslv3=NO # Disable SSL session reuse (required by WinSCP) require_ssl_reuse=NO # Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla) ssl_ciphers=HIGH # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/letsencrypt/live/aniolmarti.cat/fullchain.pem rsa_private_key_file=/etc/letsencrypt/live/aniolmarti.cat/privkey.pem
Configurar client Filezilla
Tot aquest procés es pot fer executant aquest script que tinc al Github: https://github.com/aniolm9/admin-scripts