我以前通过iptables添加了一些netfilter规则。现在我想通过ufw来管理这些规则,并简化我想要摆脱当前规则并重新开始的事情,就好像我从一开始就在使用ufw一样。
我运行sudo iptables --flush以删除所有当前规则,然后运行sudo ufw allow 22以允许ssh和sudo ufw enable。然后我被引导出我的ssh会话,所以这个规则显然不起作用。
我与控制台会话连接,并将sudo iptables -L -v与使用ufw的不同服务器进行比较,注意到此服务器上的顶级输入链为空,而工作服务器有:
Chain INPUT (policy DROP 77 packets, 3613 bytes)
pkts bytes target prot opt in out source destination
3842 682K ufw-before-logging-input all -- any any anywhere anywhere
3842 682K ufw-before-input all -- any any anywhere anywhere
422 32270 ufw-after-input all -- any any anywhere anywhere
422 32270 ufw-after-logging-input all -- any any anywhere anywhere
422 32270 ufw-reject-input all -- any any anywhere anywhere
422 32270 ufw-track-input all -- any any anywhere anywhere 看起来,刷新已经清除了ufw应用于输入链的一些默认规则,这是一个正确的假设吗?如果是这样的话,a)如何修复这种情况;b)如何正确地处理此过程?
发布于 2016-04-08 12:46:03
事实证明,我的怀疑是正确的,sudo iptables --flush已经删除了ufw的输入链规则,这些规则称为它自己的定制链。不管出于什么原因(我还不知道),ufw在启用时并没有把这些放回去。
为了让ufw把这些规则放回去,我必须从iptable中删除所有ufw链,然后启用ufw。我就是这样做的:
sudo iptables -X ufw-after-forward
sudo iptables -X ufw-after-input
sudo iptables -X ufw-after-logging-forward
sudo iptables -X ufw-after-logging-input
sudo iptables -X ufw-after-logging-output
sudo iptables -X ufw-after-output
sudo iptables -X ufw-before-forward
sudo iptables -X ufw-before-input
sudo iptables -X ufw-before-logging-forward
sudo iptables -X ufw-before-logging-input
sudo iptables -X ufw-before-logging-output
sudo iptables -X ufw-before-output
sudo iptables -X ufw-reject-forward
sudo iptables -X ufw-reject-input
sudo iptables -X ufw-reject-output
sudo iptables -X ufw-track-input
sudo iptables -X ufw-track-output当我启用ufw之后,它正确地设置了iptables。
https://serverfault.com/questions/768864
复制相似问题