插件窝 干货文章 怎样防止Linux FTP Server被攻击

怎样防止Linux FTP Server被攻击

FTP 安全 使用 vsftpd 930    来源:    2025-05-07

保护Linux FTP服务器免受攻击的综合指南

FTP服务器是常见的攻击目标,因为其设计较老且经常配置不当。以下是保护Linux FTP服务器的关键措施:

1. 选择更安全的FTP实现

考虑使用更现代的替代方案: - vsftpd (非常安全的FTP守护进程) - ProFTPD (配置灵活) - Pure-FTPd (注重安全)

避免使用老旧的、不维护的FTP服务器软件。

2. 基本安全配置

  • 禁用匿名登录 (除非绝对需要):

    anonymous_enable=NO
    
  • 使用chroot jail限制用户访问其主目录:

    chroot_local_user=YES
    
  • 限制用户登录

    userlist_enable=YES
    userlist_file=/etc/vsftpd.userlist
    userlist_deny=NO
    

3. 网络层保护

  • 使用防火墙限制访问

    iptables -A INPUT -p tcp --dport 21 -s trusted_ip -j ACCEPT
    iptables -A INPUT -p tcp --dport 21 -j DROP
    
  • 更改默认端口 (非标准端口可减少自动化攻击):

    listen_port=2121
    
  • 限制连接速率防止暴力破解:

    iptables -A INPUT -p tcp --dport 21 -m limit --limit 3/minute --limit-burst 5 -j ACCEPT
    

4. 加密传输

  • 强制使用FTPS (FTP over SSL/TLS)

    ssl_enable=YES
    force_local_data_ssl=YES
    force_local_logins_ssl=YES
    
  • 或考虑SFTP (SSH文件传输协议)替代FTP

5. 认证安全

  • 使用强密码策略
  • 实现失败登录锁定bash pam_tally2.so deny=5 unlock_time=1800 onerr=fail
  • 禁用root登录root_squash

6. 日志与监控

  • 启用详细日志

    xferlog_enable=YES
    xferlog_std_format=NO
    log_ftp_protocol=YES
    
  • 定期检查日志

    grep "FAIL LOGIN" /var/log/vsftpd.log
    

7. 系统级保护

  • 保持系统更新

    apt update && apt upgrade -y
    
  • 使用SELinux/AppArmor限制FTP进程权限

  • 定期备份重要配置文件和数据

8. 高级安全措施

  • 实现两因素认证
  • 设置入侵检测系统 (如Fail2Ban):

    [vsftpd]
    enabled = true
    filter = vsftpd
    action = iptables[name=VSFTPD, port=ftp, protocol=tcp]
    logpath = /var/log/vsftpd.log
    maxretry = 3
    
  • 考虑FTP代理网络隔离

最佳实践建议

  1. 定期审计服务器配置和权限
  2. 最小化安装原则 - 只安装必要的组件
  3. 实施定期安全扫描
  4. 制定并测试灾难恢复计划
  5. 考虑完全弃用FTP,改用更安全的协议如SFTP/SCP

通过实施这些措施,您可以显著降低FTP服务器遭受攻击的风险,同时保持必要的文件传输功能。