温馨提示×

怎样在Linux FTPServer上配置防火墙

小樊
39
2025-10-29 19:13:10
栏目: 智能运维

在Linux FTP服务器上配置防火墙,通常需要使用iptables或firewalld等工具。以下是使用这两种工具进行配置的基本步骤:

使用iptables配置防火墙

  1. 查看当前iptables规则

    sudo iptables -L -n -v
    
  2. 允许FTP流量: FTP使用多个端口,包括21(控制连接)和20(数据连接),以及被动模式下的动态端口范围。你需要允许这些端口的流量。

    # 允许FTP控制连接
    sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
    
    # 允许FTP数据连接
    sudo iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
    
    # 允许被动模式下的动态端口范围(通常是1024到65535)
    sudo iptables -A INPUT -p tcp --dport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
    
  3. 保存iptables规则: 不同的Linux发行版可能有不同的方法来保存iptables规则。例如,在Debian/Ubuntu上,你可以使用iptables-persistent包:

    sudo apt-get install iptables-persistent
    sudo netfilter-persistent save
    sudo netfilter-persistent reload
    

    在CentOS/RHEL上,你可以使用service命令:

    sudo service iptables save
    
  4. 重启防火墙服务(如果需要):

    sudo systemctl restart iptables
    

使用firewalld配置防火墙

  1. 查看当前firewalld状态

    sudo firewall-cmd --state
    
  2. 允许FTP流量: 使用firewalld时,你需要添加相应的服务或端口。

    # 允许FTP控制连接
    sudo firewall-cmd --permanent --add-service=ftp
    
    # 允许FTP数据连接(被动模式)
    sudo firewall-cmd --permanent --add-port=1024-65535/tcp
    
    # 重新加载firewalld配置
    sudo firewall-cmd --reload
    
  3. 验证规则

    sudo firewall-cmd --list-all
    

注意事项

  • 被动模式:FTP的被动模式需要服务器开放一个端口范围供客户端连接。确保这个范围在你的防火墙规则中是开放的。
  • 安全性:FTP本身不安全,建议使用SFTP(SSH File Transfer Protocol)或FTPS(FTP over SSL/TLS)来代替。
  • SELinux:如果你的系统启用了SELinux,可能还需要配置SELinux策略来允许FTP流量。

通过以上步骤,你应该能够在Linux FTP服务器上成功配置防火墙。

0