这个 iptables 规则是否会接受所有流量,从而使我的其他规则变得无用?

这个 iptables 规则是否会接受所有流量,从而使我的其他规则变得无用?

我从其他人那里改编了这个 iptables 配置,并试图弄清楚它是否能按照我的要求运行。它应该在 coreos 服务器上运行,带有几个 docker 容器,并充当 web 服务器。

因此端口 80 和 443 应该打开,icmp 流量被允许,我需要 ssh 访问。我限制了 ssh 的速率,并将其放在不同的端口上,默认情况下流量被丢弃。据我所知,一切都很好。但是有一条规则我不明白:-A INPUT -i eth1 -j ACCEPT。我相信这条规则是为了让 docker 容器相互通信。

但是该规则不会向 www 打开整个界面吗?这条规则到底起什么作用?docker 需要它吗,还是可以省略它?

这是整个配置:

  *filter
  :INPUT DROP [0:0]
  :FORWARD DROP [0:0]
  :OUTPUT ACCEPT [0:0]

  # Loopback interface
  -A INPUT -i lo -j ACCEPT

  # What does this rule do exactly? Do I need it?
  -A INPUT -i eth1 -j ACCEPT

  # Already established connections
  -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

  # Web services
  -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
  -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

  # Rate limit SSH
  -A INPUT -p tcp --dport 2233 -m state --state NEW -m recent --set --name SSH
  -A INPUT -p tcp --dport 2233 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
  -A INPUT -p tcp --dport 2233 -m state --state NEW -j ACCEPT

  # ICMP traffic
  -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
  -A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
  -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
  COMMIT

输出ip route list

default via {ip here}.64.1 dev eth0  proto static
10.18.0.0/16 dev eth0  proto kernel  scope link  src 10.18.0.5
172.17.0.0/16 dev docker0  proto kernel  scope link  src 172.17.0.1
{ip here}.64.0/18 dev eth0  proto kernel  scope link  src {ip here}.86.198

有关的:

答案1

从你的路由表来看,你 eth1接口,对于路由器来说,这是很奇怪的。

普通的路由器的配置是:一个接口(eth0)连接到外部世界,另一个接口(eth1您的 LAN。然后iptables规则是有意义的:它们严格控制界面上的输入eth0,而它们允许一切在您的 LAN 内流动。但是,要使其正常工作,您还需要:

iptables -A FORWARD -j ACCEPT 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

如果没有第一个,它与你的政策完全相悖(:前锋丢球 [0:0])局域网内的电脑永远无法与外界通信;第二种方法也可以让局域网内的电脑与外界通信,方法是将数据包的源地址重写为路由器外部接口的地址,这样就可以回复数据包,然后路由器会处理自动地将回复数据包发送给其预期接收者。如果您不希望 LAN 上的 PC 与外界通信,则可以删除这两条规则。

你的规则和接口就是这样,因为没有eth1接口(因此没有局域网),你所担心的规则完全没用。这些规则只是让当前的 PC 成为一台受到良好监管的 PC,一些服务可以从外部访问,但不执行通常与路由器相关的功能,IE您的 LAN 的 NAT 和防火墙。

如何进行取决于您要实现的目标。

相关内容