我们有一台运行 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 信息。