插件窝 干货文章 如何防止Linux FTP Server被攻击

如何防止Linux FTP Server被攻击

sudo 安全 使用 vsftpd 345    来源:    2025-05-04

防止Linux FTP服务器被攻击的安全措施

FTP服务器是常见的攻击目标,以下是保护Linux FTP服务器的综合安全方案:

1. 使用更安全的替代方案

  • 考虑使用SFTP/SCP:基于SSH的文件传输协议,加密所有通信
  • 使用FTPS:FTP over SSL/TLS,提供加密传输
  • 如果必须使用传统FTP,请严格遵循以下安全措施

2. FTP服务器配置安全

基本安全配置

  • 禁用匿名登录:除非绝对必要 anonymous_enable=NO
  • 使用chroot监狱:限制用户只能访问其主目录 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

3. 系统级安全措施

  • 保持系统更新

    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
    

4. 用户认证安全

  • 使用强密码策略

    sudo apt install libpam-pwquality
    

    编辑/etc/pam.d/common-password设置密码复杂度要求

  • 定期更换密码

    sudo chage -M 90 username  # 90天后密码过期
    
  • 禁用root登录

    root用户不应有FTP访问权限
    

5. 文件权限安全

  • 设置严格的文件权限

    sudo chmod 750 /home/ftpusers
    sudo chown root:ftpgroup /home/ftpusers
    
  • 禁用危险命令: 在/etc/vsftpd.conf中:

    cmds_denied=DELE,RMD,RNFR,RNTO,MKD
    

6. 监控与审计

  • 定期检查日志

    sudo grep "FAIL LOGIN" /var/log/vsftpd.log
    
  • 使用入侵检测系统

    sudo apt install aide
    sudo aideinit
    sudo aide --check
    

7. 备份策略

  • 定期备份配置和重要数据bash sudo tar -czvf /backup/ftp_backup_$(date +%F).tar.gz /etc/vsftpd* /home/ftpusers

通过实施这些措施,可以显著提高Linux FTP服务器的安全性,减少被攻击的风险。对于高安全性环境,强烈建议迁移到SFTP或FTPS解决方案。