标签:network 防火墙 网络攻击 服务器 policy
Nat:Network Address Tranlation(网络地址转换),既可以应用在服务器端,也可以应用到客户端。在客户端时为了隐藏客户端的IP,防止客户端受到网络攻击。在服务端是为了保护服务器端主机在因特网上的安全。
1.为什么要使用NAT技术?
因为目前宽带网络(ADSL)最多只能提供给用户的IP为16个,最少为1个,而一般企业内会有很多主机,会出现IP不够用的状态。在这种情况下,使用NAT技术可以是成千上万个主机 同时通过一个公网IP连接上因特网。
2.SNAT,DNAT和数据包走向。
SNAT:源地址转换
DNAT:目的地址转换。
数据包走向:PREROUTING——》路由表——》POSTROUTING
3.NAT机制的三条链
NAT机制共有三个链,PREROUTING,OUTPUT,POSTROUTING。
[root@vm1 ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.0.0/24 anywhere to:192.168.5.178
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
PREROUTING:位于NAT机制的最前面,主要是修改数据包的Destination IP,主要执行DNAT任务。
POSTROUTING:位于NAT机制的最末端,主要是修改数据包的Source IP,只要执行SNAT任务。
OUTPUT:当本机进程需要将数据包发出本机时,先要经过OUTPUT链匹配,如果匹配成功允许发出,才会将数据包交给POSTROUTING链进行SNAT。
数据经过NAT机制的流程:当出具报传入后先经过PREROUTING链进行DNAT操作,然后将数据包传给路由表,路由表对数据包进行拆解分析,如果该数据包是传给本机的,路由表对数据拆解分析后确定匹配成功,则传给本机进程进行处理,如果路由表对数据包惊醒拆解分析后确定不是传给本机的,则直接将其传给POSTROUTING链进行SNAT操作,再传出。当本机需要将某个数据包传出时,本机进程先将数据包传给路由表,路由表拆解分析后传给OUTPUT链进行匹配,若匹配成功,则传给POSTROUTING链做SNAT操作后传出,若匹配不成功,则将数据包丢弃。
4.NAT分类
(1).一对多NAT
目的:a.节省公网IP的使用量,企业只需要一个公网IP就足够了,企业内部使用私有IP,通过NAT机制将私有IP转换为公网IP连接因特网。
b.隐藏企业内部主机的IP,NAT机制会将私有IP转换成公网IP连接因特网,企业内网躲避在NAT之后,因特网使用者无法得知企业内网的IP,即便黑客知道了,因为NAT机制,也增加了黑客攻击企业内网的难度。\
构建一对多NAT的网络环境
准备环境:在NAT主机上设置两块网卡eth0和eth1。
公网IP(eth0):10.0.1.200
私有IP(eth1):192.168.0.0/24
私有IP主机默认网关:192.168.0.254
说明:当企业内部主机发送数据包到因特网时,即192.168.0.0/24网段上的主机要访问因特网上的主机,其请求数据包内的Source IP必然时私有IP,要让这样的数据包能够发送到因特网上,必然要通过NAT主机上的SNAT机制,将外送的数据包的Source IP改为NAT主机上的公网IP,如此才能让私有网络的数据包发送到因特网上。
NAT主机上SNAT的语法规则:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to 10.0.1.200
语法解析:
-t nat:选择表,选择要使用的功能时netfilter的nat机制
-A POSTROUTING:选择功能,指定要执行的操作为SNAT机制。
-o eth0:表明数据包的流向,意为执行了SNAT机制后数据包从eth0接口传入公网。
-s 192.168.0.0/24:指定源IP,意为只用来自192.168.0.0/24网段的数据包才符合规则
-j SNAT --to 10.0.1.200:如果数据包符合以上规则,就将数据包的Source IP改为10.0.1.200。
注:当设置了数据包出去的规则之后,就不需要考虑数据包返回的方向,因为系统会自动设置好相对应方向的应答数据包的规则。所以只需要指定单方面的规则即可。
设置SNAT或者DNAT机制时需要注意的问题:
a.接口名称:接口名称可以通过“ifconfig”命令查看,接口名称一定要与网卡相对应。
b.公网IP是动态的:可以做如下设置“iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASOUERADE”。
(2)多对多NAT
多对多NAT主要是针对一对多NAT的缺陷而改进的,当一个庞大的企业内网频繁对因特网进行访问,而所有的访问请求都转到某一台因特网服务器上,会造成一个因特网主机频繁对因特网进行访问,尤其是网络游戏主机,无法同时接受相同一个IP对其多次连接。而对多网NAT是将所个私有IP改变为多个公网IP,可以降低相同公网IP连接上同一台因特网主机的概率。
语法规则:iptables -t nat -A POSTROUTING -o eth0 -s192.168.0.0/24 -j SNAT --to IP1,IP2....
(3)一对一NAT
一对一NAT机制中,NAT主机至少需要三块网卡,接口分别为eth0,eth1,eth2,eth0连接公网,eth1连接服务器主机网络,eth2连接企业内网。还需要准备足够的公网IP,分别用于服务器地址转换后使用。
标签:network 防火墙 网络攻击 服务器 policy
原文地址:http://jiekeyang.blog.51cto.com/11144634/1833637