IPTables 帮助:流量强制流向特定 NIC?

IPTables 帮助:流量强制流向特定 NIC?

我们有一台运行 CentOS 4 的 Linux 虚拟服务器。有两个物理网卡、12 个虚拟网卡,虚拟网卡上配置了 12 个 IP 地址。虚拟网卡上 IP 的流量被路由到与物理网卡关联的单个 IP。因此,我们的 Apache Web 服务器不会响应虚拟网卡上其他 IP 的虚拟主机配置。我们都不是 Unix 管理员。但是,我们猜测 IPTables 中存在某些问题导致了这种情况。以下是我们认为是罪魁祸首的 IPTables 内容:

-A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports xxxx
-A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-ports xxxx

我们的这个假设正确吗?

完整表格如下:

*自然
:预路由接受 [0:0]
:后路由接受 [0:0]
:输出接受 [0:0]
-A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 8011
-A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-ports 8001
犯罪

*筛选
:输入接受
:转发接受
:输出接受
:RH-防火墙-1-输入-[0:0]
-A 输入-j RH-防火墙-1-输入
-A 转发 -j RH-防火墙-1-输入
-A RH-防火墙-1-输入-i lo -j 接受

# 禁用时间戳请求
-A RH-Firewall-1-INPUT -p icmp --icmp-type 13 DROP
# 结束时间戳请求

# 禁用坏数据包
-A RH-Firewall-1-INPUT - tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
# 结束坏数据包

-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j 接受
-A RH-Firewall-1-INPUT -m 状态 --状态 ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8011 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8001 -j ACCEPT

#开始 TSM 客户端端口 (1501)
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 1501 -j ACCEPT
#结束 TSM 客户端端口 (1501)

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1512 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9494 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9495 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4750 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1920 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1922 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8200:8299 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8300:8399 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 63335 -j ACCEPT

-A RH-防火墙-1-输入-p tcp --dport 137:139 -j 接受
-A RH-防火墙-1-输入-p udp --dport 137:139 -j 接受

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
犯罪

答案1

我对你的问题有点困惑,但我能说的是 iptables 语句的作用:每个到端口 80/443(HTTP/HTTPS)的数据包都被重定向到另一个端口。

因此 apache 必须监听该端口,否则数据包就无法到达 apache。

数据包的 IP 地址保持不变。

我建议你和进行设置的人谈谈,并询问他们为什么进行端口重定向。

答案2

目标REDIRECT将修改数据包的目标地址,将其分配给数据包所来自的接口的地址(即,将数据包重定向到自身)

这显然意味着真正的目的地已被核爆,无论它实际要去哪里,都永远不会看到它。

当然,这并不能真正保证它就是问题的根源,请考虑提供完整的 iptables-save 信息。

相关内容