iptables 端口转发

iptables 端口转发

我正在尝试做一些简单的 TCP 端口转发

[root@wcmisdlin02 ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@wcmisdlin02 ~]# /bin/echo 1 > /proc/sys/net/ipv4/ip_forward
[root@wcmisdlin02 ~]# cat /proc/sys/net/ipv4/ip_forward
1
[root@wcmisdlin02 ~]# iptables --list
链输入(策略接受)
目标 保护 优化 源 目标
RH-Firewall-1-INPUT 全部 -- 任何地方 任何地方

链转发(策略接受)
目标 保护 优化 源 目标
RH-Firewall-1-INPUT 全部 -- 任何地方 任何地方

链输出(策略接受)
目标 保护 优化 源 目标

链 RH-Firewall-1-INPUT(2 个引用)
目标 保护 优化 源 目标
接受所有 -- 任何地方 任何地方
接受 icmp -- 任何地方 任何地方 icmp 任何
接受 esp -- 任何地方
接受啊--任何地方任何地方
接受 udp -- 任何地方 224.0.0.251 udp dpt:mdns
接受 udp -- 任何地方 udp dpt:ipp
接受 tcp -- 任何地方 任何地方 tcp dpt:ipp
接受所有 -- 任何地方任何地方状态
关联企业,已建立
接受 tcp -- 任何地方任何地方状态新
tcp dpt:mysql
接受 tcp -- 任何地方任何地方状态新
tcp dpt:ssh
接受 tcp -- 任何地方任何地方状态新
tcp dpt:http
接受 tcp -- 任何地方任何地方状态新
tcp dpt:ftp
接受 tcp -- 任何地方任何地方状态新
tcp dpt:https
拒绝所有--任何地方
拒绝与 icmp 主机禁止
[root@wcmisdlin02 ~]# iptables --table nat --append PREROUTING --proto
tcp --dport 80 --jump DNAT --to 10.52.208.223:80
[root@wcmisdlin02 ~]# iptables --table nat --list PREROUTING
链 PREROUTING(策略接受)
目标 保护 优化 源 目标
DNAT tcp——任意位置任意位置的 tcp
dpt:http 至:10.52.208.223:80
[root@wcmisdlin02 ~]# curl --verbose http://10.52.208.221:80
* 即将连接()10.52.208.221 端口 80
* 尝试 10.52.208.221... 连接被拒绝
* 无法连接到主机
* 关闭连接#0
curl:(7)无法连接到主机
[root@wcmisdlin02 ~]#

答案1

您正在将流量发送到 10.52.208.221。根据您发布的配置,您的问题在于 Web 服务器,而不是防火墙。您的规则看起来是正确的。FORWARD 和 INPUT 被重定向到 RH-Firewall-1-INPUT,其中您的第一条规则是允许所有流量。正如其他人指出的那样,您可能允许 eth1 上的所有流量,而实际上世界流量来自 eth0。其次,您必须在流量返回世界时对其进行 NAT

iptables --table nat --append POSTROUTING --proto tcp --dport 80 --jump MASQUERADE -o OUT_INTERFACE

来自路由器的流量永远不会到达输入或转发链,而是通过输出链到达 Web 服务器。该子网中的其他系统同样会直接到达 Web 服务器。但是,世界上的其他系统将通过 INPUT / FORWARD 链,并且需要 SNAT 和 DNAT,这样在世界上看起来就是一台机器。您仍然无法从网络内部进行测试。您必须从 Web 服务器的对面接口进行测试。请告诉我您的 IP 地址,我会告诉您正确的配置。

答案2

连接被拒绝意味着至少有一台主机正在接受 TCP 数据包,但没有服务正在侦听该端口。当您从不同的 IP 连接到 10.52.208.221:80 和 10.52.208.223 时会发生什么?

我现在无法测试,但我已经看到过一些情况,从 IP 表设置为 NAT 的 IP 的主机进行连接不起作用。我不确定这里是否是这种情况,因为您没有明确定义应用规则的接口,但我见过一些情况,Linux 将您要连接的 IP 视为“本地”,并使用环回接口并跳过 iptables。

无论如何,你能从盒子外面尝试一下吗?

相关内容