Ubuntu下vsftpd安全设置方法
首先更新系统软件包列表并安装vsftpd:
sudo apt update
sudo apt install vsftpd
编辑配置文件/etc/vsftpd.conf(使用nano或vim),按以下设置调整关键参数:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES # 允许chroot目录可写(若用户需要上传文件)
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50010
userlist文件控制可登录用户(白名单模式,仅允许列表内用户访问)。userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO # 设置为NO表示仅允许列表内的用户登录
为FTP连接启用SSL/TLS,保护数据传输过程中的隐私(避免密码和文件内容明文传输):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
ssl_enable=YES
force_local_data_ssl=YES # 强制数据传输使用SSL
force_local_logins_ssl=YES # 强制登录过程使用SSL
ssl_tlsv1=YES # 启用TLSv1协议(更安全)
ssl_sslv2=NO # 禁用SSLv2(不安全)
ssl_sslv3=NO # 禁用SSLv3(不安全)
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
若使用UFW防火墙,需开放FTP相关端口(控制连接21/tcp、被动模式端口范围50000-50010/tcp):
sudo ufw allow 21/tcp
sudo ufw allow 50000:50010/tcp
sudo ufw reload # 重新加载防火墙规则
应用所有配置变更:
sudo systemctl restart vsftpd
/etc/vsftpd.userlist文件,仅添加可信用户(每行一个用户名),增强访问控制。/var/log/vsftpd.log(或配置文件中指定的日志路径),及时发现异常登录或文件操作。sudo apt update && sudo apt upgrade命令更新系统和vsftpd,修复已知安全漏洞。/sbin/nologin,防止通过SSH登录:sudo usermod -s /sbin/nologin ftpuser