温馨提示×

centos中vsftp防火墙规则怎么配置

小樊
39
2025-10-21 18:24:15
栏目: 智能运维

在CentOS系统中配置VSFTPD(Very Secure FTP Daemon)的防火墙规则,通常涉及以下几个步骤:

1. 安装VSFTPD

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

sudo yum install vsftpd

2. 启动并启用VSFTPD服务

启动VSFTPD服务并设置为开机自启:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

3. 配置防火墙

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

3.1 允许FTP流量

你需要允许FTP控制端口(通常是21)和数据端口(通常是20)的流量。

3.1.1 允许FTP控制端口
sudo firewall-cmd --permanent --add-port=21/tcp
3.1.2 允许FTP数据端口

FTP数据端口通常是动态分配的,但你可以允许一个范围的数据端口(例如,1024-65535):

sudo firewall-cmd --permanent --add-port=1024-65535/tcp

3.2 重新加载防火墙配置

应用新的防火墙规则:

sudo firewall-cmd --reload

4. 配置SELinux(如果启用)

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

4.1 查看SELinux状态

sestatus

4.2 设置SELinux为Permissive模式(仅用于测试)

如果你只是想快速测试,可以将SELinux设置为Permissive模式:

sudo setenforce 0

4.3 配置SELinux策略

如果你希望保持SELinux在 enforcing 模式下运行,可以创建一个自定义的SELinux策略模块来允许FTP流量。以下是一个简单的示例:

4.3.1 创建SELinux策略文件

创建一个新的SELinux策略文件,例如 /etc/selinux/targeted/src/policy/policy.31

sudo vi /etc/selinux/targeted/src/policy/policy.31

在文件中添加以下内容:

module vsftpd 1.0;

require {
    type httpd_t;
    class tcp_socket name_bind;
}

allow httpd_t tcp_socket name_bind:tcp_socket;
4.3.2 编译并加载SELinux策略

编译并加载新的SELinux策略:

checkmodule -M -m -o vsftpd.mod vsftpd.te
semodule_package -o vsftpd.pp -m vsftpd.mod
sudo semodule -i vsftpd.pp

5. 测试FTP连接

使用FTP客户端连接到你的服务器,确保一切配置正确。

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

0