squid 技巧

 

 

 

1. 如果不想缓存某个文件或某个url

例子:不缓存结尾为 .htm 的地址

acl BAD_URL url_regex -i /.htm$
no_cache deny BAD_URL

2.禁止某种类型的文件下载

acl deny_exe url_regex -i /.reg$ /.scr$ /.ani$
http_access deny deny_exe

3.禁止访问某个网站

acl bad_net dst www.sex.com
acl bad_net2 dstdomain www.sex.com

http_access deny bad_net
http_access deny bad_net2

4.禁止通过ip 访问主机

acl IPForHostname dstdom_regex ^[0-9]+/.[0-9]+/.[0-9]+/.[0-9]+$
http_access deny IPForHostname

5.对于非常繁忙的cache 需要增加系统的文件描述符的限制(系统一般是1024)

可以在squid 启动文件中增加 ulimit -u 4096

6.你也能使用http_port 指令来使squid 侦听在指定的接口地址上。当squid 作为防火墙运
行时,它有两个网络接口:一个内部的和一个外部的。你可能不想接受来自外部的http请
求。为了使squid 仅仅侦听在内部接口上,简单的将IP 地址放在端口号前面:
     http_port 192.168.1.1:3128

 7.squid 不会自动轮转日志,有些系统规定文件大小不能超过2G,你可以在crontab 中设置 每天

0点 轮转日志:0 0 * * * /usr/sbin/squid -k rotate

轮转日志的个数由 配置文件中的 logfile_rotate  决定

logfile_rotate 5  表示保存5个

8.禁止qq通过http代理登陆

a)打开qq登陆窗口->设置->网络设置

   类型:http代理

   地址:192.168.1.1(你的squid代理地址)  端口:3128(squid使用的端口)

  填写完后,点 测试 按钮

b)之后查看 access.log

192.168.1.253 - - [08/Feb/2008:22:57:04 +0800] "CONNECT http.tencent.com:443 HTTP/1.1" 200 39 TCP_MISS:DIRECT

 可以看到 qq是通过 http.tencent.com 中的 443端口 的代理服务器

c)在配置文件中禁止该域名的访问

acl deny_qq_proxy dst http.tencent.com
acl deny_qq_proxy2 dstdomain http.tencent.com
http_access deny deny_qq_proxy
http_access deny deny_qq_proxy2

d)重启动squid 后 再使用http代理上qq,查看access.log 日志:

 192.168.1.253 - - [08/Feb/2008:23:07:40 +0800] "CONNECT http.tencent.com:443 HTTP/1.1" 403 1494 TCP_DENIED:NONE

  已经不能连接了

 

9.使squid 带认证功能

ncsa 认证:

auth_param basic program /usr/libexec/squid/ncsa_auth /etc/squid/ncsa_auth
auth_param basic children 10
auth_param basic realm My Awesome Squid Cache
auth_param basic credentialsttl 1 hour

acl KnownUsers proxy_auth REQUIRED
http_access allow KnownUsers

其中 密码文件(/etc/squid/ncsa_auth) 由apache的 htpasswd2 -c etc/squid/ncsa_auth 产生

注意:启用了认证功能,就不能使用透明代理,需要修改2个地方

a) 浏览器必须设置通过代理上网

b)http_port 3128 transparent  更改为:http_port 3128 (取消透明代理)

ldap认证:

auth_param basic program /usr/libexec/squid/squid_ldap_auth -u cn -b "ou=Group,dc=it,dc=com" -v 3
acl authuser proxy_auth REQUIRED
http_access allow  authuser

说明:

-u cn :就是Group组下面的cn用户

详细可以在bash #squid_ldap_auth -help 查看

ldap必须有cn用户例子(建立dn,请查看ldap相关文档):

dn: cn=zyh,ou=Group,dc=it,dc=com
objectClass: posixGroup
objectClass: top
cn: zyh
gidNumber: 1001
userPassword: {CRYPT}/NzX26DI5l97o

注意:启用了认证功能,就不能使用透明代理,需要修改2个地方

a) 浏览器必须设置通过代理上网,出现认证窗口

    输入用户: zyh 

   密码:就是 ldap中的 userPasword中的密码

b)http_port 3128 transparent  更改为:http_port 3128 (取消透明代理)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值