我正在胡闹ufw
,因为我从来没有将iptables
知识保存足够长的时间来发挥作用。
因此,在全新的 Ubuntu LTS16 上,root
我尝试发出一些类似于此列表的命令。
ufw default deny incoming
ufw allow ssh
ufw deny http
ufw deny https
ufw enable
因此,这就是我得到的:
root@dev:~# ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
27017 DENY Anywhere
80 DENY Anywhere
443 DENY Anywhere
22 (v6) ALLOW Anywhere (v6)
27017 (v6) DENY Anywhere (v6)
80 (v6) DENY Anywhere (v6)
443 (v6) DENY Anywhere (v6)
不过,我仍然可以做任何事情。我可以看到它的网页。我可以远程登录到端口 80,并与网络服务器通信。我已经重新启动了。
在网上搜索说像 Docker 这样的东西可能会干扰,但我没有使用类似的东西。
我甚至去了我在这里的旧 Ubuntu LTS14 服务器,并尝试了ufw
所有操作,但同样没有任何效果。
那么,两台服务器..零成功..我做错了什么?
答案1
事实证明,在各种测试中,ufw
我显然制定了大量 iptables 规则。 iptables -S
显示了多页规则。我用iptables -X
和重置了它们ufw reset
,现在看到了预期的结果。
答案2
对于内部安全步骤,旧的 /etc/hosts.deny 和 /etc/hosts.allow 文件仍然有效。示例:
#/etc/hosts.deny
# You may wish to enable this to ensure any programs that don't
# validate looked up hostnames still leave understandable logs. In past
# versions of Debian this has been the default.
# ALL: PARANOID
ALL: ALL
然后可以在/etc/hosts.allow中逐个启用服务。
这是我们在 iptables 防火墙出现之前所做的事。它对我来说总是有效的,所以即使我搞砸了防火墙,hosts.deny 也能帮我解决问题。
要允许从特定位置进入 SSH,这很容易。在这里,我允许本地客户端和我挑选的另一个随机地址上的某个人以及任何 ssh 用户进入
#/etc/hosts.allow
#
ALL: 127.0.0.1
ALL: 112.222.41.120
sshd: ALL
sshdfwd-X11: ALL
您还可以允许特定子网等等。