在Debian上配置FTP服务器的防火墙规则,通常需要使用iptables
或ufw
(Uncomplicated Firewall)。以下是使用这两种方法的步骤:
iptables
更新系统:
sudo apt update && sudo apt upgrade -y
安装FTP服务器(如果尚未安装):
sudo apt install vsftpd -y
启动并启用FTP服务:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
配置防火墙规则:
编辑/etc/iptables/rules.v4
文件(如果使用的是IPv4)或/etc/iptables/rules.v6
文件(如果使用的是IPv6)。
sudo nano /etc/iptables/rules.v4
添加以下规则:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# 允许FTP控制连接(默认端口21)
-A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
# 允许FTP数据连接(动态端口范围)
-A INPUT -p tcp --sport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
# 允许被动模式数据连接(通常在1024到65535之间)
-A INPUT -p tcp --dport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
# 允许FTP服务器响应连接
-A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT
COMMIT
应用防火墙规则:
sudo iptables-restore < /etc/iptables/rules.v4
ufw
更新系统:
sudo apt update && sudo apt upgrade -y
安装ufw
(如果尚未安装):
sudo apt install ufw -y
启用ufw
:
sudo ufw enable
配置防火墙规则:
编辑/etc/ufw/before.rules
文件以添加自定义规则。
sudo nano /etc/ufw/before.rules
在*filter
部分添加以下规则:
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
# 允许FTP控制连接(默认端口21)
-A ufw-before-input -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
# 允许FTP数据连接(动态端口范围)
-A ufw-before-input -p tcp --sport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
# 允许被动模式数据连接(通常在1024到65535之间)
-A ufw-before-input -p tcp --dport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
# 允许FTP服务器响应连接
-A ufw-before-output -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT
COMMIT
重新加载ufw
规则:
sudo ufw disable
sudo ufw enable
通过以上步骤,您可以在Debian上配置FTP服务器的防火墙规则。