Iptables 规则,如何允许另一个服务器 IP

Iptables 规则,如何允许另一个服务器 IP

我有 5 个 IP

1.1.1.1
1.1.1.2
1.1.1.3
1.1.1.4
1.1.1.5

我已经在主 IP 中安装了 openvz 和 openvz webpanel,然后创建了一个 IP 为 1.1.1.2 的 vps

我无法打开 1.1.1.2,但如果我禁用 iptables 防火墙,我就可以打开它

service iptables save
service iptables stop
chkconfig iptables off

所以我需要启用 iptables 防火墙,在 /etc/sysconfig/iptables 中我可以使用什么规则来允许服务器添加其他 ips (1.1.1.2-1.1.1.5)?

我试过这些但还是不正确

-A INPUT -s 1.1.1.2 -j ACCEPT
-A INPUT -s 1.1.1.2 -d 1.1.1.5 -p tcp -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --s 1.1.1.2 -j ACCEPT
-A INPUT -i eth0 -m iprange --src-range 1.1.1.2-1.1.1.5 -j ACCEPT

请帮助大家

如果需要的话,这是 iptables -L -n -v 的输出

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
    0     0 ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           source IP range 1.1.1.2-1.1.1.6
 9243 1597K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    2    92 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0   
 1318 70268 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
  197 17722 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
   67  3375 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 10660 packets, 1713K bytes)
 pkts bytes target     prot opt in     out     source               destination

如果需要的话,这是 ip a sh 的输出

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 36:40:b5:86:c5:6f brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 34:40:b5:86:c5:6c brd ff:ff:ff:ff:ff:ff
    inet 1.1.1.1/29 brd 1.1.1.7 scope global eth0
    inet6 fe80::3640:b5ff:fe86:c56c/64 scope link
       valid_lft forever preferred_lft forever
4: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 34:40:b5:86:c5:6d brd ff:ff:ff:ff:ff:ff
5: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
    link/void
    inet6 fe80::1/128 scope link
       valid_lft forever preferred_lft forever

答案1

将评论中进行的调查形式化为答案会很好,所以我会这样做。

其他 IP 地址(显示为 1.1.1.2 至 1.1.1.5,顺便说一下没有遵循混淆公共 IP 地址的最佳实践) 并未分配给容器化主机的 NIC,而是分配给了容器化的客户镜像,但具体如何分配还不太清楚。

这意味着到这些地址的数据包不算作INPUT流量,因为它们是通过主机路由/桥接的,因此会通过链FORWARD

您的链中只有一条规则FORWARD,并且它会拒绝所有内容,因此ACCEPT链上的策略毫无用处。当我们FORWARD通过刷新链 ( iptables -F FORWARD) 来清除规则时,ACCEPT策略就会发挥作用,流量就会开始流动。

如果你希望 ed 流量更加安全FORWARD,你可以尝试类似于你发布的规则,但将它们放在链中FORWARD,确保正确区分来源目的地地址,并且不要忘记将链策略更改为其他策略,除非ACCEPT您让它们正常工作。

相关内容