Guia configuración VSFTPD

Indicaciones varias

  • El usuario ftp debe tener acceso a aquello que tiene que accederse mediante vsftpd

Configuración basica, usuarios virtuales, autenticación radius

Archivo /etc/pam.d/vsftp

account required        pam_radius_auth.so
auth    required        pam_radius_auth.so

Configuración vsftpd.conf

Tal como está actualmente en srv-internet.lechuga.eu

pam_service_name=vsftpd

Configuración basica, usuarios virtuales, autenticación htpasswd

Usando: https://gist.github.com/giordanocardillo/3a4bb75f2f851883c2fc0dd802bc6062

Paquetes necesarios

apt-get install vsftpd libpam-pwdfile apache2-utils

Archivo /etc/vsftpd/vsftpd.passwd

Aqui se guardan las contraseñas y usuarios

htpasswd -d /etc/vsftpd/ftpd.passwd [usuario]

Archivo /etc/pam.d/vsftp

auth required pam_pwdfile.so pwdfile /etc/vsftpd/vsftpd.passwd
account required pam_permit.so

Archivo muestra /etc/vsftpd.conf

# Configuración VSFTPD
# Por seguridad, no se permite un directorio chroot escribible
# Si el directorio raíz del chroot es escribible por ftp, vsftpd devuelve un error
allow_writeable_chroot=NO

# Configuración de la conexión
# El puerto 990 es el estandar para ftps y el 21 para ftp
listen_port=990
listen=YES

pasv_enable=YES
pasv_address=boniato.lechuga.eu
pasv_addr_resolve=YES
pasv_min_port=12000
pasv_max_port=12100


# el sandbox incrementa la seguridad, pero da problemas de compatibilidad
seccomp_sandbox=NO

# Configuración del logging, el de vsftpd es una llufa
syslog_enable=YES

log_ftp_protocol=YES
vsftpd_log_file=/var/log/vsftpd.log

xferlog_enable=NO
xferlog_std_format=YES
xferlog_file=/var/log/xfer.log

dual_log_enable=YES

# Hace que no funcione
dirmessage_enable=NO

# Configuración de usuarios virtuales
virtual_use_local_privs=YES
nopriv_user=vsftpd
guest_username=vsftpd
pam_service_name=vsftpd
secure_chroot_dir=/var/run/vsftpd
guest_enable=YES
anonymous_enable=NO
local_enable=YES
local_umask=0007
user_config_dir=/etc/vsftpd/
user_sub_token=$USER
chroot_local_user=YES

# Otras configuraciones
ls_recurse_enable=NO
idle_session_timeout=120
data_connection_timeout=300
connect_timeout=30
delay_failed_login=5
write_enable=YES

# -----------------------------------------------------------------------------
# Sección FTPS
# definitely have to use this if you connect from the Internet

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

ssl_tlsv1=YES
# Atención, la reutilización de la conexión para datos y control da problemas en algunos clientes
require_ssl_reuse=NO

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

# rsa_cert_file=/etc/ssl/certs/lechuga.eu.crt
# rsa_private_key_file=/etc/ssl/private/lechuga.eu.key