设置Linux FTP服务器的防火墙需要确保FTP服务所需的端口是开放的。FTP通常使用两个端口:21(用于控制连接)和20(用于数据传输)。此外,如果使用被动模式(PASV),还需要开放一系列动态端口。以下是如何在常见的Linux发行版上设置防火墙的步骤:
安装iptables(如果尚未安装):
sudo apt-get install iptables # Debian/Ubuntu
sudo yum install iptables # CentOS/RHEL
允许FTP控制连接:
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
允许FTP数据连接:
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
允许被动模式端口范围(例如,50000到50050):
sudo iptables -A INPUT -p tcp --dport 50000:50050 -j ACCEPT
保存iptables规则:
sudo iptables-save > /etc/iptables/rules.v4 # Debian/Ubuntu
sudo service iptables save # CentOS/RHEL
安装firewalld(如果尚未安装):
sudo apt-get install firewalld # Debian/Ubuntu
sudo yum install firewalld # CentOS/RHEL
启动firewalld服务:
sudo systemctl start firewalld
sudo systemctl enable firewalld
允许FTP控制连接:
sudo firewall-cmd --permanent --add-port=21/tcp
允许FTP数据连接:
sudo firewall-cmd --permanent --add-port=20/tcp
允许被动模式端口范围(例如,50000到50050):
sudo firewall-cmd --permanent --add-port=50000-50050/tcp
重新加载firewalld配置:
sudo firewall-cmd --reload
安装ufw(如果尚未安装):
sudo apt-get install ufw # Debian/Ubuntu
sudo yum install ufw # CentOS/RHEL
启用ufw:
sudo ufw enable
允许FTP控制连接:
sudo ufw allow 21/tcp
允许FTP数据连接:
sudo ufw allow 20/tcp
允许被动模式端口范围(例如,50000到50050):
sudo ufw allow 50000:50050/tcp
通过以上步骤,您应该能够成功设置Linux FTP服务器的防火墙。