![为什么我的防火墙在重启时会重置?](https://linux22.com/image/1084656/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E9%98%B2%E7%81%AB%E5%A2%99%E5%9C%A8%E9%87%8D%E5%90%AF%E6%97%B6%E4%BC%9A%E9%87%8D%E7%BD%AE%EF%BC%9F.png)
我在专用服务器上托管游戏服务器,几天前正在设置防火墙(必须重新设置所有内容,硬盘出现故障,我忘记备份)。
一切都运行良好,防火墙规则正常工作,直到我不得不重新启动服务器。我使用标准reboot
命令重新启动了服务器,但服务器再也没有恢复。
我联系了我的提供商,他查看了它,发现规则iptables
已完全重置,阻止了每一个服务器上的端口。
我已经通过启用了防火墙,sudo ufw enable
并在iptables
(如图所示):
sudo ufw enable
sudo iptables -A INPUT -d 85.25.95.217/32 -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -d 85.25.95.217/32 -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -d 85.25.95.217/32 -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 443 -j DROP
sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 80 -j DROP
sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 443 -j DROP
sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 80 -j DROP
sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 443 -j DROP
sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 80 -j DROP
sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 8880 -j DROP
sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 8881 -j DROP
sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 8880 -j DROP
sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 8881 -j DROP
sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 8880 -j DROP
sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 8881 -j DROP
sudo iptables-save > /etc/network/iptables.rules
reboot
在我的interfaces
文件中,我已将其放在pre-up iptables-restore < /etc/network/iptables.rules
最后。
我做错了什么,或者如果我没有做错什么,为什么ufw
在服务器重启时重置/阻止所有端口?
答案1
好的,如果您iptables
从命令行使用,它们就不会在重新加载或重新启动时恢复。
ufw
您可以按照说明设置防火墙规则这里 或者如果您确实需要使用,iptables
您需要将规则保存到文件中,并在网络启动之前将其恢复,您还应该ufw
按照 bodhi.zazen 的建议禁用它们:
sudo ufw disable # You don't want UFW managaing your firewall if you are.
iptables -A INPUT -p tcp --match multiport --dports 1:79 -j ACCEPT
iptables -A INPUT -p tcp --match multiport --dports 81:65535 -j ACCEPT
sudo sh -c "iptables-save > /etc/iptables.rules"
假设您已使用以下方式设置网络接口/etc/network/interfaces
找到您的接口的存根并将以下内容添加到节中:
pre-up iptables-restore < /etc/iptables.rules
例如
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
# post-down iptables-restore < /etc/iptables.downrules # if needed