Squid是linux系统中常用的一款开源代理服务软件,可以很好地实现HTTP和FTP ,以及DNS查询,SSL等应用的缓存代理,功能十分强大
作为应用层的代理服务器软件,Squid主要提供缓存加速,应用层过滤控制的功能
1 代理的工作机制
{1}当客户机通过代理来请求Web页面时,
{2}指定的代理服务器会检查自己的缓存,
{3}如果缓存中已经有客户机需要的页面,
{4}则直接将缓存中的内容反馈给客户机,
{5}如果缓存中没有客户机要访问的页面,
{6}则由代理服务器向lnternet发送请求,当获得返回的web页面以后,将网页数据保存到缓存中在发送给客户机。
2 squid服务的作用
{1}.加快对http访问的速度
{2}.提高安全性)(客户机的Web访问请求实际上是由代理服务器完成的,从而可以隐藏用户的真IP地址)
{3}.能够进行访问控制(代理服务器担任着类似“经纪人”的角色,所以会针对要访问的目标,客户机的地址,访问的时间等进行过滤控制)
3代理的基本类型
l 传统代理:需要在客户机的浏览器、相关的工具上手动设置代理服务器的地址和端口,访问的网页域名也是由代理服务器进行解析的
l 透明代理:客户不需要指定代理服务器的地址和端口,而是通过网关,由防火墙的重定向策略将用户的请求交给代理服务器处理;域名解析有客户机完成
实验要求:
1.所有的局域网pc通过共享ip(ip地址为200.1.1.1)的方式接入internet,用于非web访问协议的访问(如dns,ftp,mail等等)
2.当局域网pc访问internet中的web站点(80、443端口)时,自动使用代理
3.针对局域网pc的web访问进行控制,主要要求如下。
l 禁止下载扩展名为.3pg 、.mp4、.f4v、.mkv、.rmvb、.avi的视频文件
l 超过4MB大小的文件不尽兴缓存,禁止下载超过10MB的文件
l 设置网站黑名单,禁止访问位于.qq.com、.msn.com域下的web站点
l 允许在正常的上班时间(周一到周五的8:30~17:30)使用代理服务
l 默认策略设置为禁止任何客户机使用代理服务
一、安装squid
1.解压(挂载squid光盘)
2.配置、编译、安装
--sysconfdir= /etc //单独将配置文件修改到其他目录
--enable-linux-netfilter //使用内核过滤
--enable-linux-tproxy //支持透明模式
--enable-err-languge=”....” //错误信息的显示语言
--enable-underscore //允许URL中有下划线
--enable-poll //使用poll()模式
--enable-gnuregex //使用GNU正在表达式
3.创建连接文件、创建用户和组
4.编辑squid配置文件
[root@centos2 squid-3.4.6]#vim /etc/squid.conf
省略部分内容
cache_effective_user squid //指定squid程序用户
cache_effective_group squid //程序基本组账户,需要手工添加
visible_hostname centos2.benet.com //手工添加主机名,,需要手工添加
cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256 //设置缓存目录的大小,一级子目录和二级子目录的个数(默认有此项,去点前面的#)
5.squid的运行控制
1)检查配置文件语法是否正确
2)启动 停止 squid
// -z 用来初始化缓存目录
启动服务
二、构建代理服务器
(一)传统代理
1.squid服务器的配置
(1)修改squid.conf配置文件
http_access allow all //允许任意客户机使用代理服务器,放在http_access deny all前面(注意不加也可以,如果客户机地址正好时192.168.段就不用加,因为在squid.conf中有一个acl localnet src 192.168.0.0/16,http_access allow localnet)
(2)在防火墙上添加允许的策略
(3)配置dns服务器,为web站点注册域名www.benet.com
(4)在squid代理服务器上填写好dns服务器的地址(这一点特别注意,要求代理服务器本身可以解析域名)
#vim /etc/resolv.conf
(5)重启squid代理服务
2.客户机的代理配置
(1)客户机不用填写网关和dns服务器地址,完全由squid代理解析
在浏览器中 选择 “工具” lnternet选项,弹出lnternet选项对话框,在“连接”选项卡中“局域网LAN”设置
2)代理服务的验证方法
①查看squid访问日志的新增记录
②查看web访问日志的新增记录
注意:当客户机再次访问同一个web页面时,squid访问日志会增加新的记录,但web访问日志中的记录不会发生变化(除非页面变更或执行强制刷新等操作),这说明当客户机重复访问同一个静态页面时,实际上是由代理服务器通过缓存提供的
本文出自 “12179708” 博客,谢绝转载!
原文地址:http://cyycyy.blog.51cto.com/12179708/1929569