ysoren 发表于 2018-12-26 10:33:18

squid的简单应用

  squid的简单应用
  一.squid(代理服务器)的作用:
  1. 通过缓存的方式为用户提供WEB服务加速
  2. 对用户的WEB访问做访问控制
  二.代理服务器分为以下三类:
  1. 普通代理服务
  2. 透明代理服务
  3. 方向代理服务
  三squid的基本配置:
  1. 安装squid的软件包为:squid-2.6.STABLE21-3.el5
  2. squid的运行进程为:squid
  3. 运行squid的二进制文件为:/etc/init.d/squid
  4. squid的监听端口为:3128(tcp)
  5. squid的主配置脚本为:/etc/squid/squid.conf
  6. squid的日志记录存放:/var/log/squid/access.log
  四. squid主配置文件常用的配置项
  1. http_port 定义squid的监听端口的,默认为3128
  2. cache_mem 定义为squid分配内存的大小,默认为64M
  3. visible_hostname 定义配置为可见的主机名,默认没有此项,需手动添加
  4. cache_dir 定义缓存存放的目录
  5. cache_mgr 定义管理员的邮箱
  6. error_directory 定义错误提示的语言
  7. reply_body_max_size 定义用户传输的最大数据
  五.普通代理服务(为内网用户代理上网)
  实验环境:内网的网卡eth1:192.168.23.23,内网的客户机ip:192.168.23.25
  外网卡eth0:192.168.0.43 ,web服务器的地址为:192.168.0.254
  (这里的实验环境为实验室,如有需要,可根据实际情况进行改动)
  1. 修改主配置文件:
  (1)visible_hostname定义为: proxy.test.com
http://blog.运维网.com/attachment/201003/8/1306558_12680627601KnY.jpg
  (2)用户的最大传输数据位:10M
http://blog.运维网.com/attachment/201003/8/1306558_1268062761dHP5.jpg
  (3)访问控制列表定义为allow all
http://blog.运维网.com/attachment/201003/8/1306558_1268062762RgSn.jpg
  (4)监听端口定义为内网卡的8080端口:
http://blog.运维网.com/attachment/201003/8/1306558_1268062763Uois.jpg
  (5)定义错误提示的语言为中文
http://blog.运维网.com/attachment/201003/8/1306558_1268062764kq5T.jpg
  (6)定义管理员的邮箱地址:
http://blog.运维网.com/attachment/201003/8/1306558_1268062765fJ3D.jpg
  2. 初始化squid的缓存目录:
http://blog.运维网.com/attachment/201003/8/1306558_1268062766ggo3.jpg3.分析是否有语法错误:
http://blog.运维网.com/attachment/201003/8/1306558_1268062766ylss.jpg
  3.启动squid服务:
http://blog.运维网.com/attachment/201003/8/1306558_1268062767nEp3.jpg
  4. 做客户端的设置,这里以Firefox为例:
  (1) 打开工具栏中的“编辑”-----》“首选项”-----》“高级”-----》“网络”----》”设置”-----》“手动配置代理“
http://blog.运维网.com/attachment/201003/8/1306558_1268062769XIUt.jpg
  设置代理地址为内网卡的ip:192.168.23.23,代理端口为8080,然后点击“确定“退出。
  5. 我们去做一下测试:
http://blog.运维网.com/attachment/201003/8/1306558_12680627722yJV.jpg
  ,可以看到我们能正常的访问到远程服务器。
  6. 我们去下载大于10M的文件:
http://blog.运维网.com/attachment/201003/8/1306558_1268062775qk5a.jpg
  可以看到,被拒绝,在图中也可以看到我们刚刚做的设置
  六. ACL的访问控制
  1. 应用访问控制的方式:
  定义acl列表:
  acl 列表名称 列表类型 列表内容
  针对列表进行限制
  http_access allow或deny 列表名
  2. 常用的acl的列表类型
  src 基于源地址的控制
  des 基于目的地址的控制
  port 基于来目的端口的控制
  srcdomain 基于源域名的控制
  desdomain 基于目的域名的控制
  time 基于时间的控制
  proto 基于协议的控制,只能控制http和ftp协议
  maxconn 基于一个ip最大的连接数的控制
  url-regex 基于全路径中字符的控制
  urlpath_regex 基于非必须全路径的控制
  3. 访问控制规则的匹配顺序:
  (1) 没有设置任何规则时将拒绝所有客户端的访问请求
  (2) 有规则但是找不到相匹配的规则时:将采用与最后一条规则相反的权限,如果最后一条的规则为allow,那么就拒绝客户端的请求,否则就允许该请求
  4. 设置不能下载以.pdf结尾的文件:
http://blog.运维网.com/attachment/201003/8/1306558_1268062775QJJ3.jpg
  然后重新读取一下配置文件;
http://blog.运维网.com/attachment/201003/8/1306558_1268062776GCQd.jpg
  我们试着下载一个pdf格式的文件:
http://blog.运维网.com/attachment/201003/8/1306558_1268062779Qa1i.jpg
  如图,访问遭到拒绝。
  5. 设置基于协议的控制
http://blog.运维网.com/attachment/201003/8/1306558_1268062779yj9E.jpg
  重新读取一下配置文件
  6. 然后我们再去访问远程主机:
http://blog.运维网.com/attachment/201003/8/1306558_12680627817opj.jpg
  可以看到访问被拒绝。
  7. 设置基于时间的访问控制(注意:设置基于时间的访问控制的时候,起始时间必须小于结束时间)
http://blog.运维网.com/attachment/201003/8/1306558_1268062782YOLS.jpg
  我现在的时间为:
http://blog.运维网.com/attachment/201003/8/1306558_1268062783SUfe.jpg
  再重新去读一下配置文件,然后再去做验证:
http://blog.运维网.com/attachment/201003/8/1306558_1268062785eeXZ.jpg
  可以看到访问被拒绝。
  七. 配置透明代理:
  现在的企业上网大部分采用的就是这种方法,客户机浏览器
  不需要在浏览器中指定代理服务器的地址、端口
  配置要求:
  (1)代理服务程序能够支持透明代理
  (2)设置防火墙规则,将客户机的Web访问数据自动重定向给代理服务程序处理
  1.修改主配置文件,设置监听的地址和监听的端口号:
http://blog.运维网.com/attachment/201003/8/1306558_1268062786irpE.jpg
  禁用刚才我们做的ACL,重新读取配置文件
  2. 配置iptables的规则:
  iptables –t nat –A PREROUTING –i eth1 –s 192.168.23.0/24 –p tcp –dport 80 –j REDIRECT –to-port 8080
http://blog.运维网.com/attachment/201003/8/1306558_1268062788RpfB.jpg
  3. 然后我们取消刚才Forefox浏览器中的代理:
  http://blog.运维网.com/attachment/201003/8/1306558_1268062790lcFm.jpg
  4. 我们再去验证一下:
http://blog.运维网.com/attachment/201003/8/1306558_1268062792fyuH.jpg
  可以看到,我们能正常的访问远程主机。



页: [1]
查看完整版本: squid的简单应用