码迷,mamicode.com
首页 > 其他好文 > 详细

CENTOS 6.6 下squid 安装配置

时间:2015-05-08 00:17:34      阅读:387      评论:0      收藏:0      [点我收藏+]

标签:服务器安全   代理服务器   blank   模型   target   

一、代理服务器

代理服务器(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 %&gt;a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}&gt;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.51cto.com/730423/297023

http://bbs.51cto.com/thread-564760-1.html

http://www.cnblogs.com/mchina/p/3812190.html

三篇文章 ,感谢三位博主!

CENTOS 6.6 下squid 安装配置

标签:服务器安全   代理服务器   blank   模型   target   

原文地址:http://wuxiaocong.blog.51cto.com/4903726/1643933

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!