一、路由转发
1、实验环境配置图:
winxp配置默认路由网关cmd命令(或者ipv4配置默认网关)
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 192.168.150.131
kali配置默认网关
route del -net 0.0.0.0
route add default gw 192.168.0.144
centos6.9开启路由转发
永久开启
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
临时开启
echo 1 > /proc/sys/net/ipv4/ip_forward
2、几个要点
(1) 报文在传输过程中,不论源ip报头还是目标ip报头始终都不发生改变。报文经过centos6.9路由转发过程,报文只是mac地址发生了改变。
(2) 由于ip地址是主机的,不论centos6.9是否开启路由转发,winxp:192.168.150.128可以ping通centos6.9:192.168.0.144,kali:192.168.0.193可以ping通centos6.9:192.168.150.131。
(3) 要实现路由转发,需在winxp和kali上设置默认网关,且为相对应的centos6.9上的ip。centos6.9不一定要两块网卡,一块网卡设置两个ip也可以实现。
二、SNAT源地址转换
1、为什么会有SNAT技术?
内网用户上网时,报文源IP为私网IP,目的IP为公网IP,当请求报文出防火墙后,通过路由转发能够到达目的IP地址,但响应报文目的IP是私网IP,服务器不知道该回给谁。
2、解决方案,SNAT源地址转换
1过程ip报文
源IP | 目的IP |
---|---|
192.168.0.4 | 47.65.12.33 |
2过程报文
源IP | 目的IP |
---|---|
180.97.20.66 | 47.65.12.33 |
3过程报文
源IP | 目的IP |
---|---|
47.65.12.33 | 180.97.20.66 |
4过程报文
源IP | 目的IP |
---|---|
47.65.12.33 | 192.168.0.4 |
2、实验环境配置
centos6.9配置iptables
iptables -t nat -A POSTROUTING -s 192.168.150.0/24 -j SNAT --to-source 192.168.0.144
winxp----ping---->kali
centos6.9在eth1网卡抓包
kali在eth0抓包
得出结论,SNAT实际是iptables在nat表的POSTROUTING链上做了规则进行了地址转换。其中,请求报文在出防火墙前,将报文的源IP包头转换为出口的公网IP地址,而响应报文在进防火墙后,根据防火墙内的NAT表将目的IP转换为内网IP。
三、DNAT目的地址转换
1、解决问题情境
2、实验配置
kali开启apache2监听8080端口
centos6.9中iptables配置
iptables -t nat -A PREROUTING -d 192.168.150.131 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.193:8080
在winxp上访问192.168.150.131的80端口,访问成功。
3、得出结论
DNAT实际是针对非军事区内网服务器的防火墙配置策略。它不但可以对目的地址进行转换,同时也可以进行端口映射。对nat的限制策略,可以在filter表的FORWARD链上添加规则进行限制。