在CentOS上配置FTP服务器的防火墙,需要确保FTP服务所需的端口是开放的。FTP通常使用两个端口:21(用于控制连接)和20(用于数据传输)。此外,如果使用被动模式(PASV),还需要开放一系列动态端口范围。以下是如何配置防火墙的步骤:
CentOS 7及以上版本默认使用firewalld作为防火墙管理工具。
sudo yum install firewalld -y
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=20/tcp
sudo firewall-cmd --permanent --add-port=49152-65535/tcp
使更改生效:
sudo firewall-cmd --reload
你可以使用以下命令来检查端口是否已经开放:
sudo firewall-cmd --list-all
或者使用nmap工具来扫描本地端口:
sudo nmap -sT localhost
如果SELinux处于 enforcing 模式,可能需要配置SELinux策略以允许FTP流量。
sestatus
sudo setenforce 0
编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=permissive,然后重启系统。
确保你的FTP服务器(如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
sudo systemctl restart vsftpd
通过以上步骤,你应该能够在CentOS上成功配置FTP服务器的防火墙。