首页主机资讯如何配置Linux FTP防火墙

如何配置Linux FTP防火墙

时间2025-11-17 20:43:04发布访客分类主机资讯浏览745
导读:Linux FTP 防火墙配置实操指南 一 前置准备与模式选择 明确 FTP 工作模式:主动模式由服务器从端口 20/TCP 主动连接客户端高位端口;被动模式由客户端连接服务器配置的被动端口范围。为减少攻击面,建议固定并限制被动端口范围(...

Linux FTP 防火墙配置实操指南

一 前置准备与模式选择

  • 明确 FTP 工作模式:主动模式由服务器从端口 20/TCP 主动连接客户端高位端口;被动模式由客户端连接服务器配置的被动端口范围。为减少攻击面,建议固定并限制被动端口范围(如 30000–31000),并在服务器与防火墙中同步放行。若追求更高安全性,优先考虑 SFTP/FTPS 替代明文 FTP。以上做法能在防火墙层面更易管控与验证。

二 使用 firewalld 放行 FTP

  • 放行控制与数据端口(适用于主动模式的最小集):
    • 命令:sudo firewall-cmd --permanent --add-port=21/tcp
    • 命令:sudo firewall-cmd --permanent --add-port=20/tcp
    • 命令:sudo firewall-cmd --reload
  • 放行被动端口范围(示例为 30000–31000,需与 FTP 服务端配置一致):
    • 命令:sudo firewall-cmd --permanent --add-port=30000-31000/tcp
    • 命令:sudo firewall-cmd --reload
  • 说明:firewalld 对 FTP 有内置模块支持,但在生产环境更推荐显式放行控制端口与“固定被动端口范围”,便于审计与最小化暴露。

三 使用 iptables 放行 FTP

  • 主动模式最小规则集(示例):
    • 命令:sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
    • 命令:sudo iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
    • 命令:sudo iptables -A OUTPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
    • 命令:sudo iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
  • 被动模式(需限定端口范围,示例 30000–31000):
    • 命令:sudo iptables -A INPUT -p tcp --dport 30000:31000 -m state --state NEW,ESTABLISHED -j ACCEPT
    • 命令:sudo iptables -A OUTPUT -p tcp --sport 30000:31000 -m state --state ESTABLISHED -j ACCEPT
  • 规则持久化:
    • Debian/Ubuntu:sudo apt-get install iptables-persistent;sudo netfilter-persistent save
    • CentOS/RHEL:sudo service iptables save
  • 提示:iptables 方案需确保“已建立/相关”状态流量可回传,避免数据通道被拦截。

四 结合 FTP 服务端的关键配置

  • vsftpd 示例(/etc/vsftpd.conf,按需调整):
    • 启用本地用户与写入:local_enable=YES;write_enable=YES
    • 限制用户在主目录:chroot_local_user=YES
    • 固定被动端口范围(与防火墙一致):pasv_min_port=30000;pasv_max_port=31000
    • 主动模式相关:connect_from_port_20=YES
    • 日志:xferlog_enable=YES
    • 修改后重启服务:sudo systemctl restart vsftpd
  • 说明:服务端被动端口范围必须与防火墙放行范围一致,否则被动模式将连接失败。

五 访问控制与加固建议

  • 来源 IP 白名单(示例仅允许 192.168.1.100 访问 FTP 端口):
    • firewalld:sudo firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100” port protocol=“tcp” port=“21” accept’;sudo firewall-cmd --reload
    • iptables:sudo iptables -A INPUT -p tcp --dport 21 -s 192.168.1.100 -j ACCEPT;sudo iptables -A INPUT -p tcp --dport 21 -j DROP
  • 加密传输:建议启用 FTPS(vsftpd 配置 ssl_enable=YES,配置证书并强制本地登录/数据传输使用 SSL),或直接使用 SFTP 替代明文 FTP,降低凭据与数据泄露风险。
  • 验证步骤:从客户端连接并测试上传/下载;核对服务端与防火墙日志,确保控制通道与数据通道均正常。

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


若转载请注明出处: 如何配置Linux FTP防火墙
本文地址: https://pptw.com/jishu/749315.html
怎样设置Linux FTP自动登录 Ubuntu Apache2怎样实现自动重启

游客 回复需填写必要信息