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模式;
1.2> IP信息配置并重启网络服务;
1.3> 查看配置信息;
1.4> 清空防火墙规则和禁用seLinux服务;
1.5> 网页信息配置;
1.6> 使用浏览器测试网页信息能否成功显示;
(2)配置GATEWAY-网关端
2.1> 网卡配置 eth1——VMnet8模式,eth2——VMnet1模式;
2.2> IP信息配置并重新启动网络服务;
2.3> 查看配置信息并清除防火墙规则和禁用seLinux服务;
(3)配置WEB-外网(client)端
3.1> 网卡配置——VMnet1模式;
3.2> IP信息配置并重新启动网络服务;
3.3> 查看配置信息并清除防火墙规则和禁用seLinux服务;
3.4> 配置网页信息;
3.5> 使用浏览器测试网页信息能否成功显示;
4. 连通性测试
4.1> 使用WEB-内网(client)ping网关和WEB-外网(client);
4.2> 使用WEB-外网(client)ping网关和WEB-内网(client);
(注:因为网关没有开启路由转发功能,所以WEB-内网(client)ping不通WEB-外网(client))
4.3> 开启路由转发功能;
4.4> 使用WEB-内网(client)可以ping 通WEB-外网(client);
4.5> 使用WEB-外网(client)可以ping 通WEB-内网(client);
NAT策略应用
(1)SNAT策略应用
1.1> 在WEB-内网(client)访问WEB-外网(client),并在WEB-外网(client)端查看httpd访问日志;
cat /var/log/httpd/access_log
此时,访问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访问日志;
此时,访问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访问日志;
此时,访问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外网接口,可以成功访问;
此时WEB-外网(client)访问到了WEB-内网(client)
代理服务
代理服务分为正向代理和反向代理。正向代理是内网访问外网,分为传统代理(默认)和透明代理。
传统代理需在客户端上设置浏览器;透明代理不需要设置浏览器,但需要在网关上写一条iptables 策略。
反向代理是外网访问内网。
(1)配置代理服务器
1.1> 在GATEWAY网关端(代理服务器)安装squid服务;
1.2> 修改squid配置文件;
[root@localhost 桌面]# vim /etc/squid/squid.conf
[root@localhost 桌面]# service squid start
(2)正向传统代理服务
2.1> 在WEB-内网(client)端设置代理服务(浏览器中);
“火狐浏览器”-->“编辑”-->“首选项”-->“高级”-->“网络”-->“连接”设置
2.2> 在WEB-内网(client)访问WEB-外网(client)端,并在WEB-外网(client)端查看httpd访问日志;
此数据包经由GATEWAY网关外网接口发出,则此时的IP地址为网关eth2接口处的IP地址
2.3> 关闭squid服务,再次访问;
2.4> 此时,代理服务器已关闭,无法访问;
(3)正向透明代理服务
3.1> 在GATEWAY网关端中设置透明代理;
vim /etc/squid/squid.conf
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);
3.4> 关闭squid服务,此时WEB-内网无法访问WEB-外网;
注:内网与外网之间的通信是由服务代理进行的,如果squid服务关闭,外网的数据包就无法传送给内网