SQUID透明代理服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQUID透明代理服务器相关的知识,希望对你有一定的参考价值。

通过配置透明代理服务器,实现以下目标:

  1. 实现本地局域网中的所有主机均可以通过代理服务器访问Web服务器

  2. 客户端使用代理访问Web服务时,浏览器无需提前配置代理服务器

  3. 代理服务器除了承担代理外,还需要实现网关路由的功能

  4. 客户端测试是否可以使用代理服务器访问外网的Web服务器

2.2 方案

使用3台RHEL6虚拟机,其中一台作为Squid代理服务器/网关服务器,该服务器用来连接两个网段,因此需要配置两块网卡,地址分别为192.168.4.5和172.16.16.1。一台作为客户端测试主机,IP地址为192.168.4.100。一台作为外网Web服务器,IP地址为172.16.16.172,拓扑如图-5所示。

技术分享

图-5

Squid代理服务器需安装的软件包:squid

Web服务器需安装的软件包:httpd

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:构建web服务器

1)使用yum安装web软件包

  1. [[email protected] ~]# yum  -y  install  httpd

  2. .. ..

  3. [[email protected] ~]# rpm  -q  httpd

  4. httpd-2.2.15-29.el6_4.x86_64

2)启用httpd服务,并设为开机自动运行

  1. [[email protected] ~]# service  httpd  restart  ;  chkconfig  httpd  on

  2. Stopping httpd:                                        [FAILED]

  3. Starting httpd:                                        [OK]

httpd服务默认通过TCP 80端口监听客户端请求:

  1. [[email protected] ~]# netstat  -anptu  |  grep httpd

  2. tcp        0        0        :::80        :::*        LISTEN        2813/httpd

3)为Web访问建立测试文件

在网站根目录/var/www/html下创建一个名为index.html的首页文件:

  1. [[email protected] ~]# cat /var/www/html/index.html

  2. <html>

  3. <title>Welcome</title>

  4. <body>

  5. <h1>hello</h1>

  6. <h2>hello</h2>

  7. </body>

  8. </html>

步骤二:部署Squid代理及网关服务器

1)使用yum安装squid软件包:

  1. [[email protected] ~]# yum  -y  install  squid

  2. .. ..

  3. [[email protected] ~]# rpm  -q  squid

  4. squid-3.1.10-19.el6_4.x86_64

2)修改/etc/squid/squid.conf配置文件:

  1. [[email protected] ~]# vim /etc/squid/squid.conf

  2. .. ..

  3. http_port 3128 transparent                        //设置透明代理

  4. visible_hostname squid.svr5.com                //设置主机名

  5. cache_mem 128 MB                                //内存缓存

  6. cache_dir ufs /var/spool/squid 200 16 128        //硬盘缓存

  7. http_access allow localnet                        //允许本机所在网络中的所有主机使用代理服务器

3)配置网关路由功能:

  1. [[email protected] ~]# vim /etc/sysctl.conf

  2. .. ..

  3. net.ipv4.ip_forward = 1                        //开启路由转发功能

  4. [[email protected] ~]# sysctl -p

  5. [[email protected] ~]# iptables -t nat -A PREROUTING -i eth1 -s 192.168.4.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128                    //开启NAT端口转发

  6. [[email protected] ~]# iptables -t nat -A PREROUTING -i eth1 -s 192.168.4.0/24 -p tcp --dport 443 -j REDIRECT --to-ports 3128                    //开启NAT端口转发

  7. [[email protected] ~]# service iptables save            //保持防火墙规则

4)启动squid服务,并设置为开机启动:

  1. [[email protected] ~]# service  squid restart; chkconfing squid on

  2. Stopping squid:                                            [FAILED]

  3. init_cache_dir /var/spool/squid...

  4. Starting squid: .                                          [  OK  ]

5)squid服务默认通过TCP 3128端口监听客户端请求:

  1. [[email protected] ~]# netstat  -anptu  |  grep 3128

  2. tcp        0        0        :::3128        :::*        LISTEN        3213/(squid)

步骤三:客户端测试

1)将客户端的网关地址设置为192.168.4.5

  1. [[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

  2. DEVICE="eth0"

  3. BOOTPROTO="static"

  4. IPADDR=192.168.4.100                                    //设置IP

  5. GATEWAY=192.168.4.5                                    //设置网关

  6. ONBOOT="yes"

  7. TYPE="Ethernet"

2)客户端开启浏览器访问Web服务器

  1. [[email protected] ~]# firefox 172.16.16.172

3)分别登陆代理服务器及Web服务器,查看日志文件检查效果

  1. [[email protected] ~]# tailf /var/log/squid/access.log            //squid代理服务器日志

  2. 1429596067.371     21 192.168.4.100 TCP_MISS/200 478 GET http://172.16.16.172/ - DIRECT/172.16.16.172 text/html

  3. [[email protected] ~]# tailf /var/log/httpd/access_log            //Web服务器日志

  4. 172.16.16.1 - - [20/Apr/2015:23:01:07 -0700] "GET / HTTP/1.1" 200 83 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"


以上是关于SQUID透明代理服务器的主要内容,如果未能解决你的问题,请参考以下文章

squid代理服务器(传统代理透明代理反向代理ACL日志分析)

Squid代理—传统与透明代理的服务搭建

缓存加速------Squid代理服务器应用(传统代理,透明代理,反向代理,ACL访问控制,日志分析)

squid代理服务,搭建传统代理和透明代理案例

squid代理服务,搭建传统代理和透明代理案例

部署Squid 代理服务器(内含传统透明代理服务器的配置ACL访问控制日志分析反向代理)