Debian 上 vsftpd 的安全加固清单
一 基础安装与最小安全基线
sudo apt update && sudo apt install vsftpd -ysudo systemctl enable --now vsftpdanonymous_enable=NOlocal_enable=YESwrite_enable=NO(上传/删除前再临时开启)xferlog_enable=YES、xferlog_std_format=YESconnect_from_port_20=YES、use_localtime=YES、dirmessage_enable=YES二 身份隔离与访问控制
chroot_local_user=YES(将本地用户锁在家目录)allow_writeable_chroot=YES(存在一定风险,见下文“注意事项”)userlist_enable=YES、userlist_deny=NO、userlist_file=/etc/vsftpd.userlistsudo useradd -d /home/ftpuser -s /usr/sbin/nologin ftpuser/usr/sbin/nologin 在 /etc/shells 中,避免 PAM 拒绝登录三 加密传输与证书配置
sudo mkdir -p /etc/ssl/private && sudo chmod 700 /etc/ssl/privatesudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pemssl_enable=YESallow_anon_ssl=NOforce_local_data_ssl=YES、force_local_logins_ssl=YESssl_tlsv1_2=YES、ssl_tlsv1_3=YES、ssl_sslv2=NO、ssl_sslv3=NO、ssl_ciphers=HIGHrsa_cert_file=/etc/ssl/private/vsftpd.pem、rsa_private_key_file=/etc/ssl/private/vsftpd.pem四 被动模式端口与防火墙
pasv_enable=YESpasv_min_port=30000、pasv_max_port=31000sudo ufw allow 21/tcp、sudo ufw allow 990/tcp、sudo ufw allow 30000:31000/tcp五 资源限制与运维审计
anon_max_rate=307200(约 300 KB/s)、local_max_rate=307200max_clients=100、max_per_ip=5xferlog_enable=YES、xferlog_std_format=YES/var/log/vsftpd.log 或系统日志,关注异常登录与大量传输allow_writeable_chroot;更安全的做法是:chroot 后通过“不可写根 + 可写子目录(如 upload)”来授权,例如:
chown ftpuser:ftpuser /home/ftpuser/upload && chmod 755 /home/ftpuser && chmod 775 /home/ftpuser/uploadsudo apt update && sudo apt upgrade vsftpd