天天看点

如何从开发环境直连线上(IPTables)

假如你在生产环境有一个内网可访问的端口,let’s say: 80,而且有生产机器的应用管理员权限。在这样的情况下,其实是可以做到从内网直接连接到线上环境任意端口的。链接ssh,链接数据库都不在话下。当然,安全性和便利性永远是不可调和的一对矛盾。为了避免有人用它来干坏事,我们也至少应当对这种方式有所了解。

假设有生产环境机器10.x.x.1。可在内网通过vip:123.123.123.1访问80端口。

坏蛋拥有线上环境sudo权限,现在希望在生产环境中直接访问任意端口。

root权限或者sudo执行以下命令……

<code>sudo iptables -t nat -a prerouting -p tcp --dport 80 -j redirect --to-port 22</code>

此命令将创立从80端口到22端口的路由转发。

<code># 在任意一台办公网的机器</code>

<code>ssh [email protected] -p 80</code>

<code># 清除路由规则</code>

<code>sudo iptables -t nat -f</code>

<code></code>

<code># 将80端口重定向至5432:postgresql</code>

<code>sudo iptables -t nat -a prerouting -p tcp --dport 80 -j redirect --to-port 5432</code>

<code># 将80端口重定向至6379:redis</code>

<code>sudo iptables -t nat -a prerouting -p tcp --dport 80 -j redirect --to-port 6379</code>

临时的远程调试,ide开发需求可以短时间内使用这种方法。

但一定要记住,请一定只转发至有应用权限验证的端口。

用完之后必须及时恢复,不然安全会来找你喝茶的。

另外实验请限于内网端口,不要作死在对公网开放的端口上使用。

上一篇: JSON