2021-04-27 00:43:20
在Linux系统上配置FTP Server(通常使用vsftpd或proftpd)的防火墙需分步骤完成,涵盖服务安装、防火墙规则配置及测试验证。以下是详细操作指南:
基于Debian的系统(如Ubuntu):
更新软件包列表:sudo apt-get update
安装vsftpd:sudo apt-get install vsftpd
基于RHEL的系统(如CentOS):
安装vsftpd:sudo yum install vsftpd
启动并启用服务:猜备猜
启动服务:sudo systemctl start vsftpd
启用开机自启:sudo systemctl enable vsftpd
查看防火墙状态:
sudo firewall-cmd --state添加必要端口:
FTP控制连接(端口21):sudo firewall-cmd --permanent --add-port=21/tcp
FTP数据连接(端口范围40000-50000):sudo firewall-cmd --permanent --add-port=40000-50000/tcp
TLS加密连接(端口990):sudo firewall-cmd --permanent --add-port=990/tcp
重新加载规则:
sudo firewall-cmd --reload启用防火墙(若未启动):
sudo firewall-cmd --enable查看当前规则:
sudo iptables -L添加允许规则:
FTP控制连接:sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
FTP数据连接:sudo iptables -A INPUT -p tcp --dport 40000:50000 -j ACCEPT
TLS加密连接:sudo iptables -A INPUT -p tcp --dport 990 -j ACCEPT
保存规穗型则:
Debian系统:sudo netfilter-persistent save
RHEL系统:sudo service iptables save
重启服务:
Debian系统:sudo systemctl restart netfilter-persistent
RHEL系统:sudo systemctl restart iptables
使用FTP客户端连接:
通过FileZilla等工具测试服务器IP的21端口(控制连接)和40000-50000端口(数据连接)是否可访问。
若启用TLS,需验证SSL/TLS配置是否生效(如端口990)。
验证命令示例:
telnet <服务器IP> 21若返回220欢迎消息,则表示连接成功。
定期更新规则:
根据网络环境变化(如新增服务、端口调整)及时修改防火墙规则。
启用SELinux增强安全:
SELinux可限制FTP进程的文件滚樱访问权限,需确保其策略与vsftpd兼容。
检查状态:sestatus
临时放宽限制(测试用):sudo setsebool -P ftpd_full_access on
监控防火墙状态:
使用以下命令检查firewalld运行状态:sudo systemctl status firewalld
查看iptables规则:sudo iptables -L -n
日志排查:
查看FTP服务日志:sudo tail -f /var/log/vsftpd.log
查看防火墙日志(firewalld):sudo journalctl -u firewalld
通过以上步骤,可完成Linux FTP Server的防火墙配置。如遇复杂环境(如NAT、多IP),需进一步调整端口转发或绑定设置。