为什么NAT可以防止外部主机攻击内部主机与服务器,是因为它不可以逆向解析吗?

运维网络工程师


下面某些大V不懂能不能不要瞎答呢,每次百度一下答案不是误导群众吗?你连楼主的意思都没理解清楚,而且连NAT的基本的五元组都答错了,误导什么呢?我来回答一下楼主的问题。首先,楼主说的没错,NAT防止外部主机攻击内部主机的最基本原理,就是NAT的不可逆的特性。


首先,我们理解一下什么是NAT,NAT就是访问网络服务时,源IP地址和源端口的转换过程。因此NAT是对IP地址和TCP/UDP端口的转换

我们访问网络上的服务时,标识我们的网络流量一般有5个关键要素,既:源IP、源端口、协议、目的IP、目的端口,这些我们称之为五元组。也就是我们通过网页访问某个网站时,我们实际流量是这样的

源IP就是我们PC机或者手机获取的IP,目的IP就是网页IP,TCP就是使用的网络协议(你可以理解为一种网络技术)、源端口,就是我们PC机使用的TCP端口,目的端口就是网页使用的端口。也就是我们通过网页的IP+TCP+网页的端口,就可以标识我们的访问目标了。


例如,访问流量中目的IP是今日头条的IP地址,再加上TCP协议和80端口,就标志着我们正在访问今日头条的网页服务


这里就有一个问题,也就是源IP(就是我们PC、手机获取的IP)如果要能访问今日头条,就必须通过运营商的互联网访问,而且互联网网络就必须认识我们的源IP地址和目的IP地址,不认识的话,运营商的网络就认为这个流量是非法的,这就好比如果要拨打电话,我们主叫号码和被叫号码必须是运营商移动网络认识的,不认识就打不通


但是有一种情况需要解决,就是我们PC机或者手机使用私网地址访问网络服务。私网地址就是我们网络不认识的地址,按照上面的原则,私网地址发出的网络流量在网络会被丢弃的。但是这时候我们只有一个公网地址,但是却让更多的人使用网络服务,怎么办呢?那就是做NAT,NAT会把多个私网的源IP和源端口,与公网的源IP和多和源端口做一个映射,那么私网的用户就可以访问网络服务了


所谓映射就是直接在访问网络服务流量时,把私网IP和端口替换成公网IP和端口,所有NAT设备都有一个替换过程


例如我们家有3个电脑和2个手机要访问新浪,我们获得的公网地址是111.100.2.112,百度的网页服务地址和端口分别是180.97.33.107,我们的家庭NAT上实际保存了下表中的信息


这些信息叫NAT Session,也就是NAT会话表,我们访问网络时,NAT设备里有一堆这种会话表,这是NAT转换的基本原理,也是NAT更加安全的保证


由于网络流量的私网IP和端口在NAT设备已经替换成公网IP和端口,那么在运营商网络只存在NAT转换后的流量,因此所有的网络用户只能看到用户转换后的公网IP,也就是用户的私网IP是隐藏起来的,这是第一个安全的措施


但是这不意味着我们内部的私网服务器就是安全的。NAT设备做了2个事情来保证我们的私网设备安排


特性1:用户的流量必须和NAT Session中的信息对应,才可能让流量通过。举个例子,下面是一个Session,如果NAT做了严格五元组检查,NAT设备中只有匹配Session表的正反两条流量可以通过。如下图,分别是192.168.0.100(1234)访问180.97.33.107(80)的TCP流量和180.97.33.107(80)访问192.168.0.100(1234)TCP流量可以,其他流量都要丢弃。

NAT设备会检查网络流量和NAT Sesion的对应信息,不存在NAT session对应的流量全部丢弃。也就是非法攻击流量如果匹配不上NAT Session,就会被丢弃


特性2:NAT的不可逆特性。什么叫NAT不可逆?这个又和NAT Session有关。我们刚才说了,必须匹配NAT Session的正反两条流量才能通过NAT设备。那么NAT Session是怎么建立的?NAT Session必须由私网用户建立。也就是第一个私网用户访问公网的数据才能建立起Session,例如TCP就是由私网访问公网的第一个TCP SYN包触发建立NAT Session。

