squid代理配置介绍

 

                                         Squid 代理

目标:

       了解 squid 的工作原理,熟练掌握 squid 的配置,实现其普通代理,透明代理,方向透明代理, http_access 控制

内容:

A.Squid 简介:

Squid 代理是目前使用非常普遍的一种将局域网和 interner 连接到一起的方式,这样做的理由和好处入下:

1,  可以预存缓存,减轻服务器的访问压力,同是也可以提高 client 的访问速度。例如我们平时用的 126 163 ,都是基于 squid 代理

2,  在一定程度上很大的解决了 IP 紧张的问题。

3,  它可以对 web 访问的方式基于应用层内容进行过滤控制,同时因为它介于服务器和 client 之间,在一定程度上提高了服务器的安全性。

缺点:

Squid 支持的服务种类较少 :HTTP.  FTP.

Squid 根据代理的方式分为普通代理,透明代理,方向透明代理。

1   标准的代理缓冲服务器

    一个标准的代理缓冲服务器主要用来存储用户访问过的网页信息,当clientsquid 服务器请求时,squid 服务器在向web 请求数据,将数据传给client 的同时会缓存一份在自己缓存器中,在一定时间内有同样的请求时,squid 就不用再向webserver 请求数据,而是直接将缓存中的数据恢复给库户端,这样既提高了client 的访问速度,又大大减轻了服务器的访问压力。但是其最大的缺点是client 需要在自己的web 浏览器中配置squid 代理服务器的地址和端口号,这很大程度上增加了client 的难度和网络管理员的管理难度。因此出项了下面的透明代理

2   透明代理缓冲服务器

    透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即无需指明代理服务器的IP 和端口)。我们需要在linux  squid 代理服务器上做最一些相应的改动,并做iptables 的端口转发即可。这对与企业的网管主机共享接入到Internet 很实用。

3   反向代理缓冲服务器

反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低本地WEB 服务器的负载。反向代理服务器承担了对原始WEB 服 务器的静态页面的请求,防止本地服务器过载。它位于本地WEB 服务器和Internet 之间,处理所有对WEB 服务器的请求, 组织了WEB 服务器和Internet 的直 接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB 服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向WEB 服务器的请求数从而降低了WEB 服务器的负载

 

 

B.Squid 的基本配置

v      squid 软件包

Ü      软件包名: squid-2.6.STABLE6

Ü      服务名: squid

Ü      主程序: /usr/sbin/squid

Ü      配置目录: /etc/squid/

Ü      主配置文件: /etc/squid/squid.conf

Ü      默认监听端口: TCP 3128

Ü      默认访问日志文件: /var/log/squid/access.log

 

v      常用配置项

Ü      http_port 3128

Ü      cache_mem 64 MB (为自己物理内存的 1/3 即可)

Ü      maximum_object_size 4096 KB

Ü      reply_body_max_size 10240000 allow all

Ü      access_log /var/log/squid/access.log squid

Ü      visible_hostname proxy.test.com

