一般来说网络服务需要部署在具有外网IP的机器上,否则只能同网络的机器访问,内网穿透的目的是为了实现内网机器上部署的服务也能同公网机器部署的服务一样所有联网的机器都能访问它。
出于安全或者信息隐藏,比如通过反向代理内网的http 服务 低成本部署网络服务 学习研究
我们只有对PC1/2/3的控制权,部署在PC1上的服务只能同网络的 PC2,PC3 访问,外部用户A因为不知道地址无法访问,也不能穿过层层的NAT 防火墙,内网穿透的目的就是让外网用户A 可以访问到部署在内网PC1上的服务。
通过反向代理转发数据包 使用公网机器中转数据包 直连穿透,在用户和内网两个nat 防火墙之间直接对发数据包
反向代理内网穿透
1. 在内网网络的某台机器上部署 “内网端” 服务,也可以直接在内网服务的机器上部署,比如PC1上
2. 在有公网的机器上部署 “服务端”
3. 内网端主动请求服务端,并使用心跳保持流量通道
4. 服务端收到外部用户请求时,使用内网端和服务端的流量通道,将请求转发到内网机器,同样内网端的响应也使用通道转发到外部用户
优点:可穿透任何 nat 服务器
缺点:所有流量需要经过外网服务器中转
NAT 直连穿透
Nat防火墙 - UDP 地址转换概况
锥型 nat 防火墙
锥形防火墙同一个内网地址,只会有一个出口地址与其对应, 即对于 ip1,port1, 不论它访问 ipA,portA 还是其他的 ipA/portB, ipC/portC, ipC/portC 都会使用同一个地址 ip2/port2,此类 nat 防火墙有三种包过滤策略:
ip2/port2 建立映射后可以接受任何地址向它发送的数据包,并转发到内网地址 ip1/port1。
ip2/port2 只接受它曾经发出过包的目标ip地址的来包,比如nat 曾经向 ipA/portA, ipC/portC 发出过包则任何来自 ipA,ipC 的数据包都会接收,但它没有发送过的比如 ipD 的数据包会被丢弃。
ip2/port2 只接受它曾经发出过目标ip/port的来包,比如nat 曾经向ipA/portA 发送过包,则来自 ipA/portA的数据包都可以接收,其它地址,比如ipA/portB, ipC,portA 的数据包都会被丢弃。
说明:锥形防火墙在穿透前需要被穿透方先发送数据包,这种防火墙是最容易穿透的,因为地址不变,我们只需使用同一内网地址先发送数据包到穿透服务器,穿透服务器将nat 双方的出口地址告诉对方,双方互发数据包即可,真正难以穿透的nat 是接下来要讲的 “对称型 nat 防火墙”。
内网端地址映射:
ip1/port1 -> ip2/port_x-> ipo_2/port_A
外网端地址映射:
ip_o1/port_o1->ip_o2/port_o2 ->ip2/port_n
当且仅当有个地址对满足:
port_x 等于 port_n 并且 port_o2 等于 port_A 时穿透才能成功
本文系本站原创,转载请注明出处:http://console.xrkmonitor.com/a/investigation_inner_acl.html
发表评论 取消回复