温馨提示×

vsftp在centos上的防火墙设置

小樊
52
2025-06-10 03:17:02
栏目: 智能运维

在CentOS上配置VSFTPD(Very Secure FTP Daemon)的防火墙设置,需要确保FTP服务所需的端口是开放的。默认情况下,VSFTPD使用以下端口:

  1. 20 - 用于数据传输
  2. 21 - 用于控制连接

以下是配置防火墙以允许这些端口的步骤:

使用firewalld

CentOS 7及以上版本默认使用firewalld作为防火墙管理工具。以下是配置步骤:

  1. 启动并启用firewalld服务(如果尚未启动):

    sudo systemctl start firewalld sudo systemctl enable firewalld 
  2. 开放FTP端口

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

    sudo firewall-cmd --reload 
  4. 验证端口是否开放

    sudo firewall-cmd --list-all 

    你应该能看到类似以下的输出,表明端口20和21已经开放:

    ports: tcp 20/tcp 21/tcp 

使用iptables

如果你使用的是CentOS 6或者更早版本,或者你更喜欢使用iptables,以下是配置步骤:

  1. 开放FTP端口

    sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT 
  2. 保存iptables规则(CentOS 6):

    sudo service iptables save 

    (CentOS 7及以上版本使用firewalld,不需要这一步)

  3. 重启iptables服务(CentOS 6):

    sudo service iptables restart 
  4. 验证规则是否生效

    sudo iptables -L -n 

    你应该能看到类似以下的输出,表明端口20和21已经开放:

    ACCEPT tcp -- anywhere anywhere tcp dpt:20 ACCEPT tcp -- anywhere anywhere tcp dpt:21 

注意事项

  • 被动模式(PASV):如果你的FTP客户端使用被动模式,还需要开放一个范围端口(通常是1024到1048)。你可以在firewalld中添加一个端口范围:

    sudo firewall-cmd --permanent --add-port=1024-1048/tcp sudo firewall-cmd --reload 
  • SELinux:如果启用了SELinux,可能需要调整SELinux策略以允许FTP流量。你可以临时设置SELinux为宽容模式来测试:

    sudo setenforce 0 

    如果一切正常,你可以配置SELinux策略以永久允许FTP流量。

通过以上步骤,你应该能够在CentOS上成功配置VSFTPD的防火墙设置。

0