当前位置:网站首页>重量级代理缓存服务器Squid
重量级代理缓存服务器Squid
2022-06-12 10:34:00 【星哥玩云】
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的缓存目录中得到的数据
二:安全控制
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,现在的时间为
[email protected]~]#date102509252013
FriOct2509:25:00PDT2013
上班时间
测试访问http://www.sina.com,将是拒绝的
修改时间为下班时间再次访问
[[email protected]~]#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做透明代理
透明代理的原理:
当内网的用户,不知道代理服务器的代理端口和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链
[[email protected]~]#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
边栏推荐
- 2022 Taobao 618 Super Cat Games introduction 618 super cat games playing skills
- Common port description
- 看看你有没有陷入“标签化”客户和 用户 的陷阱?
- LVS基于应用层的健康状态检测
- Binassii module - converting between binary and ASCII
- How to refund the pre-sale deposit of JD 618 in 2022? Can JD 618 deposit be refunded?
- 人脸识别pip 安装dlib库失败
- AcWing 132. 小组队列(队列模拟题)
- 命名规范/注释规范/逻辑规范
- Vite Basics
猜你喜欢

【机器学习】基于鸢尾花(iris)数据集的逻辑回归分类实践

2022淘宝618超级喵运会怎么玩?2022淘宝618喵运会玩法技巧

k52.第一章 基于kubeadm安装kubernetes v1.22 -- 集群部署

The solution of Lenovo notebook ThinkPad t440 WiFi unable to connect to the Internet

Properties Chinese garbled code

2022 Taobao 618 Super Cat Games introduction 618 super cat games playing skills

人脸识别pip 安装dlib库失败

Grid layout

Malicious code analysis practice - lab06-01 exe~Lab06-04. Exe dynamic analysis

2022京东618预售定金怎么退?京东618定金能退吗?
随机推荐
Leetcode2154. Multiply the found value by 2 (binary search)
PHP get (remote) large file method record
session_ start(): Cannot send session cache limiter - headers already sent
A snare - Cookie spoofing
Leetcdoe 2037. 使每位学生都有座位的最少移动次数(可以,一次过)
PHP generate schedule
Malicious code analysis practice - use IDA pro to analyze lab05-01 dll
How the ArrayList collection implements ascending and descending order
How to upload the video on the computer to the mobile phone without network
Php:redis uses geospatial
Valentina Studio Pro for Mac(mac数据库管理软件)
使用cpolar远程办公(2)
LVS基于应用层的健康状态检测
JS scale down the width and height of the picture
Pagoda chevereto1.6.2 the latest version of stepping on the pit tutorial in Chinese
Malicious code analysis practice - lab06-01 exe~Lab06-04. Exe dynamic analysis
k53.第二章 基于二进制包安装kubernetes v1.22 --集群部署
Amélioration de la 3dsc par HSC
Malicious code analysis practice -- using apatedns and inetsim to simulate network environment
性能指标的信仰危机