Instal·lació i configuració d’un servidor FTPS

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

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.