温馨提示×

如何在Linux上配置FTP防火墙

小樊
53
2025-08-12 04:55:46
栏目: 智能运维

在Linux上配置FTP防火墙需要遵循以下步骤:

1. 安装必要的软件

首先,确保你的系统上安装了FTP服务器软件(如vsftpd)和防火墙软件(如iptables或firewalld)。

安装vsftpd

sudo apt-get update
sudo apt-get install vsftpd

安装iptables(如果尚未安装)

sudo apt-get install iptables

2. 配置vsftpd

编辑vsftpd的配置文件 /etc/vsftpd.conf,确保以下设置:

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

然后重启vsftpd服务:

sudo systemctl restart vsftpd

3. 配置防火墙

使用iptables

  1. 允许FTP流量

    • FTP控制连接(默认端口21):
      sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
      
    • FTP数据连接(动态端口范围通常是1024-65535):
      sudo iptables -A INPUT -p tcp --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
      
  2. 允许被动模式数据连接

    • 假设被动模式端口范围是60000-60010:
      sudo iptables -A INPUT -p tcp --dport 60000:60010 -m state --state ESTABLISHED,RELATED -j ACCEPT
      
  3. 保存iptables规则

    sudo sh -c "iptables-save > /etc/iptables/rules.v4"
    

使用firewalld

  1. 启用FTP服务

    sudo firewall-cmd --permanent --add-service=ftp
    
  2. 允许被动模式端口范围

    sudo firewall-cmd --permanent --add-port=60000-60010/tcp
    
  3. 重新加载firewalld配置

    sudo firewall-cmd --reload
    

4. 测试FTP连接

使用FTP客户端(如FileZilla)测试连接,确保可以正常上传和下载文件。

注意事项

  • 安全性:FTP协议本身不安全,建议使用SFTP(SSH File Transfer Protocol)代替。
  • 被动模式:确保防火墙允许被动模式的端口范围,以便客户端可以建立数据连接。
  • 日志记录:检查vsftpd和防火墙的日志文件,以便排查问题。

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

0