Ü      cache_dir ufs  (unix file system)   /var/spool/squid  ( 为缓存目录分配的磁盘空间 ) 100  ( 为缓存目录分配的磁盘空间( MB 16    ( 缓存空间的一级子目录个数 )256  ( 缓存空间的二级子目录个数 )

       常用命令

       Squid –z             初始化缓存

       Squid  -k           parser  分析配置文件语法错误

       Squid  -d   调试启动   -D  启动 squid 服务。

我们来做个简单实验来实现一个简单的透明代理:

       实验环境

                     外网: 192.168.0.254  httpd ftp

Squid eth0  192.168.0.20

          eth1   10.0.2.150

内网: 10.0.2.20

注意:

Squid 默认是 deny all 。我们需要事先在 squid.conf 配置文件中在 http_access  deny  all  的前面加入 http_access allow  all 。启动 squid 代理服务。在 10.0.2.20 IE 中加入 squid 的端口号以及 IP 地址。显示出 RedHat enterprise test  page 为正常

下面我们来正是开始我们的实验:

1.       实现透明代理

 

透明代理的实现步骤:

修改 squid.conf 配置文件,并重新加载该配置

http_port 192.168.0.20:8080 transparent

  [root@congtou squid]# service squid reload

 

添加 iptables 规则

[root@congtou squid]# iptables -t nat -A PREROUTING  -i eth1 -s  10.0.2.150 -p tcp --dport 80 -j REDIRECT  --to-ports 8080

              客户机浏览器

不需要在浏览器中指定代理服务器的地址、端口   http;//192.168.0.254

 

 

2.       实现反向透明代理

 

http_port  218.29.30.31:80 vhost

cache_peer 192.168.10.7 parent 80 0 originserver weight=5 max-conn=30

cache_peer 192.168.10.8 parent 80 0 originserver weight=5 max-conn=30

 

 

 

注意:

这里需要注意的是反向透明代理是不能和透明代理一块的实现的。

我们需要取消掉刚才透明代理的配置,再开始做反向透明代理。

       反向透明代理的实现步骤

[root@mail postfix]# vim /etc/squid/squid.conf          在配置文件中添加如下语句:

http_port    10.0.2.100:80   vhost

cache_peer  192.168.0.254   parent  80 0 originserver weight=5 max-conn=30

cache_peer Web 服务器地址 服务器类型 http 端口 icp 端口 [ 可选项 ]

              ( 因为我们这里只有一个 web 服务服务器,这里的意思是想让大家了解下这个语句的用法 权重为 5 ,最大的链接数为 30

测试

10.0.2.150 地址栏输入   http;//10.0.2.100 出现测试页为正常

查看日志记录

[root@congtou named]# tail -1 /var/log/squid/access.log

1267973512.539     40 10.0.2.150 (source) TCP_MISS/200 2795 GET http://10.0.2.100 (destination) /icons/apache_pb2.gif - FIRST_UP_PARENT/192.168.0.254 ( server )image/gif

 

 

下面我们来做一些访问规则的配置测试

 

v      访问控制规则的匹配顺序

Ü      没有设置任何规则时

  —— 将拒绝所有客户端的访问请求

 

Ü      有规则但找不到相匹配的项时

n             将采用与最后一条规则相反的权限,即如果最后一条规则是 allow ,那么就拒绝客户端的请求,否则允许该请求

n             当两个命令罗列到一块是取其交集

选项:

Ü      src     

Ü      dst

Ü      port

Ü      srcdomain           来源域限制

Ü      dstdomain           转发域限制

Ü      time                   时间限制

Ü      maxconn            最大连接数限制

Ü      url_regex            正则表达式限制

Ü      urlpath_regex      正则表达路径限制

Ü      arp                     mac 限制

Ü      proto                  协议限制

 

规则示例:

Ü      acl LAN1 src 192.168.10.0/24

Ü      acl PC1 src 192.168.10.12/32

Ü      acl Blk_Domain dstdomain .qq.com

Ü      acl Work_Hours time MTWHF 08:30-17:30

Ü      acl Max20_Conn maxconn 20

Ü      acl Blk_URL url_regex -i ^rtsp:// ^mms://

Ü      acl Blk_Words urlpath_regex -i sex adult

Ü      acl RealFile urlpath_regex -i /.rmvb$ /.rm$

要求:

允许 10.0.2.0 网段的主机在每天的 8 00-18 00 登录 192.168.0.254ftp 服务,但是不能下载 pdf 格式的文件。

允许 10.0.2.0 网段的主机在 22 00 -23 59  00 00-8 00 访问服务器的 httpd 服务

在配置文件中做如下修改:

 

acl srcnetwork src 10.0.2.0/24                   来源限制

acl desnetwork dst   192.168.0.0/24

acl  ftptime   time   8:00-18:00

acl  httptime   time  22:00-23:59

acl  httptime   time  00:00-8:00

acl  ftp        proto   FTP

acl  http       proto   HTTP

acl  class      url_regex   ^.*/.pdf$

http_access allow   srcnetwork  desnetwork  ftptime ftp !class

http_access  allow  srcnetwork  desnetwork  httptime  http               ========== 》经测试成功,以上均成功

其他的命令大家可以自己测试试试。

                                                                                    Over

      

 

      

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值