首页主机资讯Linux vsftp防火墙配置:如何防止攻击

Linux vsftp防火墙配置:如何防止攻击

时间2026-01-21 14:43:04发布访客分类主机资讯浏览1037
导读:Linux vsftpd 防火墙配置与防攻击要点 一、基础加固与访问控制 禁用匿名访问,仅允许本地用户,并启用 chroot 将用户限制在其家目录;按需开启写入权限,同时避免可写的根目录引发提权风险。 限制可登录用户集合(使用 userl...

Linux vsftpd 防火墙配置与防攻击要点

一、基础加固与访问控制

  • 禁用匿名访问,仅允许本地用户,并启用 chroot 将用户限制在其家目录;按需开启写入权限,同时避免可写的根目录引发提权风险。
  • 限制可登录用户集合(使用 userlist_enable=YES 配合 /etc/vsftpd.user_list/etc/ftpusers),减少暴露面。
  • 关闭 DNS 反向解析(如设置 reverse_lookup_enable=NO)以避免登录延迟并降低被探测风险。
  • 建议启用 SSL/TLS 加密(FTPS),强制本地登录与数据传输加密,防止凭据与数据被窃听。
  • 如非必须,避免使用 xinetd 管理 vsftpd;standalone 模式更易与防火墙、连接限制策略协同。

二、防火墙与端口规划

  • 主动模式需放行:控制通道 21/TCP,数据通道 20/TCP
  • 被动模式必须固定并放行一段高位端口范围(在 vsftpd 配置 pasv_min_port/pasv_max_port,如 40000:50000),并在防火墙放行同一范围,否则数据连接会被拦截。
  • 若修改了默认控制端口(如改为 2123),需同步在防火墙放行新端口。
  • 示例(UFW):
    • 放行控制与数据端口:sudo ufw allow 21/tcpsudo ufw allow 20/tcp
    • 放行被动端口范围:sudo ufw allow 40000:50000/tcp
  • 示例(iptables):
    • 放行控制与数据端口:-A INPUT -p tcp --dport 21 -j ACCEPT-A INPUT -p tcp --dport 20 -j ACCEPT
    • 放行被动端口范围:-A INPUT -p tcp --dport 40000:50000 -j ACCEPT
  • 规则持久化:Debian/Ubuntu 可保存至 /etc/iptables/rules.v4;CentOS 6 可编辑 /etc/sysconfig/iptables 并重启服务。

三、防暴力破解与连接限制

  • 使用 TCP Wrappers 做主机级访问控制:在 /etc/hosts.allow/etc/hosts.deny 中以服务名 vsftpd 配置白名单/黑名单,命中允许规则后不再匹配拒绝规则。
  • 若以 xinetd 托管 vsftpd,可进一步限制并发与速率:
    • instances=N 限制总并发进程数
    • per_source=N 限制单源 IP 并发连接数
    • cps=N K 限制每秒连接速率与暂停秒数
    • max_load 在高负载时暂停服务,缓解 DoS
  • 建议配合日志审计与自动封禁工具(如 BlockHosts、sshguard)对反复失败的来源进行自动阻断。

四、最小化攻击面与运维建议

  • 仅开放必要端口与协议;定期更新系统与 vsftpd,修补已知漏洞。
  • 使用专用 FTP 用户并禁止其 SSH 登录(如 /usr/sbin/nologin),降低横向移动风险。
  • 启用日志并持续监控 /var/log/auth.log、/var/log/syslog、/var/log/vsftpd.log,关注异常登录与频繁连接尝试。
  • 在可行场景下优先采用 SFTP(基于 SSH) 替代 FTP,以获得更强的加密与密钥认证能力。
  • 安全配置变更后,使用客户端(如 FileZilla)以 显式 TLS/SSL 方式测试连接与数据传输。

五、快速配置示例

  • vsftpd.conf 关键项(示例):
    • 禁用匿名、启用本地用户与 chroot:
      • anonymous_enable=NO
      • local_enable=YES
      • chroot_local_user=YES
      • allow_writeable_chroot=YES(或按需在用户目录上精细授权)
    • 被动端口范围:
      • pasv_min_port=40000
      • pasv_max_port=50000
    • 加密:
      • ssl_enable=YES
      • allow_anon_ssl=NO
      • force_local_data_ssl=YES
      • force_local_logins_ssl=YES
      • rsa_cert_file=/etc/ssl/private/vsftpd.pem
      • rsa_private_key_file=/etc/ssl/private/vsftpd.pem
  • 防火墙(UFW):
    • sudo ufw allow 21/tcp
    • sudo ufw allow 20/tcp
    • sudo ufw allow 40000:50000/tcp
    • sudo ufw enable
  • 防火墙(iptables):
    • -A INPUT -p tcp --dport 21 -j ACCEPT
    • -A INPUT -p tcp --dport 20 -j ACCEPT
    • -A INPUT -p tcp --dport 40000:50000 -j ACCEPT
    • 持久化:iptables-save > /etc/iptables/rules.v4(Debian/Ubuntu)

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux vsftp防火墙配置:如何防止攻击
本文地址: https://pptw.com/jishu/788713.html
Linux vsftp自动挂载:如何简化操作 Linux vsftp与SFTP:有什么区别

游客 回复需填写必要信息