1、 下载squid http://www.squid-cache.org/Versions/v2/2.5/, configure(指定安装路径和其他参数), make, make install
2、 安装成功后,在安装目录下应该有以下目录:bin, etc, libexec, man, sbin, share, var
其中sbin下有squid执行程序,share 路径下是文挡等辅助资料,var目录下是运行日志,etc下是配置文件,以下所有的测试用例都是通过修改etc下的squid.conf中的相关规则来实现的。
3、 基本的规则设置:(squid.conf)
#defaults
acl all src 0.0.0.0/0.0.0.0
http_access deny all
以上的两条规则保证,当请求未能匹配任何一条用户定义的规则时,http access deny all 规则将被应用,于是该http请求被拒绝。
4、 以root登陆,运行./squid –z
在本测试中,由于未用到其缓存功能,在配置中将: cache_dir null /tmp,
且编译时带参数 --enable-storeio=ufs,null
5、web过滤测试
测试用例a:
规则描述:
1)允许http和FTP协议
2)允许对80端口和21端口的连接
3)允许192.168.88.0/24网段的IP
4)屏蔽192.168.89.0/24网段的IP
则在squid.conf文件中添加规则如下,然后重新启动squid.
#acl manager proto HTTP FTP
acl allowedIP src 192.168.88.0.24 acl safeports port 80 21 443
acl connect method CONNECT http_access deny !safeports http_access allow allowedIP
此时将客户端IP设置为192.168.88.30
在IE中输入http://192.168.88.31,能正常弹出apache默认页面。FTP能正常连接。
若将客户端IP改为192.168.89.30,则http和FTP请求都失败。
结论:
http_access allow allowedIP和http_access deny all 规则生效
可以利用squid对客户端IP地址(段)进行过滤。
测试用例b:
将测试用例a中 acl safeports port 80 21 443 规则改为 acl safeports port 80 443
此时将可户端IP设置为192.168.88.30,http请求成功,ftp请求失败
结论:可以利用squid进行端口访问控制。
测试用例c:
在squid.conf中加入以下规则:
acl badip dst "/usr/local/squid/etc/somebadip" http_access deny badip
则文件/usr/local/squid/etc/somebadip中列出的目标地址被屏蔽。
NOTE: 在此例中,文件中保存的是一些站点的IP地址,如果要用域名代替,则应用dstdomain代替规则中的dst。
结论: 可以用squid进行目标地址过滤 |