设为首页 收藏本站
查看: 1186|回复: 0

[经验分享] CENTOS 6.6 下squid 安装配置

[复制链接]

尚未签到

发表于 2018-12-28 06:03:32 | 显示全部楼层 |阅读模式
  
  一、代理服务器
  代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和Local Area Network(局域网)。
  Squid cache(简称为Squid)是一个流行的自由软件,它符合GNU通用公共许可证。Squid作为网页服务器的前置cache服务器,可以代理用户向web服务器请求数据并进行缓存,也可以用在局域网中,使局域网用户通过代理上网。Squid主要设计用于在Linux一类系统运行。
  squid 分类
  按照代理类型的不同,可以将Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理。
  · 普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;
  · 透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;
  · 反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
  官方地址:http://www.squid-cache.org/
  参考文档:http://www.squid-cache.org/Doc/config/
  操作系统:CentOS release 6.4 (Final)
  二、系统环境
  操作系统:CentOS release 6.6 (Final)
  Squid版本:squid-3.1.10-29.el6.i686
  SELINUX=disabled
  HTTP Service: stoped
  防火墙:普通代理模式关闭、其他模式开启
  三、安装Squid服务
  3.1 检查squid软件是否安装
  # rpm -qa|grep squid
  3.2 如果未安装,则使用yum 方式安装
  # yum -y install squid

  3.3 设置开机自启动
  chkconfig --level 35 squid on             //在3、5级别上自动运行squid服务
  四、squid服务器的配置文件说明
  http_port 3128 //设置监听的IP与端口号
  cache_mem 64 MB //额外提供给squid使用的内存,squid的内存总占用为 X * 10+15+“cache_mem”,其中X为squid的cache占用的容量(以GB为单位),比如下面的cache大小是100M,即0.1GB,则内存总占用为0.1*10+15+64=80M,推荐大小为物理内存的1/3-1/2或更多。
  maximum_object_size 4 MB //设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘
  minimum_object_size 0 KB //设置squid磁盘缓存最小文件
  maximum_object_size_in_memory 4096 KB //设置squid内存缓存最大文件,超过4M的文件不保存到内存
  cache_dir ufs /var/spool/squid 100 16 256 //定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量
  logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %h" "%{User-Agent}>h" %Ss:%Sh //log文件日志格式
  access_log /var/log/squid/access.log combined //log文件存放路径和日志格式
  cache_log /var/log/squid/cache.log //设置缓存日志
  logfile_rotate 60 //log轮循 60天
  cache_swap_high 95 //cache目录使用量大于95%时,开始清理旧的cache
  cache_swap_low 90 //cache目录清理到90%时停止。
  acl localnet src 192.168.1.0/24 //定义本地网段
  http_access allow localnet //允许本地网段使用
  http_access deny all //拒绝所有
  visible_hostname centossd //主机名
  cache_mgr xxx@126.com //管理员邮箱
  五、普通代理服务
  即标准的、传统的代理服务,需要客户机在浏览器中指定代理服务器的地址、端口。
  实验拓扑图如下:

  5.1 配置Squid 代理服务器IP地址
  将eth0的IP地址修改为192.168.1.168(内网地址)
  将eth1的IP地址修改为192.168.0.128(外网地址)
  配置好后如下图所示:

  5.2 编辑squid 主配置文件/etc/squid/squid.conf
  把已存在的配置文件备份mv /etc/squid/squid.conf /etc/squid/squid.conf.bak
  编辑配置文件vi /etc/squid/squid.conf
  http_port 3128
  cache_mem 64 MB
  maximum_object_size 4 MB
  cache_dir ufs /var/spool/squid 100 16 256
  access_log /var/log/squid/access.log
  acl localnet src 192.168.1.0/24
  http_access allow localnet
  http_access deny all
  visible_hostname centossd
  cache_mgr xxx@126.com // 可以不添加
  5.3 初始化
  # squid –z
  几个常用命令

  5.4 启动Squid

  5.5 配置Web 服务器
  配置服务器再次不做详述
  查看web服务器ip地址

  5.6 配置客户端IP地址

  5.7 配置浏览器代理

  5.8 测试

  测试成功。
  如若想测试域名访问可以通过设置本地dns或者修改hosts文件来测试,此处不做详述。
  通过上图可以看到客户端可以和代理服务器端通信,不能和web服务器通信。
  5.9 测试错误页面

  可以看到在squid 配置文件里设置的参数在错误页面里的显示。
  六、透明代理服务
  适用于企业的网关主机,客户机不需要指定代理服务器地址、端口等信息,通过iptables将客户机的Web访问数据转交给代理服务程序处理。
  实验拓扑图如下:

  
  6.1 修改squid 主配置文件/etc/squid/squid.conf
  在http_port 3128 后添加transparent 关键字。
  http_port 3128 transparent
  cache_mem 64 MB
  maximum_object_size 4 MB
  cache_dir ufs /var/spool/squid 100 16 256
  access_log /var/log/squid/access.log
  acl localnet src 192.168.1.0/24
  http_access allow localnet
  http_access deny all
  visible_hostname centossd
  cache_mgr xxx@126.com
  6.2 reload
  reload 让上面的配置生效。
  # /etc/init.d/squid reload
  6.3 添加iptables规则,把内部的http请求重定向到3128端口
  a) 启动iptables服务
  b) [root@localhost Desktop]# service iptables start
  c) iptables: Applying firewall rules: [ OK ]
  d) 清除现有规则

  e) 保存iptables 设置

  f) 查看nat表

  g) 添加nat规则并保存
  配置iptables设定nat,即透明代理   
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128   
如果只设置下面一句而上面一句不设置,客户端也可以上网,只是不通过squid哈~     
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

  保存iptables设置   
service iptables save

  6.4 客户端设置
  1) 设置网络

  将网关设置为代理服务器内网地址
  2) 在浏览器中将使用代理服务器选项勾除。

  6.5 浏览器访问测试

  说明透明代理设置成功
  七、反向代理服务
  为Internet用户访问企业Web站点提供缓存加速。
  实验拓扑图如下:

  内网服务器是server 2008 R2
  7.1 关闭内网服务器防火墙
  7.2 修改Web Server 主页
  创建目录和主页

  7.3 配置squid
  http_port 80 accel vhost //这个参数的用于支持主机映射
  http_access allow all
  cache_peer 192.168.1.118 parent 80 0 originserver round-robin weight=1 //指定第1台真实服务器的位置
  cache_peer 192.168.1.119 parent 80 0 originserver round-robin weight=1 //指定第2台真实服务器的位置
  visible_hostname centossd
  7.4 启动Squid服务

  注:要确保80端口没被使用
  7.6 测试
  squid 采用了round-robin,所以客户端的访问将轮询两台web服务器,采用 "Ctrl + F5" 来深度刷新测试。
  web1

  web2

  八、日志
  再来看看日志信息。如图,所有的行为都被日志记载。
  使用tail –f 可以实时监控日志最后一行的变化。

  注: 此文有参阅http://zpp2009.blog.运维网.com/730423/297023
  http://bbs.运维网.com/thread-564760-1.html
  http://www.cnblogs.com/mchina/p/3812190.html
  三篇文章 ,感谢三位博主!




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-656574-1-1.html 上篇帖子: Squid日志分析软件SARG安装实测 下篇帖子: freebsd中启动和停止squid的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表