使用防火墙保护CentOS FTP Server的核心步骤如下(基于firewalld):
-
安装并启动firewalld
sudo yum install firewalld sudo systemctl start firewalld sudo systemctl enable firewalld -
开放FTP核心端口
- 控制端口(主动模式):21端口
sudo firewall-cmd --permanent --add-port=21/tcp - 数据端口(主动模式):默认20端口(需在FTP配置中启用)
sudo firewall-cmd --permanent --add-port=20/tcp - 被动模式端口范围:需在FTP配置文件(
/etc/vsftpd/vsftpd.conf)中设置pasv_min_port和pasv_max_port(如50000-50010),然后在防火墙中开放该范围:sudo firewall-cmd --permanent --add-port=50000-50010/tcp
- 控制端口(主动模式):21端口
-
重新加载防火墙规则
sudo firewall-cmd --reload -
验证端口开放
sudo firewall-cmd --list-all -
可选:配置SELinux(若启用)
- 允许FTP访问用户目录:
sudo setsebool -P ftp_home_dir on sudo setsebool -P allow_ftpd_full_access on - 为FTP目录设置正确上下文(如
/var/ftp):sudo chcon -Rv --type=public_content_t /var/ftp
- 允许FTP访问用户目录:
安全增强建议:
- 仅开放必要端口,避免使用默认的20端口(可改用被动模式+自定义端口范围)。
- 启用FTP over TLS(FTPS)加密传输。
- 定期检查防火墙规则和FTP服务日志,及时关闭异常端口。
参考来源: