阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

重量级代理缓存服务器Squid

132次阅读
没有评论

共计 5915 个字符,预计需要花费 15 分钟才能阅读完成。

Squid简介:

Squidcache(简称为 Squid)是一个流行的自由软件(GNU 通用公共许可证)的代理服务器和 Web 缓存服务器。Squid有广泛的用途,从作为网页服务器的前置 cache 服务器缓存相关请求来提高 Web 服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在 Linux 一类系统运行。

正向代理:局域网访问外网

1、snat模式

网络层次:网络层

如果局域网的用户访问外网走 snat 模式,同一个数据包,改变数据包头部的来源地址,再把数据包发到internet

安全控制:基于网络层传输层

网络层安全:来源地址目标地址

传输层安全:协议:tcpudp端口号:来源端口、目标端口标志位:synackfinrst

2、代理服务器模式

不改变数据包头信息,把数据包代理给 internet 的服务器

网络层次:应用层

基于应用层的过滤:微软开发的软件防火墙ISAinternetsecurityaccelerate

Linux系统的 squid 服务器

 

安全控制:网络层传输层应用层

网络层安全:来源地址目标地址

传输层安全:协议:tcpudp端口号:来源端口、目标端口标志位:synackfinrst

应用层安全:协议:httpftppopsmtpp2p内容过滤 url 过滤、域名过滤

代理服务器的缺陷:基于少量的应用协议,支持的应用少。

 

反向代理:internet用户访问局域网服务器

Squid做反向代理服务器,把用户的请求转发到后方的真实的服务器,可以做到负载均衡的效果。

squid正向代理拓扑图:

重量级代理缓存服务器 Squid

Squid的应用
一:实现正向代理

二:安全控制

三:透明代理

四:反向代理

一:实现正向代理

准备工作:

1、设置内网接口 eth0 接口,和外网接口 eth1ip地址

重量级代理缓存服务器 Squid

重量级代理缓存服务器 Squid

安装 squid 服务器的 rpm

rpm-ivhsquid-2.6.STABLE21-3.el5.i386.rpm

 

打开 squid 的配置文件

919http_port3128

2994visible_hostname192.168.2.100#当访问出错时,squid将会返回一个出错页面,这个出错页面是由192,168.2.100(这里可以是任意名称)提示产生的。

启动 squid 服务

重量级代理缓存服务器 Squid

切换到 /var/spool/squid 目录将会看到 16 个一级子目录

重量级代理缓存服务器 Squid

每一个子目录下面将会形成 256 个二级子目录,切换到 00 目录下

重量级代理缓存服务器 Squid

做简单的测试:内网访问外网

设置局域网中的一台主机的浏览器属性 连接 局域网设置 代理服务器,添加代理服务器的 ip 地址和端口

重量级代理缓存服务器 Squid

访问失败得到一个出错页面是由 192.168.2.100 产生的

 

重量级代理缓存服务器 Squid

重量级代理缓存服务器 Squid

因为 squid 的默认策略是除了他自己可以访问外网外,其他拒绝所有

打开 squid 的配置文件,定义允许内网用户上网的元素,添加策略

重量级代理缓存服务器 Squid

重启 squid 服务

打开浏览器再次测试上网成功

重量级代理缓存服务器 Squid

第一次访问页面返回类型是 TCP_MISS, 说明还没有被缓存

重量级代理缓存服务器 Squid

 

再次访问将是:TCP_IMS_HIT说明数据已经被缓存,是从 squid 的缓存目录中得到的数据

重量级代理缓存服务器 Squid

 

更多精彩内容请看下一页:http://www.linuxidc.com/Linux/2013-09/92127p2.htm

推荐阅读:

配置 Squid 代理 http 和 rsync http://www.linuxidc.com/Linux/2013-05/84642.htm

Squid:实现高速的 Web 访问 http://www.linuxidc.com/Linux/2013-04/83512.htm

CentOS 6.2 编译安装 Squid 配置反向代理服务器 http://www.linuxidc.com/Linux/2012-11/74529.htm

Squid 在企业网中的应用 http://www.linuxidc.com/Linux/2012-10/71818.htm

Squid 的详细介绍:请点这里
Squid 的下载地址:请点这里

二:安全控制

1,拒绝 192.168.2.200 这台主机上网,定义策略,创建访问控制列表。

aclbadpcsrc192.168.2.200/255.255.255.255

http_accessallowlocalhost

http_accessdenybadpc

http_accessallowall

测试访问 http://www.sina.com, 将不能访问到出现错误。

重量级代理缓存服务器 Squid

2,控制一个地址段,拒绝 192.168.2.200-192.168.2.210 这台主机上网,定义策略,创建访问控制列表。

重量级代理缓存服务器 Squid

测试访问 http://www.sina.com, 将不能访问到出现错误

重量级代理缓存服务器 Squid

换一个地址比如说192.168.2.220,测试一下,就可以上网了

重量级代理缓存服务器 Squid

 

3,定义基于时间控制的策略,初试时间要小于结束时间,被拒绝的主机上班时间不能上网,下班可以

aclworktimetime06:00-20:00

http_accessdenybadpcworktime

Ip地址改为192.168.2.200,现在的时间为

root@localhost~]#date102509252013

FriOct2509:25:00PDT2013

上班时间

测试访问http://www.sina.com,将是拒绝的

重量级代理缓存服务器 Squid

修改时间为下班时间再次访问

[root@localhost~]#date102521252013

FriOct2521:25:00PDT2013

 

重量级代理缓存服务器 Squid

用!取反也可以

http_accessallowlocalhost

http_accessallowbadpc!worktime

http_accessdenyall

下班时间允许访问

重量级代理缓存服务器 Squid

 

4,基于 URL 的安全控制,定义访问策略元素,基于 url 的控制元素是url_regex

aclbadsiteurl_regex-ihttp://www.sina.com.cn

http_accessdenybadsite

http_accessallowall

http_accessdenyall

访问新浪网测试,被拒绝

重量级代理缓存服务器 Squid

结合通配符 * 号使用,在 url 中任何以 .sina.com.cn 为结尾的网站都是被拒绝的

aclbadsiteurl_regex-ihttp://.*.sina.com.cn

http_accessdenybadsite

http_accessallowall

http_accessdenyall

重量级代理缓存服务器 Squid

5,基于 url 的控制,任何中间出现.sina,两边是任意字符的网站都是被拒绝的

aclbadsiteurl_regex-ihttp://.*.sina.*

http_accessdenybadsite

http_accessallowall

http_accessdenyall

 

重量级代理缓存服务器 Squid

重量级代理缓存服务器 Squid

6,基于网页内容图片的过滤,策略元素类型是urlpath_regex

aclbadcontenturlpath_regex-i\.jpg$

aclbadcontenturlpath_regex-i\.png$

aclbadcontenturlpath_regex-i\.gif$

http_accessdenybadcontent

重量级代理缓存服务器 Squid

7、基于域名的控制,策略元素类型是 dstdomian, 禁止发往 sina.com.cnbaidu.com这两个域的任何主机的任何请求。
aclsinadstdomain.sina.com.cn

aclbaidudstdomain.baidu.com

http_accessdenysina

http_accessdenybaidu

http_accessallowall

http_accessdenyall

 

 

重量级代理缓存服务器 Squid

144733981.png

Squid简介:

Squidcache(简称为 Squid)是一个流行的自由软件(GNU 通用公共许可证)的代理服务器和 Web 缓存服务器。Squid有广泛的用途,从作为网页服务器的前置 cache 服务器缓存相关请求来提高 Web 服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在 Linux 一类系统运行。

正向代理:局域网访问外网

1、snat模式

网络层次:网络层

如果局域网的用户访问外网走 snat 模式,同一个数据包,改变数据包头部的来源地址,再把数据包发到internet

安全控制:基于网络层传输层

网络层安全:来源地址目标地址

传输层安全:协议:tcpudp端口号:来源端口、目标端口标志位:synackfinrst

2、代理服务器模式

不改变数据包头信息,把数据包代理给 internet 的服务器

网络层次:应用层

基于应用层的过滤:微软开发的软件防火墙ISAinternetsecurityaccelerate

Linux系统的 squid 服务器

 

安全控制:网络层传输层应用层

网络层安全:来源地址目标地址

传输层安全:协议:tcpudp端口号:来源端口、目标端口标志位:synackfinrst

应用层安全:协议:httpftppopsmtpp2p内容过滤 url 过滤、域名过滤

代理服务器的缺陷:基于少量的应用协议,支持的应用少。

 

反向代理:internet用户访问局域网服务器

Squid做反向代理服务器,把用户的请求转发到后方的真实的服务器,可以做到负载均衡的效果。

squid正向代理拓扑图:

重量级代理缓存服务器 Squid

Squid的应用
一:实现正向代理

二:安全控制

三:透明代理

四:反向代理

一:实现正向代理

准备工作:

1、设置内网接口 eth0 接口,和外网接口 eth1ip地址

重量级代理缓存服务器 Squid

重量级代理缓存服务器 Squid

安装 squid 服务器的 rpm

rpm-ivhsquid-2.6.STABLE21-3.el5.i386.rpm

 

打开 squid 的配置文件

919http_port3128

2994visible_hostname192.168.2.100#当访问出错时,squid将会返回一个出错页面,这个出错页面是由192,168.2.100(这里可以是任意名称)提示产生的。

启动 squid 服务

重量级代理缓存服务器 Squid

切换到 /var/spool/squid 目录将会看到 16 个一级子目录

重量级代理缓存服务器 Squid

每一个子目录下面将会形成 256 个二级子目录,切换到 00 目录下

重量级代理缓存服务器 Squid

做简单的测试:内网访问外网

设置局域网中的一台主机的浏览器属性 连接 局域网设置 代理服务器,添加代理服务器的 ip 地址和端口

重量级代理缓存服务器 Squid

访问失败得到一个出错页面是由 192.168.2.100 产生的

 

重量级代理缓存服务器 Squid

重量级代理缓存服务器 Squid

因为 squid 的默认策略是除了他自己可以访问外网外,其他拒绝所有

打开 squid 的配置文件,定义允许内网用户上网的元素,添加策略

重量级代理缓存服务器 Squid

重启 squid 服务

打开浏览器再次测试上网成功

重量级代理缓存服务器 Squid

第一次访问页面返回类型是 TCP_MISS, 说明还没有被缓存

重量级代理缓存服务器 Squid

 

再次访问将是:TCP_IMS_HIT说明数据已经被缓存,是从 squid 的缓存目录中得到的数据

重量级代理缓存服务器 Squid

 

更多精彩内容请看下一页:http://www.linuxidc.com/Linux/2013-09/92127p2.htm

推荐阅读:

配置 Squid 代理 http 和 rsync http://www.linuxidc.com/Linux/2013-05/84642.htm

Squid:实现高速的 Web 访问 http://www.linuxidc.com/Linux/2013-04/83512.htm

CentOS 6.2 编译安装 Squid 配置反向代理服务器 http://www.linuxidc.com/Linux/2012-11/74529.htm

Squid 在企业网中的应用 http://www.linuxidc.com/Linux/2012-10/71818.htm

Squid 的详细介绍:请点这里
Squid 的下载地址:请点这里

三:squid做透明代理

透明代理的原理:

当内网的用户,不知道代理服务器的代理端口和 ip 地址时,要想上网就不能走正向代理。

用户的网管指向代理服务器的内卡地址 192.168.2.100,当发送一个数据包到达代理服务器的内卡地址时,在系统内部,代理服务器会把原数据包端口80 替换为代理服务器的端口 3128 端口,然后数据包到达代理服务器,代理服务器有缓存就直接发给用户,如果没有,把数据包发往外网,端口的替换需要靠 iptablesnat表的 PREROTING 链路由判断之前来实现的。

但是,代理服务器的代理功能有限仅限于 httpftp 等协议,而数据包头部的目标 ip 地址的解析需要靠 dns 协议,dns是不能被代理服务器代理的,所以 nds 的解析需要靠 SNAT 技术,而 snat 的实现,需要 linux 的软件防火墙 netfilteriptables架构。

要做 nat 转换,打开 linux 的数据包转发功能/etc/sysctl.conf

net.ipv4.ip_forward=1

Sant的实现是靠 iptables 框架中的 nat 表中的 POSTROUTING

iptables-tnat-APOSTROUTING-s192.168.2.0/24-pudp–dport53-oeth1-jSNAT–to192.168.1.4

端口实现是重定向靠 iptablesnat表的路由判断之前 PREROUTING

[root@localhost~]#iptables-tnat-APREROUTING-s192.168.2.0/24-ptcp–dport80-jREDIRECT–to-port3128

告诉 squid 要实现透明代理打开配置文件

931http_port3128transparent

打开内网用户在浏览器取消代理功能,测试 dns 请求,以及上网

 

重量级代理缓存服务器 Squid

重量级代理缓存服务器 Squid

 

四:squid 反向代理服务器

反向代理服务器的原理:

反向代理服务器的工作原理是 DNAT 技术,外网用户访问内网中的服务器时,用户访问的代理服务器的外卡接口地址,代理服务器把请求转发给后方内网真是的服务器。

 

Squid做反向代理服务器的拓扑图:

重量级代理缓存服务器 Squid

 

Squid做反向代理服务器实现后方 web 服务器的访问

1,定义虚拟主机代理地址和端口

http_port192.168.1.4:80vhost

2,设置反向代理功能

1196cache_peer192.168.2.210parent800originserver

注释:cache_peer指的是后方真是 web 服务器

Parent指的是代理服务器的类型,代理服务器与后方真是服务器之间的关系

80指的是代理端口

0指的是后方服务器的任意端口

Originserver指的是原始服务器,也就是代理服务器

测试一下访问http://192.168.1.4/index.html

重量级代理缓存服务器 Squid

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计5915字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中