以下是使用 ufw 和 iptables 配置Ubuntu FTP服务器防火墙的步骤(以vsftpd为例):
一、使用ufw(推荐,简单易管理)
-
安装并启用ufw
sudo apt update sudo apt install ufw sudo ufw enable -
允许FTP核心端口
- 控制连接(默认21端口):
sudo ufw allow 21/tcp - 数据连接(默认20端口):
sudo ufw allow 20/tcp
- 控制连接(默认21端口):
-
允许被动模式端口范围
- 编辑vsftpd配置文件(若使用vsftpd):
sudo nano /etc/vsftpd.conf确保以下参数正确(示例范围1024-1048,可自定义):
pasv_enable=YES pasv_min_port=1024 pasv_max_port=1048 - 重启vsftpd服务:
sudo systemctl restart vsftpd - 开放被动模式端口:
sudo ufw allow 1024:1048/tcp
- 编辑vsftpd配置文件(若使用vsftpd):
-
检查规则
sudo ufw status
二、使用iptables(需手动管理规则)
-
安装iptables
sudo apt install iptables -
允许FTP控制与数据连接
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT # 控制连接 sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT # 数据连接 -
允许被动模式端口范围
sudo iptables -A INPUT -p tcp --dport 1024:1048 -j ACCEPT # 示例范围 -
保存规则
sudo apt install iptables-persistent sudo netfilter-persistent save sudo netfilter-persistent reload -
查看规则
sudo iptables -L -n
注意事项
- 安全性:FTP协议明文传输,建议改用 SFTP(SSH File Transfer Protocol) 或 FTPS(FTP over SSL/TLS)。
- 端口调整:被动模式端口范围需与FTP服务器配置一致,避免冲突。
- 服务重启:修改配置后需重启FTP服务(如
sudo systemctl restart vsftpd)。
以上步骤参考自。