温馨提示×

CentOS FTP Server怎样配置防火墙

小樊
40
2025-12-01 19:50:28
栏目: 智能运维

在CentOS上配置FTP服务器的防火墙,需要确保FTP服务所需的端口是开放的。FTP通常使用两个端口:21(用于控制连接)和20(用于数据传输)。此外,如果使用被动模式(PASV),还需要开放一系列动态端口范围。以下是如何配置防火墙的步骤:

1. 安装并启用firewalld

CentOS 7及以上版本默认使用firewalld作为防火墙管理工具。

sudo yum install firewalld -y
sudo systemctl start firewalld
sudo systemctl enable firewalld

2. 开放FTP端口

控制连接端口(21)

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

数据传输端口(20)

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

被动模式端口范围(默认49152-65535)

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

3. 重新加载防火墙规则

使更改生效:

sudo firewall-cmd --reload

4. 验证端口是否开放

你可以使用以下命令来检查端口是否已经开放:

sudo firewall-cmd --list-all

或者使用nmap工具来扫描本地端口:

sudo nmap -sT localhost

5. 配置SELinux(如果启用)

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

查看SELinux状态

sestatus

如果SELinux处于 enforcing 模式,可以临时设置为 permissive 模式来测试:

sudo setenforce 0

或者配置SELinux策略:

编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=permissive,然后重启系统。

6. 配置FTP服务器

确保你的FTP服务器(如vsftpd)已经正确安装并配置。以下是一些基本的vsftpd配置示例:

编辑vsftpd配置文件

sudo vi /etc/vsftpd/vsftpd.conf

基本配置示例

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

重启vsftpd服务

sudo systemctl restart vsftpd

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

0