我已经设置了我的 raring-ringtail 机器,并决定在删除 ufw 后使用 iptables 来更好地控制我的网络安全。但是,我陷入了困境。首先,我设置了默认策略以默认拒绝所有流量:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
之后,我为本地网络接口添加了 ACCEPT 规则,这些规则运行良好。但是,为了使我的某些本地服务(例如 Web 服务器本地浏览)正常工作,我需要允许来自本地接口 (lo) 的流量。为此,我在网上找到了两个版本:
[1]
iptables -A INPUT -i lo -j ACCEPT # Allow local addresses
iptables -A OUTPUT -o lo -j ACCEPT # Allow local addresses
[2]
iptables -A INPUT -s 127.0.0.1 -j ACCEPT # Allow Allow local addresses
iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT # Allow Allow local addresses
我想知道这两者有什么区别?允许流量进入/来自“lo”接口是否与发送/发送至 127.0.0.1 相同?我应该使用哪一个?为什么?
答案1
使用界面lo
。
1) Ubuntu/Debian 奇怪地使用127.0.1.1
而不是127.0.0.1
来解析您的规范主机名。
2) 默认情况下,127.0.0.0/8(127.anything)进入环回。您不应该将过滤器缩小到该子网中的某个地址。
steven@lat:~$ ping 127.254.254.254 -c 1
PING 127.254.254.254 (127.254.254.254) 56(84) 字节数据。
来自 127.254.254.254 的 64 字节:icmp_req=1 ttl=64 time=0.052 ms--- 127.254.254.254 ping 统计 ---
已发送 1 个数据包,已接收 1 个数据包,0% 数据包丢失,时间 0ms
rtt min/avg/max/mdev = 0.052/0.052/0.052/0.000 ms
steven@lat:~$
3)您可以为环回适配器分配任何其他您喜欢的地址。
无论你做什么,iptables -A INPUT -i lo -o lo -j ACCEPT
这都不是一个坏主意。它表示从这台机器到这台机器的数据包是可以接受的。