以下是Ubuntu vsftpd的安全加固步骤:
安装vsftpd
sudo apt update && sudo apt install vsftpd
禁用匿名访问
编辑配置文件 /etc/vsftpd.conf,设置:
anonymous_enable=NO
限制用户访问目录
chroot_local_user=YES
allow_writeable_chroot=YES
将用户主目录设置为专属路径(如 /var/ftp/username)。
启用TLS/SSL加密
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
配置防火墙
使用ufw允许FTP及被动模式端口(默认21、被动模式30000-31000):
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw reload
用户权限管理
sudo useradd -s /sbin/nologin ftpuser
sudo passwd ftpuser
sudo usermod -d /var/ftp/ftpuser ftpuser
userlist_enable 和 userlist_deny 控制用户访问。启用日志记录
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log
定期更新维护
定期执行 sudo apt update && sudo apt upgrade -y 修补漏洞。
注:优先使用SFTP(基于SSH)替代FTP,安全性更高。