温馨提示×

如何在CentOS上配置VSFTP防火墙

小樊
50
2025-07-24 16:20:30
栏目: 智能运维

在CentOS上配置VSFTP并设置防火墙规则,可以按照以下步骤进行:

1. 安装VSFTP

首先,确保你已经安装了VSFTP。如果没有安装,可以使用以下命令进行安装:

sudo yum install vsftpd 

2. 配置VSFTP

编辑VSFTP的配置文件 /etc/vsftpd/vsftpd.conf

sudo vi /etc/vsftpd/vsftpd.conf 

根据需要修改以下配置项:

  • listen=YES:启用独立模式。
  • listen_ipv6=NO:禁用IPv6支持。
  • anonymous_enable=NO:禁止匿名用户登录。
  • local_enable=YES:允许本地用户登录。
  • write_enable=YES:允许上传文件。
  • chroot_local_user=YES:将本地用户限制在其主目录中。
  • allow_writeable_chroot=YES:允许chroot目录可写。

保存并退出编辑器。

3. 启动VSFTP服务

启动VSFTP服务并设置开机自启:

sudo systemctl start vsftpd sudo systemctl enable vsftpd 

4. 配置防火墙

CentOS 7使用 firewalld 作为默认防火墙。你需要允许FTP流量通过防火墙。

4.1 允许FTP控制端口(默认21)

sudo firewall-cmd --permanent --add-port=21/tcp 

4.2 允许FTP数据端口(被动模式,默认范围是1024-1048)

你可以选择一个特定的端口范围,例如50000-50010:

sudo firewall-cmd --permanent --add-port=50000-50010/tcp 

4.3 重新加载防火墙配置

sudo firewall-cmd --reload 

5. 配置SELinux(如果启用)

如果SELinux处于 enforcing 模式,可能需要调整SELinux策略以允许FTP流量。

编辑 /etc/selinux/config 文件:

sudo vi /etc/selinux/config 

SELINUX=enforcing 改为 SELINUX=permissiveSELINUX=disabled,然后重启系统。

或者,你可以使用 setsebool 命令临时允许FTP流量:

sudo setsebool -P ftp_home_dir on sudo setsebool -P allow_ftpd_full_access on 

6. 测试FTP连接

使用FTP客户端(如FileZilla)连接到服务器,测试上传和下载文件的功能。

总结

通过以上步骤,你可以在CentOS上配置VSFTP并设置防火墙规则,确保FTP服务正常运行且安全。

0