搭建Linux安全的Squid代理服务器

豆豆网   技术应用频道   2007年09月22日  【字号: 收藏本文

内容摘要:本文介绍Linux下非常著名、常用的Squid代理服务器的使用,并着重讲述如何使用其提供的访问控制策略,来保证代理服务器的合法使用。

  visible_hostnameNo1.proxy

  以下配置告诉Squid如何处理用户,对每个请求的IP地址作为单独地址处理:

  client_mask255.255.255.255

  如果是普通代理服务器,以上的配置已经足够。但是很多Squid都被用来做透明代理。所谓透明代理,就是客户端不知道有代理服务器的存在,当然也不需要进行任何与代理有关的设置,从而大大方便了系统管理员。相关的选项有以下几个:

  httpd_accel_hostvirtual

  httpd_accel_port80

  httpd_accel_with_proxyon

  httpd_accel_user_host_headeron

  在Linux上,可以用iptables/ipchains直接将对Web端口80的请求直接转发到Squid端口3128,由Squid接手,而用户浏览器仍然认为它访问的是对方的80端口。例如以下这条命令:

  iptables-tnat-APREROUTING-s192.168.0.200/32-ptcp--dport80-jREDIRECT3128

  就是将192.168.0.200的所有针对80端口的访问重定向到3128端口。

  所有设置完成后,关键且重要的任务是访问控制。Squid支持的管理方式很多,使用起来也非常简单(这也是有人宁愿使用不做任何缓存的Squid,也不愿意单独使用iptables的原因)。Squid可以通过IP地址、主机名、MAC地址、用户/密码认证等识别用户,也可以通过域名、域后缀、文件类型、IP地址、端口、URL匹配等控制用户的访问,还可以使用时间区间对用户进行管理,所以访问控制是Squid配置中的重点。Squid用ACL(AccessControlList,访问控制列表)对访问类型进行划分,用http_accessdeny或allow进行控制。根据需求首先定义两组用户advance和normal,还有代表所有未指明的用户组all及不允许上网的baduser,配置代码如下:

  acladvance192.168.0.2-192.168.0.10/32

责编:豆豆技术应用

正在加载评论...