首页主机资讯FTP服务器如何配置防火墙

FTP服务器如何配置防火墙

时间2025-11-14 19:38:03发布访客分类主机资讯浏览478
导读:FTP服务器防火墙配置指南 一 基础概念与端口规划 FTP有两种工作模式:主动模式与被动模式。控制通道始终使用TCP 21端口;主动模式的数据通道由服务器从20/tcp端口主动连接到客户端高位端口;被动模式由服务器在配置的被动端口范围内监...

FTP服务器防火墙配置指南

一 基础概念与端口规划

  • FTP有两种工作模式:主动模式被动模式。控制通道始终使用TCP 21端口;主动模式的数据通道由服务器从20/tcp端口主动连接到客户端高位端口;被动模式由服务器在配置的被动端口范围内监听,等待客户端连接。为减少暴露面,建议在被动模式显式限定端口范围(如30000–3100050000–50100),并在防火墙中仅开放该范围。若使用FTPS(FTP over SSL/TLS),控制与数据通道均被加密,但端口规划与主动/被动模式一致,仍需放行相同端口与范围。

二 使用 firewalld 的配置步骤(CentOS/RHEL、Fedora)

  • 放行服务与端口
    • 放行内置FTP服务(会同时处理控制通道与相关连接,适合大多数场景):
      • 命令:sudo firewall-cmd --permanent --add-service=ftp & & sudo firewall-cmd --reload
    • 或手动精确放行端口(示例被动范围30000–31000):
      • 命令:sudo firewall-cmd --permanent --add-port=21/tcp
      • 命令:sudo firewall-cmd --permanent --add-port=20/tcp
      • 命令:sudo firewall-cmd --permanent --add-port=30000-31000/tcp
      • 命令:sudo firewall-cmd --reload
  • 仅允许特定来源访问(示例IP:192.168.1.100
    • 命令: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 --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="20" accept'
    • 命令:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="30000-31000" accept'
    • 命令:sudo firewall-cmd --reload
  • 说明:若未显式放行被动端口范围,被动模式在 firewalld 上可能失败;使用内置“ftp”服务可简化配置,但精确端口放行更利于审计与最小化暴露。

三 使用 UFW 的配置步骤(Ubuntu/Debian)

  • 放行端口与范围
    • 命令:sudo ufw allow 20/tcp
    • 命令:sudo ufw allow 21/tcp
    • 命令:sudo ufw allow 30000:31000/tcp
  • 说明:UFW为iptables的前端,规则简洁直观;务必与FTP服务器配置的被动端口范围保持一致,否则被动模式将无法正常传输数据。

四 使用 iptables 的配置步骤(通用 Linux)

  • 放行控制与被动端口(示例被动范围50000–50100
    • 命令:sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    • 命令:sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    • 命令:sudo iptables -A INPUT -p tcp --dport 50000:50100 -j ACCEPT
    • 命令:sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 保存规则
    • Debian/Ubuntu:sudo apt-get install iptables-persistent & & sudo netfilter-persistent save & & sudo netfilter-persistent reload
    • CentOS/RHEL:sudo service iptables save
  • 说明:-m state --state ESTABLISHED,RELATED用于放行已建立及相关连接,避免数据通道被拦截;如未使用状态模块,需确保OUTPUT链也允许相应出站流量。

五 服务器配置与验证要点

  • vsftpd 关键配置(示例)
    • 启用本地用户与写入:local_enable=YESwrite_enable=YES
    • 限制用户根目录:chroot_local_user=YES
    • 被动端口范围(与防火墙一致):pasv_min_port=30000pasv_max_port=31000
    • 重启服务:sudo systemctl restart vsftpd
  • 启用加密(FTPS,强烈建议)
    • 生成证书:sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
    • vsftpd 配置:ssl_enable=YESforce_local_data_ssl=YESforce_local_logins_ssl=YESssl_cert_file=/etc/ssl/private/vsftpd.pem
    • 重启服务:sudo systemctl restart vsftpd
  • 连通性验证
    • 客户端工具(如FileZilla)测试上传/下载;命令行:ftp < server-ip> 。若被动模式失败,优先检查服务器被动端口范围与防火墙是否一致,再检查日志(如/var/log/vsftpd.logxferlog)。

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


若转载请注明出处: FTP服务器如何配置防火墙
本文地址: https://pptw.com/jishu/748339.html
Debian FTP如何实现文件共享 FTP服务器如何优化性能

游客 回复需填写必要信息