我必须配置一个托管在公司网络中的 Java 应用程序。那么什么是 DMZ 以及如何通过暴露服务?
3 回答
在计算机安全中,DMZ 或非军事区是一个物理或逻辑子网络,它包含组织的外部服务并将其暴露给更大的不受信任的网络,通常是 Internet。该术语通常被 IT 专业人员称为 DMZ。它有时被称为外围网络。DMZ 的目的是为组织的局域网 (LAN) 添加额外的安全层;外部攻击者只能访问 DMZ 中的设备,而不是网络的任何其他部分。
DMZ 区域是本地(家庭或公司)网络的一个区域,可从外部(互联网)访问。
通常,在家庭路由器中,有一个配置允许您指定 DMZ 中的计算机 (IP),路由器会将来自 Internet 的请求转发到该计算机。然后,该计算机可以托管可用于 Internet 的服务(http、ftp、ssh、...)。根据路由器的不同,这或多或少是可配置的。
在您的情况下,我认为在 java 应用程序中没有什么特别的事情要做(除了在正确的 ip 上绑定服务器套接字......如果您有多个您可能没有的)。您必须配置公司路由器(或询问 IT)才能将您的计算机添加到 DMZ。他们可能会为您提供一个外部 ip(与您的计算机内部 ip 匹配),而不是可用于从 Internet 访问您的服务。
您想要 DMZ 的原因及其提供的好处。一般的想法是,您将面向公众的服务器放在“DMZ 网络”中,这样您就可以将它们与您的私有、受信任的网络分开。用例是因为你的服务器有一个公共面孔,它可以被远程root。如果发生这种情况,并且恶意方获得了对您服务器的访问权限,那么他应该被隔离在 DMZ 网络中,并且不能直接访问私有主机(或例如位于私有网络内而不是在非军事区)。
怎么做:有几种方法,但“书本示例”是利用两个防火墙(当然,您可以使用一个防火墙和智能配置来实现相同的结果,尽管硬件隔离更好)。您的主防火墙位于 Internet 和服务器之间,第二个防火墙位于服务器和专用网络之间。在第二个防火墙上,理想情况下,从服务器到专用网络的所有访问都将被禁止(当然,它是一个有状态的防火墙,因此如果您启动从专用网络到服务器的连接,它将起作用)。
因此,这是对 DMZ 的一个相当高级的概述。如果您需要更多技术细节,请相应地编辑您的问题。