Ubuntu FTP服务器安全策略配置指南
首先更新系统软件包并安装vsftpd(Ubuntu默认FTP服务器):
sudo apt update
sudo apt install vsftpd
编辑配置文件/etc/vsftpd.conf,按以下要求调整关键参数:
anonymous_enable=NO。local_enable=YES。write_enable=YES。chroot_local_user=YES将用户锁定在自己的家目录(避免遍历整个文件系统);若需允许用户写入主目录,需额外添加allow_writeable_chroot=YES(解决chroot环境下的写入权限问题)。xferlog_enable=YES、xferlog_std_format=YES。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
(按提示输入域名、邮箱等信息,生成的证书有效期为1年)/etc/vsftpd.conf中添加以下参数:ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES  # 强制数据传输加密
force_local_logins_ssl=YES  # 强制登录过程加密
ssl_tlsv1=YES  # 仅允许TLSv1协议(禁用SSLv2、SSLv3,避免已知漏洞)
ssl_sslv2=NO
ssl_sslv3=NO
sudo systemctl restart vsftpd
使用UFW(Ubuntu默认防火墙工具)限制访问,仅允许必要端口:
sudo ufw allow 21/tcp。pasv_min_port和pasv_max_port,如pasv_min_port=50000、pasv_max_port=50100),执行sudo ufw allow 50000:50100/tcp。sudo ufw enable,并通过sudo ufw status确认规则生效(显示“21/tcp ALLOW”和“50000:50100/tcp ALLOW”)。sudo adduser ftpuser(按提示设置密码和用户信息),并设置家目录权限(确保用户只能访问自己的目录):sudo usermod -d /home/ftpuser ftpuser
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
/etc/vsftpd.conf中添加:userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO  # 仅允许列表中的用户登录(若设为YES,则拒绝列表中的用户)
然后将允许登录的用户名添加到/etc/vsftpd.userlist中(每行一个用户名)。sudo apt update && sudo apt upgrade -y,及时修复vsftpd及系统漏洞。systemctl disable命令关闭未使用的服务(如Telnet、SSH反向隧道),减少攻击面。/var/log/vsftpd.log(或/var/log/xferlog),关注异常登录(如频繁失败的登录尝试)、未授权的数据传输等行为。