因此不可逆特性就保证了,一般无法从公网(互联网)主动访问私网,因为公网主动访问私网,无法触发NAT Session的建立,没有NAT Session的流量都会丢弃。这也就保证了从公网来的攻击流量无法到达私网PC机,私网PC机会更安全


这就是做了NAT的设备更加安全的原因,当然这种安全也是相对的。比如NAT设备的对应规则可能会宽松一点等等,这样会给部分攻击者可乘之机。但是不可逆和NAT Session规则的匹配特性,的确可以让我们的主机更安全一些


IT老菜鸟


    NAT隐藏了内网结构,在保证路由器安全的情况下,外网只能“看到”路由器的对外地址,因此一定程度上可以防止外部攻击内部主机和服务器。


    什么是NAT?

    NAT地址转换,广泛应用在家庭网络中。光猫PPPOE拨号之后获取一个外网地址,家庭内网终端通过端口复用的方式,共享一个外网地址访问互联网。

    NAT地址转换的核心是一张映射表,(源ip,源port,映射ip,映射port),简单的说就是,家庭内网的不同终端的ip地址映射到一个公网地址的不同端口,如下图所示的例子。


    NAT保护内网

    NAT实现地址转换的同时,隐藏了内网结构,外网只能看到光猫PPPOE拨号获取的外网IP地址,内网是不可见的。

    这里假设光猫拨号后获取的IP地址是100.65.100.100。内网的一台终端192.168.1.100访问外网,经过光猫时,映射到100.65.100.100:1234,那么外网看到的是100.65.100.100:1234,而不是192.168.1.100。

    NAT对内网的保护,仅限于路由器安全的情况,如果路由器被“攻破”,那么家庭内网就没有安全可言了。


    总之,NAT通过端口映射的方式,多个内网终端共享一个公网IP地址的方式访问互联网。内网对于外网是不可见的,一定程度上保护了内网安全。

如果觉得对你有帮助,可以多多点赞哦,也可以随手点个关注哦,谢谢。

Geek视界


正确的答案是因为nat破坏了端到端的连接。

第一,这句话是什么意思呢?

因为ipv4地址不够用,所以使用了nat技术。

nat技术有一个局限,就是破坏了端到端的通讯。

意思就是你在互联网上不能访问,你在路由器后面的那个设备。

第二,nat是做什么目的?

因为在互联网上通讯,大家必须用公网IP。

什么是公网IP?

你可以这样理解,比如说我在我家的小名叫做狗剩,

但是如果我要出门上街,我就不能叫狗剩,我就必须得有一个身份证和自己的名字,这个身份证的地址必须是唯一的,这就好比公网IP地址一样。

什么是私网IP?

但是狗剩这个名字是我的私网IP地址。

用nat的目的就是把私网IP和公网IP做转换。

那我出门从狗剩变成了一个有身份证的人,这个过程就是nat转换。

第三,为什么nat破坏了端到端的通信?

因为你在互联网上无法和对方的私网ip地址直接通讯。

也就是说如果我的小名叫狗剩,那么社会上估计有10万个人小名都叫狗剩,那么如果你要跟狗剩通讯的话,你就没办法沟通了,因为你并不知道哪个人是你想通讯的狗剩。

技术上讲,我家里的电脑是192.168.1.100 ,你从互联网是没有办法访问我的这个地址。因为我这个地址是私有地址,这个地址全世界的家庭内网或是办公室内网都有可能用这个地址,所以你要访问这个地址,互联网的路由器就煞笔了,不知道怎么去


网络工程师成长日记


在互联网上的每一台独立的主机都至少需要一个东西才能被访问那就是IP地址!

由于IP地址的短缺,人们发展除了NAT技术来缓解这种情况!否则现在很多人都不能上网!NAT的是网络地址转换的意思!

他的作用就是把路由器后面连接的上网终端的私有IP地址,转换为路由器在PPPOE拨号连接后在运营商获取的一个公网地址!路由器中维护着一张这样的转换表,每一台主机转换到获得地址的不同端口上,这样就可以用一个地址供路由器下面所有的主机上网!



但是NAT是单向的,也就是说可以从局域网主动访问互联网,但是不能从互联网主动访问局域网!这样如果互联网上的电脑需要访问路由器后面的某一台电脑,就会由于NAT的存在而不能访问!在一定程度上保护了局域网中的电脑!


分享到:


相關文章: