Chinaunix首页 | 论坛 | 博客
  • 博客访问: 261723
  • 博文数量: 93
  • 博客积分: 3001
  • 博客等级: 中校
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-11 13:20
文章分类

全部博文(93)

文章存档

2011年(1)

2009年(92)

我的朋友

分类: LINUX

2009-07-11 23:01:49

RedHat linux 系统默认已经安装了squid
1.squid代理服务的配置

有以下最基本的设置squid就可以启动使用了

http_port 192.168.0.110:8080

cache_mem 64 MB

cache_dir ufs /var/spool/squid 4096 16 256

cache_effective_user squid

cache_effective_group squid

dns_nameservers 192.168.0.1

cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log

cache_store_log /var/log/squid/store.log

visible_hostname 192.168.0.110

cache_mgr

acl all src 0.0.0.0/0.0.0.0

http_access allow all

 

1.1  指定squid服务器监听的ip和端口

 http_port 192.168.0.110:8080

1.2  设置内存缓冲的大小(仅仅用于共享上网设为物理内存的1/2,如果还有其他服务责不应超过物理内存的1/3

cache_mem 64 MB

1.3         设置内存盘缓冲的大小

cache_dir ufs /var/spool/squid 4096 16 256

Ufs 是指缓冲的存贮类型,/var/spool/squid是存贮目录,4096代表最大存贮空间,16代表一级存贮目录,256代表二级存贮目录

1.4  设置使用存贮的有效用户和组

cache_effective_user squid

cache_effective_group squid

1.5  定义DNS服务器地址  

\    dns_nameservers 192.168.0.1

1.6  设置访问日志文件

      cache_access_log /var/log/squid/access.log

1.7  设置缓存日志文件  

 cache_log /var/log/squid/cache.log

1.8  设置网页缓冲日志文件

  cache_store_log /var/log/squid/store.log

1.9  设置运行squid主机的名称 

visible_hostname 192.168.0.110

1.10  设置管理员邮件地址

  cache_mgr

1.11   设置默认的访问控制列表

acl all src 0.0.0.0/0.0.0.0

http_access allow all

2.初始化squid  /usr/sbin/squid –z(创建squid在硬盘缓冲区的目录结构)

3.访问控制列表

              类型选项

命令

说明

src

IP地址(客户机IP地址)

dst

目标IP地址(服务器IP地址)

srcdomain

源名称(客户机所属的域)

dstdomain

目标名称(服务器所属的域)

time

一天中的时刻和一周内的一天

url_regex

URL规则表达式匹配

urlpath_regex:url-path

略去协议和主机名的URL规则表达式匹配

proxy_auth

通过外部程序进行用户认证

maxconn

单一IP的最大连接数

time

语法为:时间  时间段 星期可用首字母大写表示,时间段可表示为:1100-2000

列表语法:acl 列表名称 列表类型 –i 列表值

          http_access allow/deny 列表名称

实际应用举例

(1)   禁止IP地址为192.168.16.200的客户机上网

acl test src 192.168.16.200

http_access deny test

(2)   禁止192.168.1.0这个网段里的所有客户机上网

acl test src 192.168.1.0/255.255.255.0

http_access deny test

http_access deny test

(3)   禁止用户访问IP210.21.118.68的网站

acl test dst 210.21,118.68

http_access deny test

(4)           禁止用户访问域名为的网站

 acl test dstdomain –i

  http_access deny test

(5)           禁止用户访问域名包含有的网站

 acl test url_regex –i

  http_access deny test

(6)           禁止用户访问包含有sex关键字的URL

 acl test url_regex –i sex

  http_access deny test

(7)           限制IP地址为192.168.16.200的客户机并发的最大连接数为5

 acl test src 192.168.16.200

 acl test2 maxconn 5

   http_access deny test test2

(8)           禁止192.168.2.0这个子网里所以客户机在周一至周五的9点到18点上网

 acl test src 192.168.2.0 /255.255.255.0

 acl test2 time MTWHF 900-1800

   http_access deny test test2

(9)           禁止用户下载*.mp3,*.exe,*.zip,*.rar

 acl test urlpath_regex –i \.mp3$\.exe$\.zip$\.rar$

   http_access deny test

(10)      禁止QQ通过squid上网

 acl test url_regex –i tencent.com

   http_access deny test

  注:启动squid/etc/init.d/squid start

      停止squid  /etc/init.d/squid stop

      重启squid  /etc/init.d/squid  restart

      重新导入配置文件  /etc/init.d/squid  reload

4.透明代理的实现

   1实现透明代理的语句(vi /etc/squid/squid.conf

http_accel_host virtual

http_accel_port 80

http_accel_with_proxy 0n

httpd_accel_uses_host_header 0n

http_accel_hosthttp_accel_port来定义squid的加速模式,virtual是虚拟主机模式,80为请求的端口

http_accel_with_proxy 选项定义为on后,squid既是web请求的加速器又是缓存代理服务器

httpd_accel_uses_host_header定义为on后,在透明代理模式下代理服务器的缓存功能才能工作

   2设置端口重定向

iptables –t nat –A PREROUTING  -s 192.168.1.0/24  -p tcp --dport 80 -j REDIRECT --to-ports 8080

    (3)  重新导入配置文件 /etc/init.d/squid  reload

配置用户身份验证

1.         配置/etc/squid/squid.conf(NCSA认证)

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

auth_param basic children 5

auth_param basic credentialsttl 2 hours

auth_param basic realm Example.com's Squid proxy-caching

acl auth_user proxy_auth REQUIRED

http_access allow auth_user

auth_param basic program选项定义了认证方式为basic/usr/lib/squid/ncsa_auth /etc/squid/passwd定义了认证程序的路径和读取的账户文件

auth_param basic children 定义了认证程序的进程数

auth_param basic credentialsttl 定义了经过认证后的有效时间

auth_param basic realm  定义了WEB  浏览器显示输入用户/密码对话框的领域内容

acl auth_user proxy_auth REQUIREDhttp_access allow auth_user设置合法用户的访问控制列表

2.         建立账户文件

htpasswd -c /etc/squid/passswd test建第一个用户时要用-c选项)

htpasswd  /etc/squid/passswd test2

htpasswd  /etc/squid/passswd test3

3.         重新启动squid服务

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