我正在尝试设置通常的东西,其中包含可从互联网访问的服务器的 DMZ,以及尽可能安全的 LAN。
我碰巧在架构方面也有完全的自由。鉴于我想使我的 LAN 区域尽可能安全,我心里想“有什么比不能从 DMZ 访问 LAN 更好的呢”。为此,我将配置防火墙以阻止 DMZ->LAN 方向的任何传入连接。
当然,我仍然需要我的前端应用程序在 DMZ 中联系受信任的 LAN 服务器。为了实现这一点,我考虑只允许在 LAN->DMZ 方向建立连接。
这意味着与通常情况相反,我信任的 LAN 服务将连接到不受信任的 DMZ 前端服务器。一旦建立 TCP 连接,两个端点之间的所有请求和响应都将在该连接上进行多路复用。
从安全角度来说,这是个好主意吗?我还能做些什么来让我的 LAN 服务器更难被访问?你听说过有人已经用这种方法保护他们的 LAN 吗?是不是有什么事情让我搞不懂,导致这个想法很蠢?
答案1
好的,最小化 DMZ 和 LAN 之间的连接是一个很好的经验法则,尽管我不会成为这个想法的奴隶(如果您有现场电子邮件服务器,那么如果您强迫它遵守您的想法,您的电子邮件服务至少会很有趣)。
此外,不要认为这是一种神奇的黑客防御。如果有人入侵了 DMZ 中的服务器,那么他们仍然有可能渗透到您的网络,具体取决于 DMZ 中服务器的配置方式(例如,如果 Web 服务器已被 root,并且用于访问 SQL 服务器的凭据存储在 DMZ 服务器上,则在 LAN 端 SQL 数据库和 DMZ 端 Web 服务器之间建立 LAN 端开放连接对您没有多大帮助)。
另外,如果信息您正在使用/存储的信息本身就很有价值,但它仍然可能被那些在 DMZ 中植根服务器的人窃取,再说一次,您提出的建议不会有太大帮助。
答案2
与所有安全相关的问题一样,答案是“视情况而定”。这取决于您的公司类型、您运营的服务类型、您面向互联网的服务的强化程度、您保管的数据、您必须遵守的法律法规等。
简短的回答 - 通过限制 DMZ 和受信任网络之间的地址/端口来最小化“攻击面”。如果可能,部署使用反向代理类型安排的技术,这样就不可能从 DMZ->Trust 发起对话。当然,这并不总是可能的。考虑有一个包含“仅限互联网”数据库的中间防火墙区域。最后,确保您也限制了 Trust->DMZ 的端口/地址。许多恶意软件使用反向代理样式的连接(但方向相反),也就是说,它们依靠入站连接闯入源网络。
这类问题的问题在于,几乎每个人都会给出不同的答案,而选择最适合自己的答案才是你的工作。额外的安全措施不可避免地会使日常操作变得更加棘手,而过于复杂的安全配置往往会因配置错误而出现问题,留下难以察觉的漏洞。
安全的关键在于层层防御,无论人们怎么说,没有一种解决方案是 100% 安全的。无论您决定做什么,都请考虑在上线前进行渗透测试,并确保 DMZ 服务已打上补丁。最后,至少每年检查一次您的配置。
答案3
好吧,您已经几乎列出了此设置的一个问题,它仅支持 TCP。不仅如此,还可以从 DMZ 内部相对轻松地伪造会话。对我来说,理想的解决方案听起来就像将受信任的 LAN 视为普通用户,将他们送出您的网络并再次送回。