【4】iptables理解 - nat表

iptables指南:http://man.chinaunix.net/network/iptables-tutorial-cn-1.1.19.html


nat表:转换包的源或目标地址,此表有三条链,分别是: PREROUTING(路由前)、POSTROUTING(路由后)、OUTPUT


iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination       
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination       
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination



PREROUTING链:主要做DNAT


POSTROUTING链:主要做SNAT (包括MASQUERADE [伪装])

OUTPUT链:从防火墙本身发出的包进行DNAT操作


注意:只有流的第一个包会被这个表的链匹配,其后的包会自动被做相同的处理。



DNAT:目的地址转换,用于发布内网服务器到公网。

SNAT:源地址转换,用于多个私有IP,共用一个公网IP上网。

MASQUERADE:与snat一样,多用于动态IP上网。


简单例子:

110.1.1.0/24 192.198.168.0/24 二个网段通过公网IP222.111.1.2访问www网站服务器(222.111.1.1

2)允许公网WWW主机访问LinuxB10.1.1.222端口



源地址转换

[root@fw /]# iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -j SNAT --to-source 222.111.1.2

[root@fw /]# iptables -t nat -A POSTROUTING -s 192.168.198.0/24 -j SNAT --to-source 222.111.1.2

目的地址转换

[root@fw /]# iptables -t nat -A PREROUTING -d 222.111.1.2 -p tcp --dport 22 -j DNAT --to-destination10.1.1.2:22




[root@fw /]# iptables -t nat -L -n

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination        

DNAT       tcp  --  0.0.0.0/0            222.111.1.2         tcp dpt:22 to:10.1.1.2:22


Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination        

SNAT       all  --  10.1.1.0/24          0.0.0.0/0           to:222.111.1.2

SNAT       all  --  192.168.198.0/24     0.0.0.0/0           to:222.111.1.2


Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination        




验证:

1.win7(192.168.198.1) 访问 222.111.1.1 的web服务

因为这台机是物理机,所以需要在cmd下设置:route add 222.111.1.1 192.168.198.250

route print

222.111.1.1  255.255.255.255  192.168.198.250    192.168.198.1     23


在www网站服务器抓包:tcpdump -i eth1 -vv


ping 222.111.1.1,从数据包看到,snat转换成功,是222.111.1.2与www服务通迅

wKioL1NgqoGAcx8YAAQxy9Qnk2E517.jpg

telnet 222.111.1.1 80


wKioL1Ngq2nBrtrSAAPL5tJAUMw781.jpg




2、在www使用ssh连接到内网主机10.1.1.2 的22端口

sslh 222.111.1.2这台机,其实是进入10.1.1.2这台主机


wKioL1NgssrRVjy4AAH0hVGwHis873.jpg





你可能感兴趣的:(iptables)