Squid是一个缓存Internet数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid发出一个申请,要Squid代替其进行下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且,Squid可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。
实验环境:vmwareworkstation,两个linux操作系统作为服务器,一个作为外网的web服务器,一个作为代理服务器。
代理服务器以字符界面运行,web服务器以图形界面运行
同时,网络适配器设置为自定义:VMnet1
设置web服务器的ip地址
清楚防火墙规则
进入web服务的默认目录,创建网页
启动服务
设置代理服务器的ip地址,一个用于外网,一个用于内网
清除防火墙的规则
设置代理服务器的配置文件(/etc/squid/squid.conf)
在末行模式下输入:set nu(每行都会出现行号,方便同学们的理解)
末行模式下输入/http_port,按n搜索关键字“http_port”
在54行处去除注释
#http_port3128改为http_port 3128
设置监听的端口号
末行模式下输入 /cache_mem 按n往下查找关键字
在482行处将#cache_mem 8MB 改为cache_mem 8MB
设置内存的缓冲大小
末行模式下输入 /cache_dir 按n往下查找关键字
在697行处将#号去除
设置硬盘缓冲大小
文件配置完成后保存
执行squid �Cz Squid根据配置文件重建缓存
并且执行service squid start启动squid服务
这个时候客户端访问浏览器还是不行
所以,需要在浏览器上设置代理
Squid代理服务器还可以通过acl进行一些限制访问
实验案例
内网的用户(销售部)192.168.32.10-192.168.32.20星期一至星期五任何时刻都可进行上网
其他用户只能下班17点后才可访问网络
局域网的ip地址是192.168.32.0/24
查看acl关键字,1818-1833是对acl有关的定义,我们可以进行编辑
在1819行-1821行插入如下的代码
定义一些acl访问控制表中所用到的参数
Acl salessrc设置销售部端所用到的ip地址
Aclmylan src设置局域网段的ip地址
Aclwktime time设置时间,其中wktime是自行定义的,用户可以另行设置
M表示星期一
H表示星期二
W表示星期三
H表示星期四
F表示星期五
修改1883行处
http_access allowsales表示允许销售部访问
http_access deny mylanwktime 拒绝局域网的用户(除销售部的)在限定的时间内访问
http_access allow all 允许访问
利用销售部的ip在客户端进行测试进行访问
将客户端的ip地址改成销售部外的ip地址进行测试
结果如下
因为我们之前定义参数的时候局域网的用户星期一至星期五17点后才可以访问网络
所以我们现在修改一下系统的时间查看结果
以下的命令表示修改日期为5月31号17点30分,年份是2013年
客户端测试