绕过“特殊”网络设备

绕过“特殊”网络设备

我有一个“安全”调制解调器,当内部访问时,它会将我的外部 IP 重定向到其配置页面。在下图中:

  10.0.0.1 +-------+ 1.2.3.4
     +-----+ Modem |<---------+Internet
     |     +-------+
     |
     |
     |     +--------+ 192.168.1.1
     +---->| Router +------+
10.0.0.253 +--------+      |
                           |
           +--------+      |
           | Server |<-----+
           +--------+ 192.168.1.3

我已在调制解调器上配置了 DMZ 10.0.0.253(路由器),并在路由器上配置了 DMZ 192.168.1.3(服务器)。

nathan@InternetDevice $ curl 1.2.3.4
Hello from Server!

nathan@Server $ curl 1.2.3.4
<!DOCTYPE html>
...
blah blah router config page
...

我想将路由器配置为自动将任何 TCP、UDP 或 ICMP 连接从 重新192.168.1.x路由到1.2.3.4192.168.1.3并且透明。如果有更好的方法来实现这一点(除了使用不太“特殊”的调制解调器),我也会接受。

调制解调器本质上是一个黑匣子,但路由器和服务器都运行 Linux。目前,我有一个主机名,全局解析为1.2.3.4,但路由器的 DNS 服务器解析为192.168.1.3。但是,这在 Chrome OS 设备上失败了,因为 Chrome OS 设备总是使用 Google 的 DNS,感觉很奇怪。

答案1

我最终写了一个脚本......

PUBLIC_IP="$(curl ipinfo.io/ip 2>/dev/null)";
DMZ_IP="192.168.1.3";

add_rule() {
        iptables -t nat -A PREROUTING --dst "${PUBLIC_IP}" --protocol "${1}" --match "${1}" --jump DNAT --to-destination "${DMZ_IP}";
};

add_rule tcp;
add_rule udp;

iptables -t nat -A POSTROUTING -j MASQUERADE;

相关内容