在Debian上为vsftpd设置防火墙规则,您需要使用iptables
sudo apt-get update
sudo apt-get install iptables
/etc/sysctl.conf文件:sudo nano /etc/sysctl.conf
找到以下行:
net.ipv4.ip_forward=1
如果没有找到,请在文件末尾添加它。保存并关闭文件。
运行以下命令使更改生效:
sudo sysctl -p
# 清除现有规则
sudo iptables -F
sudo iptables -t nat -F
# 允许本地连接
sudo iptables -A INPUT -i lo -p tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -o lo -p tcp --sport 21 -m conntrack --ctstate ESTABLISHED -j ACCEPT
# 允许被动模式连接
sudo iptables -A INPUT -p tcp --dport 20 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT
# 允许FTP数据连接
sudo iptables -A INPUT -p tcp --dport 1024:1048 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 1024:1048 -m conntrack --ctstate ESTABLISHED -j ACCEPT
# 允许已建立的连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 限制FTP访问
sudo iptables -A INPUT -p tcp --dport 21 -m conntrack --ctstate NEW -m state --state NEW -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 21 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 21 -j DROP
这些规则允许本地连接、被动模式连接和FTP数据连接,同时限制了FTP访问速率。
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
现在,您已经在Debian上为vsftpd设置了防火墙规则。请注意,这些规则仅适用于IPv4。如果您使用的是IPv6,请相应地调整规则。