FTP服务器是常见的攻击目标,以下是保护Linux FTP服务器的综合安全方案:
anonymous_enable=NO
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
max_clients=50
max_per_ip=5
idle_session_timeout=300
data_connection_timeout=120
保持系统更新:
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # RHEL/CentOS
防火墙配置:
# 仅允许必要端口
sudo ufw allow 20:21/tcp
sudo ufw allow 1024:1048/tcp # 被动模式端口范围
sudo ufw enable
使用Fail2Ban:防止暴力破解
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
在jail.local
中添加:
[vsftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 3
bantime = 3600
使用强密码策略:
sudo apt install libpam-pwquality
编辑/etc/pam.d/common-password
设置密码复杂度要求
定期更换密码:
sudo chage -M 90 username # 90天后密码过期
禁用root登录:
root用户不应有FTP访问权限
设置严格的文件权限:
sudo chmod 750 /home/ftpusers
sudo chown root:ftpgroup /home/ftpusers
禁用危险命令:
在/etc/vsftpd.conf
中:
cmds_denied=DELE,RMD,RNFR,RNTO,MKD
定期检查日志:
sudo grep "FAIL LOGIN" /var/log/vsftpd.log
使用入侵检测系统:
sudo apt install aide
sudo aideinit
sudo aide --check
bash
sudo tar -czvf /backup/ftp_backup_$(date +%F).tar.gz /etc/vsftpd* /home/ftpusers
通过实施这些措施,可以显著提高Linux FTP服务器的安全性,减少被攻击的风险。对于高安全性环境,强烈建议迁移到SFTP或FTPS解决方案。