共计 5915 个字符,预计需要花费 15 分钟才能阅读完成。
Squid简介:
Squidcache(简称为 Squid)是一个流行的自由软件(GNU 通用公共许可证)的代理服务器和 Web 缓存服务器。Squid有广泛的用途,从作为网页服务器的前置 cache 服务器缓存相关请求来提高 Web 服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在 Linux 一类系统运行。
正向代理:局域网访问外网
1、snat模式
网络层次:网络层
如果局域网的用户访问外网走 snat 模式,同一个数据包,改变数据包头部的来源地址,再把数据包发到internet。
安全控制:基于网络层传输层
网络层安全:来源地址目标地址
传输层安全:协议:tcp、udp端口号:来源端口、目标端口标志位:syn、ack、finrst
2、代理服务器模式
不改变数据包头信息,把数据包代理给 internet 的服务器
网络层次:应用层
基于应用层的过滤:微软开发的软件防火墙ISAinternetsecurityaccelerate
Linux系统的 squid 服务器
安全控制:网络层传输层应用层
网络层安全:来源地址目标地址
传输层安全:协议:tcp、udp端口号:来源端口、目标端口标志位:syn、ack、finrst
应用层安全:协议:http、ftp、pop、smtp、p2p内容过滤 url 过滤、域名过滤
代理服务器的缺陷:基于少量的应用协议,支持的应用少。
反向代理:internet用户访问局域网服务器
Squid做反向代理服务器,把用户的请求转发到后方的真实的服务器,可以做到负载均衡的效果。
squid正向代理拓扑图:
Squid的应用
一:实现正向代理
二:安全控制
三:透明代理
四:反向代理
一:实现正向代理
准备工作:
1、设置内网接口 eth0 接口,和外网接口 eth1 的ip地址
安装 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 服务
切换到 /var/spool/squid 目录将会看到 16 个一级子目录
每一个子目录下面将会形成 256 个二级子目录,切换到 00 目录下
做简单的测试:内网访问外网
设置局域网中的一台主机的浏览器属性 — 连接 — 局域网设置 — 代理服务器,添加代理服务器的 ip 地址和端口
访问失败得到一个出错页面是由 192.168.2.100 产生的
因为 squid 的默认策略是除了他自己可以访问外网外,其他拒绝所有
打开 squid 的配置文件,定义允许内网用户上网的元素,添加策略
重启 squid 服务
打开浏览器再次测试上网成功
第一次访问页面返回类型是 TCP_MISS, 说明还没有被缓存
再次访问将是:TCP_IMS_HIT说明数据已经被缓存,是从 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, 将不能访问到出现错误。
2,控制一个地址段,拒绝 192.168.2.200-192.168.2.210 这台主机上网,定义策略,创建访问控制列表。
测试访问 http://www.sina.com, 将不能访问到出现错误
换一个地址比如说192.168.2.220,测试一下,就可以上网了
3,定义基于时间控制的策略,初试时间要小于结束时间,被拒绝的主机上班时间不能上网,下班可以
aclworktimetime06:00-20:00
http_accessdenybadpcworktime
Ip地址改为192.168.2.200,现在的时间为
root@localhost~]#date102509252013
FriOct2509:25:00PDT2013
上班时间
测试访问http://www.sina.com,将是拒绝的
修改时间为下班时间再次访问
[root@localhost~]#date102521252013
FriOct2521:25:00PDT2013
用!取反也可以
http_accessallowlocalhost
http_accessallowbadpc!worktime
http_accessdenyall
下班时间允许访问
4,基于 URL 的安全控制,定义访问策略元素,基于 url 的控制元素是url_regex。
aclbadsiteurl_regex-ihttp://www.sina.com.cn
http_accessdenybadsite
http_accessallowall
http_accessdenyall
访问新浪网测试,被拒绝
结合通配符 * 号使用,在 url 中任何以 .sina.com.cn 为结尾的网站都是被拒绝的
aclbadsiteurl_regex-ihttp://.*.sina.com.cn
http_accessdenybadsite
http_accessallowall
http_accessdenyall
5,基于 url 的控制,任何中间出现.sina,两边是任意字符的网站都是被拒绝的
aclbadsiteurl_regex-ihttp://.*.sina.*
http_accessdenybadsite
http_accessallowall
http_accessdenyall
6,基于网页内容图片的过滤,策略元素类型是urlpath_regex,
aclbadcontenturlpath_regex-i\.jpg$
aclbadcontenturlpath_regex-i\.png$
aclbadcontenturlpath_regex-i\.gif$
http_accessdenybadcontent
7、基于域名的控制,策略元素类型是 dstdomian, 禁止发往 sina.com.cn 与baidu.com这两个域的任何主机的任何请求。
aclsinadstdomain.sina.com.cn
aclbaidudstdomain.baidu.com
http_accessdenysina
http_accessdenybaidu
http_accessallowall
http_accessdenyall
Squid简介:
Squidcache(简称为 Squid)是一个流行的自由软件(GNU 通用公共许可证)的代理服务器和 Web 缓存服务器。Squid有广泛的用途,从作为网页服务器的前置 cache 服务器缓存相关请求来提高 Web 服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在 Linux 一类系统运行。
正向代理:局域网访问外网
1、snat模式
网络层次:网络层
如果局域网的用户访问外网走 snat 模式,同一个数据包,改变数据包头部的来源地址,再把数据包发到internet。
安全控制:基于网络层传输层
网络层安全:来源地址目标地址
传输层安全:协议:tcp、udp端口号:来源端口、目标端口标志位:syn、ack、finrst
2、代理服务器模式
不改变数据包头信息,把数据包代理给 internet 的服务器
网络层次:应用层
基于应用层的过滤:微软开发的软件防火墙ISAinternetsecurityaccelerate
Linux系统的 squid 服务器
安全控制:网络层传输层应用层
网络层安全:来源地址目标地址
传输层安全:协议:tcp、udp端口号:来源端口、目标端口标志位:syn、ack、finrst
应用层安全:协议:http、ftp、pop、smtp、p2p内容过滤 url 过滤、域名过滤
代理服务器的缺陷:基于少量的应用协议,支持的应用少。
反向代理:internet用户访问局域网服务器
Squid做反向代理服务器,把用户的请求转发到后方的真实的服务器,可以做到负载均衡的效果。
squid正向代理拓扑图:
Squid的应用
一:实现正向代理
二:安全控制
三:透明代理
四:反向代理
一:实现正向代理
准备工作:
1、设置内网接口 eth0 接口,和外网接口 eth1 的ip地址
安装 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 服务
切换到 /var/spool/squid 目录将会看到 16 个一级子目录
每一个子目录下面将会形成 256 个二级子目录,切换到 00 目录下
做简单的测试:内网访问外网
设置局域网中的一台主机的浏览器属性 — 连接 — 局域网设置 — 代理服务器,添加代理服务器的 ip 地址和端口
访问失败得到一个出错页面是由 192.168.2.100 产生的
因为 squid 的默认策略是除了他自己可以访问外网外,其他拒绝所有
打开 squid 的配置文件,定义允许内网用户上网的元素,添加策略
重启 squid 服务
打开浏览器再次测试上网成功
第一次访问页面返回类型是 TCP_MISS, 说明还没有被缓存
再次访问将是:TCP_IMS_HIT说明数据已经被缓存,是从 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 端口,然后数据包到达代理服务器,代理服务器有缓存就直接发给用户,如果没有,把数据包发往外网,端口的替换需要靠 iptables 的nat表的 PREROTING 链路由判断之前来实现的。
但是,代理服务器的代理功能有限仅限于 httpftp 等协议,而数据包头部的目标 ip 地址的解析需要靠 dns 协议,dns是不能被代理服务器代理的,所以 nds 的解析需要靠 SNAT 技术,而 snat 的实现,需要 linux 的软件防火墙 netfilter 的iptables架构。
要做 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
端口实现是重定向靠 iptables 的nat表的路由判断之前 PREROUTING 链
[root@localhost~]#iptables-tnat-APREROUTING-s192.168.2.0/24-ptcp–dport80-jREDIRECT–to-port3128
告诉 squid 要实现透明代理打开配置文件
931http_port3128transparent
打开内网用户在浏览器取消代理功能,测试 dns 请求,以及上网
四:squid做 反向代理服务器
反向代理服务器的原理:
反向代理服务器的工作原理是 DNAT 技术,外网用户访问内网中的服务器时,用户访问的代理服务器的外卡接口地址,代理服务器把请求转发给后方内网真是的服务器。
Squid做反向代理服务器的拓扑图:
Squid做反向代理服务器实现后方 web 服务器的访问
1,定义虚拟主机代理地址和端口
http_port192.168.1.4:80vhost
2,设置反向代理功能
1196行cache_peer192.168.2.210parent800originserver
注释:cache_peer指的是后方真是 web 服务器
Parent指的是代理服务器的类型,代理服务器与后方真是服务器之间的关系
80指的是代理端口
0指的是后方服务器的任意端口
Originserver指的是原始服务器,也就是代理服务器
测试一下访问http://192.168.1.4/index.html