网络地址转换 (NAT) 似乎充当了其后方主机的防火墙,因为它们不可用。虽然我永远不会依赖它作为我的防火墙,但它作为防火墙的缺陷是什么?
我问这个问题是出于所谓的“学术”原因。我知道 NAT 不会保护人们不进入防火墙设备本身,而且更多的安全层更好。我更感兴趣的是,如果 NAT 用于此目的,NAT 本身可能会如何被利用。
更新,例如:
一个公网 IP:10.10.10.10
一个 LAN:192.168.1.1/24
如果来自局域网的所有传出流量都经过 NAT 到 10.10.10.10,并且唯一的其他 NAT 映射是 10.10.10.10 端口 80 映射到 192.168.1.100。那么如何访问 192.168.1.50 上的端口 22?
答案1
使用 NAT,内部网络中的 IP 地址无法从外部网络路由;与防火墙的比较并不完全正确,因为防火墙会过滤网络流量,而通常情况下,应该能够流过它;NAT 会重塑通常不应该能够以这种方式流动,允许它按照某些特定规则流动。
防火墙守护着一扇本来会打开的门。而
NAT 则会打开一扇本来没有门的门。
使用防火墙可以允许所有来自外部网络的流量到受保护的内部网络;使用 NAT,你不能,即使你希望。
它们是两个完全不同的东西,即使它们经常被混淆;就安全性而言,NAT 后面的私有 IP 网络实际上是更多的比防火墙后面的公共 IP 网络更安全。
更新以回应您的示例
这正是我所说的;就你的情况而言,192.168.1.50 无法从外部寻址,因此绝对决不它可以被访问,除非你明确地将某个外部 IP/端口转发给它。
答案2
默认情况下,简单 NAT 会丢弃或拒绝任何到非映射端口的传入连接。这本身就是防火墙的首要功能。所以是的,NAT 可以作为有限的防火墙。
但有两个重要的限制:
默认情况下,NAT 不会阻止任何传出连接,因此您很容易受到以某种方式进入的任何感染。最简单的例子是恶意网页或电子邮件附件。在许多情况下,这些恶意软件在第一次加载时包含的代码非常有限,需要来自外部的一些“帮助”。如果您的防火墙具有严格的限制,它可能会阻止该步骤,从而阻止或减缓损害。
- NAT 的主要功能是促进连接,而不是阻止连接。因此,通常需要提供某种方法来规避 NAT 对传入连接的固有限制。UPnP、STUN、Teredo、SOCKS 等都使网络中的机器能够请求传入连接。无法实现这些功能的 NAT 被视为过度且不必要的限制;因此“理想”的情况是 NAT 允许轻松“打洞”,并且适当的防火墙允许管理员应用策略。
答案3
有不同的场景:
- 你不必通过端口转发公开任何服务,因此你的 NAT 在新状态下的连接完全是单向的
- 你必须在 NAT 设备上执行端口转发,以便公开一个或多个公共服务
- 您盲目地认为 NAT 后面的每台 PC 和用户都不会受到许多间接攻击:
- 社会工程学
- 病毒/木马
- 恶意
- “用户”为了从内部挖掘安全性可以做任何事情
如果你使用 NAT 而没有真正的 FW,那么后果是:
- 第 1 点和第 3 点一样安全
- 如果你公开服务,我可以使用它们来访问 LAN(当然)
- 我可以邮寄木马、恶意软件或任何你想要的能够打开反向shell,或者更一般地充当反向连接。
在所有这些情况下,如果您身处真正的 FW 后面,您将能够获得更好的保护。
出于同样的原因,我也过滤了 FW/服务器上的传出流量。为了尽可能地限制打开反向连接的可能性。
问:如何访问 192.168.1.50 上的 22 端口?
答:找到一种方法(见上文)在局域网内的 PC 或服务器上安装反向连接程序,这样就可以轻而易举地访问局域网内的所有内容,因为你是里面。只是一个ssh -L 可以完成这项工作
答案4
您必须破解连接才能突破内部网络,但这是可以做到的。我首先想到的是中间人攻击……这就是真正的防火墙比 NAT 盒更好的地方。防火墙可以内置智能(IPS 入侵防御)来监视常见漏洞。
顺便说一句,真正的 NAT 盒只是使用 NAT 查找表将内部客户端的 IP 地址更改为外部地址。大多数人认为 NAT 盒实际上是PAT(端口地址转换)。一个外部 IP 和多个内部 IP 地址。在这种情况下,IP 地址和原始源端口都会被转换。
综上所述,真正的 NAT 盒很容易破解。PAT 盒比较难破解,但还是可以通过相当基本的攻击攻破。