http_access deny denyurl
基于用户的认证
Squid本身并不支持用户验证,它是通过外部程序提供用户验证功能,用户通过squid访问前需要输入有效的用户名和密码。可以用 proxy_auth ACL 和 authenticate_program 来实现这个功能,在允许访问前强制进行用户名和密码的核查。下面列出一些 Squid 能用到的验证程序:
NCSA : 使用 NCSA 风格的用户名和密码档
LDAP : 使用 Linux Lightweight 目录访问协议(Linux Lightweight Directory Access Protocol)
SMB : 使用 SMB 协议的服务,如 SAMBA 或 Windows NT
MSNT : 使用 Windows NT 的域验证
PAM : 使用 Linux 的可装载验证模块
getpwam : 使用 Linux 密码档
使用验证功能必须用authenticate_program 选项指定使什么验证程序,并且请确认选定的验证程序已安装并能很好的工作。默认的,这些验证程序放在/usr/lib/squid/目录下。
以NCSA认证为例,修改 squid.conf 文件选定验证程序:
authenticate_program /usr/lib/squid/ncsa_auth /etc/squid/passwd
acl alloweduser proxy_auth pangty
http_access allow alloweduser
其中/etc/squid/passwd是用户和密码列表,这个文件可以用apache软件包带的htpasswd来产生,它的内容可能是这样的:
pangty:wCQhCeZOOF3vk
pangty是用户名,“:”号后面的是该用户的密码。
注意:修改了squid.conf配置后,需要重新启动squid或者告诉squid重新装入配置文件才能起作用。这样执行:
重起squid:
[root@rh73 ~]# /etc/rc.d/init.d/squid restart
不重起,只装入新的配置文件:
[root@rh73 ~]# /etc/rc.d/init.d/squid reload
以上是squid的常用的配置选项,这对于一般的应用来说已经足够了,如果你需要更多的特性支持,请阅读下面的内容。
§§ 需要更多的功能
显示中文错误提示信息
默认的,squid在发生错误时显示的是英文提示信息,squid的提示信息已经被翻译成很多语言,可以很方便的让他显示中文信息:
[root@rh73 ~]# cd /etc/squid/
[root@rh73 ~]# rm -f errors
[root@rh73 /etc/squid]# ln -s /usr/lib/squid/errors/Simplify_Chinese/ errors
/usr/lib/squid/errors下面有squid的各种语言版本的提示信息,按目录存放在不同的子目录下面。
支持基于MAC的控制以及访问带有下划线的URL
由于计算机的IP地址是随时可以更改的,所以即便你设置了ACL限制只有某些IP的计算机可以访问Internet,其它人仍然可以在该计算机关机的情况下,修改成这些允许上网的IP地址后访问Internet。另外,前面我们是使用DHCP来管理内部网络上的计算机的IP地址,每台计算机每次获得的IP地址可能是不一样的,所以,单纯的通过IP地址来控制上网权限并不适合所有的场合,而MAC地址相对是稳定的,一般网卡的MAC地址不能够更改,所以基于MAC地址的用户控制非常适合解决这两种情况带来的问题。








