Linux环境下iptables代理及NAT转发

1. 实验环境

Linux rhel6.5作为WEB-内网(client),IP地址:192.168.10.10 ,——VMnet8 ;

Linux rhel6.5作为GATEWAY—网关, eth1的IP地址:192.168.10.1——VMnet8;eth2的IP地址:202.100.10.1——VMnet1;

Linux rhel6.5作为WEB-外网(client),IP地址:202.100.10.10 ,——VMnet1 ;

2. 实验步骤

前期配置

(1)配置WEB-内网(client)端

1.1> 网卡配置——VMnet8模式;

Linux环境下iptables代理及NAT转发_第1张图片

1.2> IP信息配置并重启网络服务;

Linux环境下iptables代理及NAT转发_第2张图片

1.3> 查看配置信息;

Linux环境下iptables代理及NAT转发_第3张图片

1.4> 清空防火墙规则和禁用seLinux服务;

1.5> 网页信息配置;

Linux环境下iptables代理及NAT转发_第4张图片

1.6> 使用浏览器测试网页信息能否成功显示;

Linux环境下iptables代理及NAT转发_第5张图片

(2)配置GATEWAY-网关端

2.1> 网卡配置  eth1——VMnet8模式,eth2——VMnet1模式;

Linux环境下iptables代理及NAT转发_第6张图片

2.2> IP信息配置并重新启动网络服务;

Linux环境下iptables代理及NAT转发_第7张图片

Linux环境下iptables代理及NAT转发_第8张图片

2.3> 查看配置信息并清除防火墙规则和禁用seLinux服务;

Linux环境下iptables代理及NAT转发_第9张图片

(3)配置WEB-外网(client)端

3.1> 网卡配置——VMnet1模式;

Linux环境下iptables代理及NAT转发_第10张图片

3.2> IP信息配置并重新启动网络服务;

Linux环境下iptables代理及NAT转发_第11张图片

3.3> 查看配置信息并清除防火墙规则和禁用seLinux服务;

Linux环境下iptables代理及NAT转发_第12张图片

3.4> 配置网页信息;

Linux环境下iptables代理及NAT转发_第13张图片

3.5> 使用浏览器测试网页信息能否成功显示;

Linux环境下iptables代理及NAT转发_第14张图片

4. 连通性测试

4.1> 使用WEB-内网(client)ping网关和WEB-外网(client);

Linux环境下iptables代理及NAT转发_第15张图片

4.2> 使用WEB-外网(client)ping网关和WEB-内网(client);

Linux环境下iptables代理及NAT转发_第16张图片

(注:因为网关没有开启路由转发功能,所以WEB-内网(client)ping不通WEB-外网(client))

4.3> 开启路由转发功能;

Linux环境下iptables代理及NAT转发_第17张图片

Linux环境下iptables代理及NAT转发_第18张图片

4.4> 使用WEB-内网(client)可以ping 通WEB-外网(client);

Linux环境下iptables代理及NAT转发_第19张图片

4.5> 使用WEB-外网(client)可以ping 通WEB-内网(client);

Linux环境下iptables代理及NAT转发_第20张图片

NAT策略应用

(1)SNAT策略应用

1.1> 在WEB-内网(client)访问WEB-外网(client),并在WEB-外网(client)端查看httpd访问日志;

cat /var/log/httpd/access_log

Linux环境下iptables代理及NAT转发_第21张图片

Linux环境下iptables代理及NAT转发_第22张图片

 此时,访问WEB-外网(client)端的IP地址为WEB-内网(client)端的私有IP地址

1.2> 在GATEWAY端添加使用SNAT策略的防火墙规则;

[root@localhost 桌面]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth2 -j SNAT --to-source 202.100.10.1

1.3> 使用WEB-内网(client)访问WEB-外网(client),并在WEB-外网(client)端查看httpd访问日志;

Linux环境下iptables代理及NAT转发_第23张图片Linux环境下iptables代理及NAT转发_第24张图片

 此时,访问WEB-外网(client)端的IP地址已经变成网关端eth2外网接口的IP地址

(2)MASQUERADE(地址伪装)策略应用

2.1> 在GATEWAY网关端添加使用MASQUERADE策略的防火墙规则

[root@localhost 桌面]# iptables -t nat -F

[root@localhost 桌面]#  iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth2 -j MASQUERADE

2.2> 在WEB-内网(client)访问WEB-外网(client),并在WEB-外网(client)端查看httpd访问日志;

Linux环境下iptables代理及NAT转发_第25张图片

Linux环境下iptables代理及NAT转发_第26张图片

 此时,访问WEB-外网(client)端的IP地址被伪装成GATEWAY网关端eth2外网接口的IP地址

(3)DNAT策略应用

3.1> 在GATEWAY网关端添加使用DNAT策略的防火墙规则;

[root@localhost 桌面]# iptables -t nat -A PREROUTING -i eth2 -d 202.100.10.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.10

3.2> 在WEB-外网(client)访问网关的eth2外网接口,可以成功访问;

Linux环境下iptables代理及NAT转发_第27张图片

 此时WEB-外网(client)访问到了WEB-内网(client)

代理服务

代理服务分为正向代理和反向代理。正向代理是内网访问外网,分为传统代理(默认)和透明代理。

传统代理需在客户端上设置浏览器;透明代理不需要设置浏览器,但需要在网关上写一条iptables 策略。

反向代理是外网访问内网。

(1)配置代理服务器

1.1> 在GATEWAY网关端(代理服务器)安装squid服务;

Linux环境下iptables代理及NAT转发_第28张图片

1.2> 修改squid配置文件;

[root@localhost 桌面]# vim /etc/squid/squid.conf

[root@localhost 桌面]# service squid start

Linux环境下iptables代理及NAT转发_第29张图片

(2)正向传统代理服务

2.1> 在WEB-内网(client)端设置代理服务(浏览器中);

“火狐浏览器”-->“编辑”-->“首选项”-->“高级”-->“网络”-->“连接”设置

Linux环境下iptables代理及NAT转发_第30张图片

2.2> 在WEB-内网(client)访问WEB-外网(client)端,并在WEB-外网(client)端查看httpd访问日志;

Linux环境下iptables代理及NAT转发_第31张图片

Linux环境下iptables代理及NAT转发_第32张图片

 此数据包经由GATEWAY网关外网接口发出,则此时的IP地址为网关eth2接口处的IP地址

2.3> 关闭squid服务,再次访问;

2.4> 此时,代理服务器已关闭,无法访问;

Linux环境下iptables代理及NAT转发_第33张图片

(3)正向透明代理服务

3.1> 在GATEWAY网关端中设置透明代理;

vim  /etc/squid/squid.conf

Linux环境下iptables代理及NAT转发_第34张图片

Linux环境下iptables代理及NAT转发_第35张图片

3.2> 在GATEWAY网关端设置防火墙规则;

[root@localhost 桌面]# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128

3.3> 在WEB-内网端,设置浏览器为“无代理”,然后访问WEB-外网(client);

Linux环境下iptables代理及NAT转发_第36张图片

3.4> 关闭squid服务,此时WEB-内网无法访问WEB-外网;

Linux环境下iptables代理及NAT转发_第37张图片

Linux环境下iptables代理及NAT转发_第38张图片

注:内网与外网之间的通信是由服务代理进行的,如果squid服务关闭,外网的数据包就无法传送给内网

 

你可能感兴趣的:(Linux)