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