我有一台运行 Windows 7 的个人计算机,另一台运行 Ubuntu Server 12.0.4 的计算机。目前,如果我在 Windows 7 上运行某个程序(例如 Tomcat),我可以使用路由器 IP(例如 192.168.0.x)在 Ubuntu 机器上访问它,反之亦然。我该如何做才能让 Windows 7 机器可以访问 Ubuntu 机器,而 Ubuntu 机器无法访问 Windows 7 机器?基本上,我想允许 Ubuntu 机器访问互联网,但不允许其访问路由器后面的其他计算机。
我尝试在 Win7 机器上设置一条防火墙规则(使用 Windows 防火墙),该规则的范围是我的 Ubuntu 机器的本地 IP 地址(192.168.0.6),并选择了“阻止连接”,但这似乎没有什么区别。
答案1
如果 Ubuntu 服务器应该托管服务(例如 Web 服务器或 Tomcat)并且这些服务应该可以从互联网访问,那么您应该构建一个非军事区 (DMZ)。
https://en.wikipedia.org/wiki/DMZ_%28computing%29
服务器将被放置在 DMZ 中。根据防火墙和端口转发配置,可以从 Internet 连接到 DMZ 内的主机。DMZ 中的主机无法连接到内部网络中的主机。内部网络中的主机可以访问 DMZ 内和 Internet 中的主机。
如果攻击者破坏了 DMZ 内的服务器,攻击者将无法直接连接到内部网络中的主机。当然这取决于配置。当这些主机与受感染的 DMZ 服务器上的服务建立连接时,攻击者仍然可以尝试破坏内部网络中的主机。
一些路由器提供 DMZ 功能,可以在配置界面中启用。
答案2
如果您只想限制 ubuntu 访问其他内容,那么您可能需要查看 iptables,其中数据包位于 eth...出站到 192.xx0 并且状态为新的 -j DROP。
这不是确切的语法,但应该能给你一个大概的概念。防火墙会丢弃所有从 ubuntu 传出到本地网络的新数据包。你必须在此规则之前指定你的路由器 -j ALLOW,这样你就可以随时将新流量发送到互联网。由于它只阻止出站新连接,你的 win box 应该不会在启动会话时遇到问题。
如果您只是担心 win 系统,请在其上安装个人防火墙并阻止需要阻止的内容。如果您有一个不错的电缆调制解调器,它可能会让您在无线和有线之间指定不同的 ip,以便它们不能相互路由。