squid代理服务器的使用

   squid:
  squid是一款代理服务器软件,能提供http,ftp的代理,加速网络内部客户机的访问速度。
  实现方式:先定义acl(access control list),然后给这些acl权限;其中acl可以是source地址段,
   也可以是target地址段,还可以是端口值,甚至可以是时间段,或者是这些的组合。


  透明代理:一般情况下,使用代理必须在客户端指定代理服务器的地址和端口。
   squid可以做成透明代理的形式,就是客户端无须指定代理服务器,从默认网关访问时,
   自动走的是代理路径。客户端根本就不知道自己使用的是代理服务器。
   这是squid和网关在一台机器上的情况,如果不在一起,可以通过iptables这些规则,把客户端对
   80端口的访问都重定向到代理服务器的代理端口。


  basic验证:有时为了安全起见,需要给客户以用户名和密码的验证。
  #该选项指出了认证方式(basic)、需要的程序(ncsa_auth)和 
  对应的密码文件(password) 
  auth_param basic program /usr/bin/ncsa_auth /var/squid/etc/password 
  # 指定认证程序的进程数 
  auth_param basic children 5 
  # 浏览器显示输入用户/密码对话框时的领域内容 
  auth_param basic realm My Proxy Caching Domain 
  # 基本的认证有效时间 
  auth_param basic credentialsttl 2 hours 
  # 普通用户需要通过认证才能访问Internet 
  acl normal proxy_auth REQUIRED 
  http_access allow normal
  注意:需要先定义一个acl aclname proxy_auth REQUIRED,说明这个acl都是需要验证的;
  然后还需要给它一个访问权限http_access allow aclname,来说明允许这个acl访问。
  但是这个http_access的放置位置需要考虑周全。如果放在其他http_access的最前面,说明
  所有的acl访问都需要密码验证。如果想设置特权用户,必须把特权用户acl的http_access放
  在前面。
  如何设置basic验证的用户名和密码呢?
  使用apache的htpasswd命令,可以生成用户名和密码
  htpasswd  /tmp/squidpasswd guest 
  在/tmp/squidpasswd文件中新建一个用户guest,第一次使用htpasswd命令时使用-c命令,创建这个文件。
  如果本机中没有apache,可以使用其他机器的htpasswd命令生成密码文件,然后拷贝到本机。

  下面给一个squid.conf的例子: 

  # 服务器配置 
  http_port 192.168.0.1:3128          -------指定服务器地址和端口
  cache_mgr [email protected]           -------指定管理者邮箱
  cache_dir ufs /var/squid            -------缓存文件路径
  cache_mem 32MB                      -------缓存文件大小
  cache_swap_low 90                   -------缓存低限
  cache_swap_high 95                  -------缓存高限,达到95%后,不再会添加缓存,而是替换旧的缓存,直到小于90%
  cache_access_log /var/squid/access.log     -------访问日志文件
  cache_log /var/squid/cache.log             -------缓存日志
  cache_store_log /var/squid/store.log       -------储存日志
  visible_hostname proxy1                 -------在访问页面显示的代理服务器的名称
  client_mask 255.255.255.255                -------把没一个客户端都作为一个独立的主机对待
  httpd_accel_host virtual                   -------以下几个为设置透明代理专有选项
  httpd_accel_port 80 
  httpd_accel_with_proxy on 
  httpd_accel_user_host_header on 

  # 用户分类 
  acl advance arp 0f:01:02:1f:4c:3e
  acl normal proxy_auth REQUIED 
  acl all src 0.0.0.0 

  # 行为分类 
  acl mmxfile urlpath_regex /.mp3$ /.avi$ /.exe$ 
  acl conncount maxconn 3 
  acl worktime time MTWHF 8:30-12:00 14:00-18:00 
  acl sinapage dstdomain ok.sina.com.cn 
  acl qq dstdomain .tcccent.com.cn 

  # 处理 
  http_access allow advance 
  http_access deny conncount normal 
  http_access deny !worktime 
  http_access deny mmxfile 
  http_access deny sinapage 
  http_access deny qq 
  http_access allow normal 


  配置后的状况是,advance组可以不受任何限制地访问Internet,
  而normal组则只能在工作时间上网,而且不能下载多媒体文件,
  不能访问某些特定的站点,而且发送请求不能超过3个。 

 

  

你可能感兴趣的:(Linux,FreeBSD,服务器,access,basic,代理服务器软件,cache,internet)