文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Squid 学习笔记

Squid 学习笔记

时间:2007-05-24  来源:mjwdj

最近没什么收获,找几篇老笔记贴到网上,算给自己做个复习。

本文在Redhat Enterprice Linux 4.0上实现。
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

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

很重要的一点!!
特别注意应用规则的先后次序,和iptables等规则一样,任何数据包在满足最先遇到的规则后将不再对比后序规则!
相关阅读 更多 +
排行榜 更多 +
rento大富翁手游

rento大富翁手游

休闲益智 下载
冲撞赛车3无限金币版

冲撞赛车3无限金币版

赛车竞速 下载
电动火车模拟器内置菜单

电动火车模拟器内置菜单

赛车竞速 下载