Linux网络安全技术与实现(第2版)第二章笔记(NAT结构与分类)
PREROUTING链作用
修改数据包的“Destination IP”即目的地IP(DNAT)
POSTROUTING链的作用
修改数据包的“来源端IP”(SNAT)
OUTPUT链作用
当对象就是本机进程产生并要外送的这些数据包
NAT分类:大概可分为:一对多NAT,多对多NAT,一对一NAT,以及NAPT(Network Address Port Translation)。以下是一对多NAT以及NAPT的讲解。
1.一对多NAT机制功能:节省公网IP的使用量和隐藏企业内部主机的IP地址。
首先在NAT主机上安装两块网上,并在eth0接口上设置10.0.1.200这个公网IP,此外,在eth1接口上设置192.168.0.254这个私有的IP,而企业内的主机都将是192.168.0.0/24网段上的主机,且其默认网关是192.168.0.254
分析:企业内主机必须通过NAT主机上的SNAT机制,将外送数据包内的Source IP 改为NAT主机上的公网IP.
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
标明数据包的流向
|
数据包流向
|
-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,但请注意,这个IP必须为NAT主机对外的公网IP
当公网IP不固定时,可在-j 后加MASQUERADE
|
2.NAPT
假设我们只有一个公网IP可以使用,将公网IP设置在eth0接口上,另外将对外服务的主机部署于192.168.0.0/24的网段上,分别利用192.168.0.1及192.168.0.2两个IP。
分析:Web服务器:Web服务器所需要使用到的端口只有TCP port 80 及TCP port443,因此,我们只需将访问10.0.1.200这个IP的TCP port 80及TCP port 443的数据包转发给192.168.0.1即可。
规则:iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.1:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to 192.168.0.1:443
转载于:https://blog.51cto.com/linchao52/1220506