Alex Asked: 2009-08-29 10:04:50 +0800 CST2009-08-29 10:04:50 +0800 CST 2009-08-29 10:04:50 +0800 CST 将私人网络服务器盒暴露在互联网上 772 如何将我的一个有网络服务器的私人网络盒子暴露给互联网? 更严格地说,盒子 A 有两个接口:eth0和tap1。eth0用于连接 ISP,我的 IP 是77.37.194.101. Box B 连接到tap1,在这个子网中 box A 有 IP10.1.1.1和 box B 10.1.1.16。如何使框 B 可以从 Internet 访问77.37.194.101? 两台机器都有 Ubuntu。 ubuntu routing subnet 2 个回答 Voted Best Answer Mark Johnson 2009-08-29T10:23:50+08:002009-08-29T10:23:50+08:00 一种选择是通过Box A上的netfilter进行DNAT : iptables -t nat -A PREROUTING -p tcp -d 77.37.194.101 --dport 80 -j DNAT --to-destination 10.1.1.16. 这只暴露了80端口。 joe 2009-08-29T10:58:31+08:002009-08-29T10:58:31+08:00 Tap接口是虚拟的,通常用于虚拟化。如果是这种情况,您应该为 DMZ 创建另一个分接接口。将 DMZ Tap 接口分配给虚拟服务器。在 DMZ 接口上不应为主机分配 IP,也不应为 DMZ 中的任何机器分配内部网络。然后使用NAT路由。这样,如果服务器被黑客入侵,则没有内部网络连接主机和您可能拥有的任何其他机器或虚拟机。(虚拟化黑客仍然存在很小的风险,但你比让外部访问内部网络安全得多。) 安全预防措施和路由在虚拟机或物理机中应相同。快速阅读任何标准防火墙 Howto。(单体墙、ipcop 等) 如果您只是在内部网络上进行 NAT 路由,那么您的 Web 服务器中的任何妥协都会让您完全访问您的整个内部网络和主机以及内部网络上的所有虚拟设备(如果这是一个虚拟设备)。 Shell 访问和文件传输应通过 SSH 到虚拟机完成,切勿通过内部共享文件访问(smb、nfs 等)完成。
一种选择是通过Box A上的netfilter进行DNAT :
这只暴露了80端口。
Tap接口是虚拟的,通常用于虚拟化。如果是这种情况,您应该为 DMZ 创建另一个分接接口。将 DMZ Tap 接口分配给虚拟服务器。在 DMZ 接口上不应为主机分配 IP,也不应为 DMZ 中的任何机器分配内部网络。然后使用NAT路由。这样,如果服务器被黑客入侵,则没有内部网络连接主机和您可能拥有的任何其他机器或虚拟机。(虚拟化黑客仍然存在很小的风险,但你比让外部访问内部网络安全得多。)
安全预防措施和路由在虚拟机或物理机中应相同。快速阅读任何标准防火墙 Howto。(单体墙、ipcop 等)
如果您只是在内部网络上进行 NAT 路由,那么您的 Web 服务器中的任何妥协都会让您完全访问您的整个内部网络和主机以及内部网络上的所有虚拟设备(如果这是一个虚拟设备)。
Shell 访问和文件传输应通过 SSH 到虚拟机完成,切勿通过内部共享文件访问(smb、nfs 等)完成。