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

新手上路的小司机


    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视界


下面某些大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老菜鸟


上网的每一个设备都需要一个IP地址,确切的说是一个公网的IP地址,因为私网IP地址比如说192.168开头的地址不会被互联网的路由设备所路由。而我们目前使用的公网IPV4地址在几年前已经全部分配完毕,不会再有新的公网IPv4地址。


而要想使一个设备上网,那么就需要一个公网的IP地址,怎么解决呢?这就有了NAT网络地址转换,实际上我们大部分家庭中使用的是NAT中的一种叫做简单IP,流程大体是这样的,一个除以家庭丝网内部的设备需要访问头条,他会把请求数据包发给网关(根据协议或者手动指定),网关在把该数据包发往互联网的之前,使用自己获得的公网IP地址来替换该设备的丝网IP地址,当然还有端口号,并记录下该映射关系,然后发送出去,当数据包回来以后,根据该映射关系,把地址替换成相应的私网IP,然后发送给该设备!


在上述的过程中可以看出,网关需要把私网IP转换公网IP包括端口号,这个端口号对于外部来说是一个随机的,数据包在出去之前转换好,并且做一个映射记录关系状态,这样数据包回来以后才能正确转发,如果从互联网上访问内部设备,即便是数据能到达网关,但是由于网关并没有相应的映射记录,网关也会丢弃该数据包。这样互联网上的电脑就无法连接或者攻击处于内部的主机。只能由内部的主机主动先连接外部主机。


风来了156


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

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

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

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

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

第二,nat是做什么目的?

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

什么是公网IP?

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

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

什么是私网IP?

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

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

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

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

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

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

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


网络工程师成长日记


攻击前做到引诱也能实现,NAT下只能内网主机主动访问外网主机,反过来是不行的,外网主机是公开的,但外网主机无法知道内网主机的信息,就无法实现主动攻击,如果通过其它途径让内网主机感染木马,让木马主动连接外网主机,就具备攻击的条件了。


梦虚竹林


NAT用于缓解IPv4地址短缺的问题。隐藏了内部网络结构。但它并不是一种攻击防御手段,依然可以通过反弹连接等方式穿越NAT,攻击内部网络


分享到:


相關文章: