Squid 学习笔记

来源:互联网  作者:本站整理
Squid 学习笔记
摘要:本文以Redhat Enterprice Linux 4.0版本为基础,并成功实现。其它linux发行版请读者自行测试。…

内容提示:本文以Redhat Enterprice Linux 4.0版本为基础,并成功实现。其它linux发行版请读者自行测试。

Squid为系统自带软件,可以在安装时选择相应软件包安装或用rpm命令安装。

安装完成后用以下命令启动:

#service squid start
 或
 #/etc/init.d/squid start

当然可以将start参数改为restart或stop来重启或停止squid服务。也可以用以下命令使服务在开机时自动启动:

#chkconfig squid on

作为练习,可将系统的防火墙关闭;至于实际应用需打开的端口请自行参考iptables相关文档。关闭iptables防火墙:

#service iptables stop
 或
 #/etc/init.d/iptables stop

接下来就是配置squid服务了。

在开始前,我们先看一下squid.conf文件的内容,应该知道以#开头的都是注释,所以以#开头的行和空行都可以删除,操作前先备份一下文件哦!

我们用下面命令来查看文件(文中使用的squid.conf即位于/etc/squid/下,文中不使用绝对路径):

#sed -e '/^#/d;/^$/d' squid.conf
 #sed -e '/^#/d' squid.conf

sed -e '/^$/d'
 #sed -e '/^#/d' squid.conf

grep -v ^$
 #grep -v ^# squid.conf

grep -v ^$
 #grep -v ^# squid.conf

sed -e '/^$/d'

花点时间说明下sed命令,不感兴趣的朋友可以略过:

可见:sed -e '/^#/d' 和 grep -v ^# ,以及sed -e '/^$/d'和grep -v ^$效果是一样的,不同的是sed是编辑命令,而grep只是一个过滤命令,就是将含有过滤内容的行显示出来;“-e”是指定后面的部分是要对被编辑内容的编辑脚本;“-v”是对grep产生的结果取反,不显示符合规则的行,而显示不符合规则的行。命令中的“^#”“^$”都是正则表达式:^表示行首;#无特殊含义,即字符#,$表示行尾,^$即表示空行,^#即表示以字符#开始的行,同理#$则表示以#结尾的行。斜杠只是把正则表达式括起来的符号,而斜杠后的d则表示将符合的行删除(delete)它是sed脚本的一个命令参数,单引号是把属于sed的脚本括起来,在特殊情况下“可以或必须”省略。注新版本的sed有-i选项,请慎用,它能直接修改目标文件!
 
  目标一、打开/禁止指定网段的上网权限

定义访问控制列表

acl allowed_network  src 192.168.1.0/24
 acl restricted_network src 192.168.2.0/24

应用规则

#允许192.168.1.0/24网段上网,禁止192.168.2.0/24网段上网。

http_access allow allowed_network
 http_access deny restricted_network
 
  目标二、限制访问时间

定义访问控制列表

acl work_time time M T W H F 8:30-17:30
 acl rest_time time 12:00-13:00

应用规则

#指定不能上网的主机可以在休息时间上网,指定可以上网的主机不能在工作时间(周一至周五的8:30到17:30)不能上网

http_access allow rest_time restricted_network
 http_access deny work_time allowed_network
 
  目标三、定义安全站点和禁止访问的站点

建立存放网站域名的文件,内容可以是主机名或域名。注:每个站点在文件中占一行。

#touch /etc/squid/allowed_sites.list
 #touch /etc/squid/restricted_sites.list

例如:
 www.yahoo.com.cn
 microsoft.com

定义访问控制列表

acl allowed_sites dstdomain "/etc/squid/allowed_sites.list"
 acl restricted_sites dstdomain "/etc/squid/restricted_sites.list"

应用规则

http_access deny restricted_sites
 http_access allow allowed_sites
 
  目标四、使用用户认证上网

建立保存用户密码的文件:

#touch /etc/squid/squid.passwd
 #chmod o+r /etc/squid/squid.passwd

添加用户user01,生成密码:

#htpasswd /etc/squid/squid.passwd user01
 New password:
 Re-type new password:
 Adding password for user user01

添加认证模块:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid.passwd

定义访问控制列表

acl ncsa_users proxy_auth REQUIRED

应用规则

http_access allow ncsa_users
 
  接下去就可以根据各自的需要定义各种各样的条件进行网络管理了。

【相关文章】好搜一下
小方法大作用:如何让网站PR值一路高歌

小方法大作用:如何让网站PR值一路高歌

做网站最痛苦的就是建站之初的那段时间,如长沙厂房出租网站刚建立,只是处于婴幼儿时…