linux 搭建squid代理服务器
实验环境:
一台linux搭建Web服务器,充当内网web服务器(同时充当内网客户端) 202.100.10.100
一台linux系统充当网关服务器,两个网卡,开启路由转发 192.168.133.131和202.100.10.1
一台linux搭建Web服务器,充当外网web服务器(同时充当外网客户端)) 192.168.133.131
实验步骤:
1.配置内网web服务器、网关服务器、外网Web服务器的IP地址,开启网关的路由转发,关闭网关的防火墙,测试内网web服务器与外网Web服务器的联通性,保证能互通。
2.安装内网Web服务器和外网Web服务器的web服务,启动服务,新建一个测试页面
3.测试内网客户端访问外网web服务器,外网客户端访问内网web服务器
4.内网客户端访问外网web服务器
5.外网客户端访问内网web服务器
防火墙SNAT和DNAT
1.内网客户端访问外网web服务器
2.在外网web服务器上查看日志
tail -f /var/log/httpd/access_log
3.在网关设置地址转换
iptables -t nat -A POSTROUTING -s 192.168.133.0/24 -o eth2 -j SNAT --to-source 202.100.10.1
或者iptables -t nat -A POSTROUTING -s 192.168.133.0/24 -o eth2 -j MASQUERADE
4.再次在内网客户端访问外网web服务器,然后查看外网的web服务器可以看到,日志文件记录的IP的不是内网客户端的IP
DNAT:
1.在网关上设置,把内网web服务器映射到网关外网的接口上
iptables -t nat -A PREROUTING -i eth2 -d 202.100.10.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.133.131
2.访问网关外网的接口IP(实际上就是访问内网web服务器)
3.查看内网web服务器的日志文件
squid代理服务器
1.在配置网关服务器配置squid代理服务器,安装squid, yum install -y squid
1.1传统代理服务器
启动squid服务 service squid start
因为squid.conf配置文件,默认允许所有私网IP通过
1.2在内网客户端设置浏览器,加入代理,测试
在外网服务器查看日志文件,可以看到IP是代理服务器的IP
1.3关闭网关服务器的代理服务器,再次测试,下图说明客户端访问外网web服务器经过代理服务器
2.透明代理服务器
2.1在网关服务器上配置,设置透明代理并开启高速缓存, vim /etc/squid/squid.conf
http_port 192.168.133.130:3128 transparent #192.168.133.130为内网接口IP
cache_dir ufs /var/spool/squid 100 16 256
iptables -t nat -A PREROUTING -i eth1 -s 192.168.133.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128 #-i接口是内网接口 -s 跟的是内网网段 -j 跟的是REDIRECT(重定向)
2.2重启squid服务,然后在内网客户端测试,取消之前测试中浏览器设置的代理,透明代理不需要设置在客户端设置任何东西
2.3在外网web服务器上查看日志