案例一:透明代理(正向):透明代理的意思是客户端根本不需要知道有代理服务器的存在
设计思路:squid代理服务器处于内网当中,且有双网卡eth1和eth0,用户通过路由器才能正常上网。上网需要指明dns服务器,但是dns服务器处于外网当中,想要能够正常解析出域名,内网主机需要使用nat转换将dns解析信息发送到外网中,所以在代理服务器上配置iptables策略,将nat数据包转发到外网。内网主机需要指明dns服务器地址和网关eth1:192.168.10.10。而squid代理服务器需要指明网关192.168.101.254和dns服务器222.88.88.88(222.85.85.85)
拓扑方案:
代理服务器的网关指向路由器接口:
[root@lyt ~]# vim /etc/resolv.conf
[root@lyt ~]# mkdir /mnt/cdrom
[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/
[root@lyt ~]# cd /mnt/cdrom/Server/
[root@lyt Server]# rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm #安装squid包
过滤/etc/squid/squid.conf配置文件的注释行:[root@lyt ~]# grep -v "^#" /etc/squid/squid.conf |grep -v "^$"
[root@lyt Server]# vim /etc/squid/squid.conf #编辑squid的配置文件
[root@lyt Server]# service squid start
[root@lyt Server]# netstat -tupln |less
[root@lyt ~]# vim /etc/sysctl.conf
[root@lyt ~]# sysctl –p #使数据包转发功能生效
[root@lyt ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -p udp --dport 53 -o eth0 -j MASQUERADE #使用nat协议,-t表示表格(table);在路由后(POSTROUTING)进行追加,-A表示追加;源地址是192.168.10.0/24网段,-s表示source;监听目标端口udp的53;出口是eth0,-o表示出口网卡;MASQUERADE是地址伪装,也即使用eth0网卡的ip地址作为nat转换的源地址
[root@lyt ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j REDIRECT --to-port 3128 #使用nat协议,-t表示表格(table);在路由前(PREROUTING)追加,-A表示追加;目标端口是tcp的80端口;监听进口网卡eth1,重定向到3128端口。
[root@lyt ~]# service squid restart
测试:使用xp主机