Linux vsftp防火墙配置:如何防止攻击
导读: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/tcp、sudo 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
- 禁用匿名、启用本地用户与 chroot:
- 防火墙(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
