Chinaunix首页 | 论坛 | 博客
  • 博客访问: 597208
  • 博文数量: 70
  • 博客积分: 3219
  • 博客等级: 中校
  • 技术积分: 1197
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-13 12:20
个人简介

谢谢您的对我的博客的关心,同时希望这个站点真的能够对您有所帮助。 如果可以请告诉我你的联系方式(可能的话告诉我两个或更多,我不希望失去任何一个关注本主页人士的联系,不论你是我的老友,或是一位新朋友,对于我来说您十分重要)

文章分类
文章存档

2021年(1)

2020年(13)

2018年(1)

2013年(12)

2012年(2)

2009年(2)

2008年(6)

2007年(20)

2006年(13)

分类: LINUX

2007-05-24 22:43:54

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

本文在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
例如:
 
 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等规则一样,任何数据包在满足最先遇到的规则后将不再对比后序规则!

阅读(1776) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~