squid代理缓存服务
man.linuxde.net
1、squid是Linux系统中的代理缓存服务,通常用作WEB网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存。
2、squid服务特点:配置简单、效率高、功能丰富
3、代理缓存服务有正向代理与反向代理之分。正向代理又粪污标准正向代理和透明正向代理
所谓正向代理指让用户通过squid服务获取到网站页面等资源,以及通过访问控制列表(ACL)限制用户访问网站的行为。标准正向代理与透明正向代理的区别是标准代理模式需要用户在浏览器等软件里手动指定代理服务器IP地址与端口号,透明代理模式则不需要。
反向代理模式是指多台节点主机反向缓存网站数据,从而加快用户访问速度。

16.2 配置Squid服务程序
实验准备。squid服务器内网IP 192.168.10.10 外网网卡桥接模式
客户端IP192.168.10.20

安装squid服务
[root@localhost ~]# yum install squid -y
[root@localhost ~]# systemctl start squid
[root@localhost ~]# systemctl enable squid
ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'
一:标准正向代理模式
默认为标准正向代理,只需在客户端浏览器指定代理服务器IP及端口号即可实现代理上网功能。
出现一点小问题:

有可能是服务器防火墙策略规则禁止了代理服务
[root@localhost ~]# iptables -F
[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
再试下就成功了。

四:透明正向代理
透明正向代理与标准正向代理区别是用户不需要指定代理服务器IP与端口,几乎感觉不到代理服务的存在。
降低了用户使用代理服务的门槛,同事更加隐秘的监督与员工的网络连接
在透明代理模式中,用户无须在浏览器或其他软件中配置代理服务器地址、端口号等信息,而是由DHCP服务器将网络配置信息分配给客户端主机。这样只要用户打开浏览器便会自动使用代理服务了

由于当前没有配置SNAT服务,所以客户端无法通外网

想要访问外网,首先要获取到DNS域名解析服务的数据。使用iptables命令实现DNS域名解析服务53号端口的数据转发功能,并允许squid服务转发Ipv4数据包,sysctl -p 使转发参数立即生效
[root@localhost ~]# iptables -t nat -A POSTROUTING -p udp --dport -o eno33554992 -j MASQUERADE
[root@localhost ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward =
返回客户端,重新ping外网,发现虽然还是无妨Ping通,但已经能够获取到外网DNS服务的域名解析数据

与配置SNAT与DNS技术相比,squid服务程序的透明代理模式的配置就要显得简单多了,只需要在主配置文件的监听端口号IP后面加上 transparent(透明的)参数,并将62行硬盘缓冲区大小前的注释符号去掉,保存并退出。使用squid -k parse 命令检测主配置文件是否有错误,squid -z 命令对squid服务的透明代理模式进行初始化。
[root@linuxprobe ~]# vim /etc/squid/squid.conf
………………省略部分输出信息………………
# Squid normally listens to port
http_port transparent # Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid ………………省略部分输出信息………………
[root@linuxprobe ~]# squid -k parse
// ::| Startup: Initializing Authentication Schemes ...
// ::| Startup: Initialized Authentication Scheme 'basic'
// ::| Startup: Initialized Authentication Scheme 'digest'
// ::| Startup: Initialized Authentication Scheme 'negotiate'
// ::| Startup: Initialized Authentication Scheme 'ntlm'
// ::| Startup: Initialized Authentication.
………………省略部分输出信息………………
[root@linuxprobe ~]# squid -z
// :: kid1| Creating missing swap directories
// :: kid1| /var/spool/squid exists
// :: kid1| Making directories in /var/spool/squid/
// :: kid1| Making directories in /var/spool/squid/
// :: kid1| Making directories in /var/spool/squid/
// :: kid1| Making directories in /var/spool/squid/
// :: kid1| Making directories in /var/spool/squid/
// :: kid1| Making directories in /var/spool/squid/
// :: kid1| Making directories in /var/spool/squid/
// :: kid1| Making directories in /var/spool/squid/
// :: kid1| Making directories in /var/spool/squid/
// :: kid1| Making directories in /var/spool/squid/
// :: kid1| Making directories in /var/spool/squid/0A
// :: kid1| Making directories in /var/spool/squid/0B
// :: kid1| Making directories in /var/spool/squid/0C
// :: kid1| Making directories in /var/spool/squid/0D
// :: kid1| Making directories in /var/spool/squid/0E
// :: kid1| Making directories in /var/spool/squid/0F
[root@linuxprobe ~]# systemctl restart squid
在配置妥当重启squid没有报错后,接下来就可以配置SNAT转发功能了,通过iptables将所有客户端主机对网站80端口的请求转发到squid服务器本地的3128端口上。
命令: iptable -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptable -t nat -A POSTROUTING -s 192.168.10.0/24 -o 桥接网卡名 -j SNAT --to 桥接的IP地址
[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport -j REDIRECT --to-ports
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/ -o eno33554992 -j SNAT -to 192.168.1.140
Bad argument `192.168.1.140'
Try `iptables -h' or 'iptables --help' for more information.
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/ -o eno33554992 -j SNAT --to 192.168.1.140
[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
客户端刷新浏览器,发现此时可以上网了

三:ACL访问控制
实验1:只允许IP地址为192.168.10.20的客户端使用服务器上的Squid服务程序提供的代理服务,禁止其余所有的主机代理请求。
[root@localhost ~]# vim /etc/squid/squid.conf
acl client src 192.168.10.30
#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
http_access allow client
http_access deny all
http_access deny !Safe_ports [root@localhost ~]# systemctl restart squid



实验2:禁止所有客户端访问网址中包含linux关键词的网站。
[root@localhost ~]# vim /etc/squid/squid.conf
acl deny_keyword url_regex -i linux
#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
http_access deny deny_keyword
http_access deny !Safe_ports [root@localhost ~]# systemctl restart squid


实验3:禁止所有客户端访问某个特定的网站。www.linuxcool.com
[root@localhost ~]# vim /etc/squid/squid.conf
acl deny_url url_regex http://www.linuxcool.com
#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
http_access deny deny_url
http_access deny !Safe_ports [root@localhost ~]# systemctl restart squid


实验4:禁止员工在企业网内部下载带有某些后缀的文件。(不可在安全超文本传输协议HTTPS中进行限制)
[root@localhost ~]# vim /etc/squid/squid.conf
acl badfile urlpath_regex -i \.rar$ \.mp3$
#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
http_access deny badfile
http_access deny !Safe_ports [root@localhost ~]# systemctl restart squid

实验3:反向代理
实验前为避免冲突,回滚快照,并将主机网卡设置为一块桥接网卡
反向代理是Squid服务程序的一种重要模式,其原理是把一部分原本向网站源服务器发起的用户请求交给Squid服务器缓存节点来处理。但是这种技术的弊端也很明显,如果有心怀不轨之徒将自己的域名和服务器反向代理到某个知名的网站上面,从理论上来讲,当用户访问到这个域名时,也会看到与那个知名网站一样的内容(有些诈骗网站就是这样骗取用户信任的)。因此,当前许多网站都默认禁止了反向代理功能。开启了CDN(内容分发网络)服务的网站也可以避免这种窃取行为。
http://58.247.138.211/
使用Squid服务程序来配置反向代理服务非常简单。首先找到一个网站源服务器的IP地址,然后编辑Squid服务程序的主配置文件,把端口号3128修改为网站源服务器的地址和端口号,此时正向解析服务会被暂停(它不能与反向代理服务同时使用)。然后按照下面的参数形式写入需要反向代理的网站源服务器的IP地址信息,保存退出后重启Squid服务程序。
58 # Squid normally listens to port 3128
59 http_port 您的桥接网卡IP地址:80 vhost
60 cache_peer 网站源服务器IP地址 parent 80 0 originserver
http_port 192.168.0.145: vhost
cache_peer 58.247.138.211 parent originserver
此时访问本地主机IP 。会看到反向代理的网页页面信息

squid代理缓存服务的更多相关文章
- Linux下squid代理缓存服务环境部署
代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载 ...
- 第16章 使用Squid部署代理缓存服务
章节概述: 本章节从代理缓存服务的工作原理开始讲起,让读者能够清晰理解正向代理(普通模式.透明模式)与反向代理的作用. 正确的使用Squid服务程序部署代理缓存服务可以有效提升访问静态资源的效率,降低 ...
- 代理缓存服务之Squid
代理缓存服务 Squid是linux系统中最为流行的一款高性能代理服务软件,通常用作Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存. 简单来说,Squid服务程序会按照收到的 ...
- Linux基础学习-使用Squid部署代理缓存服务
使用Squid部署代理缓存服务 Squid是Linux系统中最为流行的一款高性能代理服务软件,通常作为Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存.Squid服务配置简单. ...
- 《Linux就该这么学》培训笔记_ch16_使用Squid部署代理缓存服务
<Linux就该这么学>培训笔记_ch16_使用Squid部署代理缓存服务 文章最后会post上书本的笔记照片. 文章主要内容: 代理缓存服务 配置Squid服务程序 正向代理 标准正向代 ...
- 虚拟机中Linux环境下使用Squid部署代理缓存服务(及透明传输)
小知识: 正确的使用Squid服务程序部署代理缓存服务可以有效提升访问静态资源的效率,降低原服务器的负载. 不仅如此,还为读者们添加了对指定IP地址.网页关键词.网址与文件后缀的ACL访问限制功能的实 ...
- 使用Squid部署代理缓存服务(标准正向、透明正反向代理)
正向代理让用户可以通过Squid服务程序获取网站页面等数据,具体工作形式又分为标准代理模式与透明代理模式.标准正向代理模式: 将网站的数据缓存在服务器本地,提高数据资源被再次访问时的效率,但用户必需在 ...
- 12、Nginx代理缓存服务
通常情况下缓存是用来减少后端压力, 将压力尽可能的往前推, 减少后端压力,提高网站并发延时 1.缓存常见类型 服务端缓存 代理缓存, 获取服务端内容进行缓存 客户端浏览器缓存 Nginx代理缓存原理 ...
- squid代理缓存服务器
参考文章 http://www.cnblogs.com/mchina/p/3812190.html ;
随机推荐
- Java内存分配及值、引用的传递
关于堆栈的内容网上已经有很多资料了,这是我找的加上自己理解的一篇说明文: 一.内存区域类型 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制: 2. 栈:存放基本类型的变量数 ...
- Spring security 3.1 +JSF 2.0 . problem with annotating methods in ManagedBeans?
Hy .What i am trying to do is to integrate Spring security with a Jsf+spring IOC +hibernate applicat ...
- Remove “Quick Access” entry in Eclipse Juno
Here is a quick hack which doesn't require any plugin installation, instead you just need to add a f ...
- uvalive 7299 Boggle
Boggle is a game in which 16 dice with letters on each side are placed into a 4 × 4 grid. Players th ...
- JS调用webservice的两种方式
协议肯定是使用http协议,因为soap协议本身也是基于http协议.期中第二种方式:只有webservice3.5以后版本才可以成功 第一种方式:构造soap格式的body,注意加粗的黄色标识,比如 ...
- quicker+.em SourceInsight 宏加强版制作
这两天苦于新建的文件每次都要手动添加文件头,新建的函数每次都要手动添加函数说明,连.h也要手动生成.于是乎,上网搜了搜,发现了lushengwen写的一个神器:quicker.em .好家伙,有了这个 ...
- java中回调函数的使用
package com.huawei.common; import java.sql.ResultSet;import java.sql.SQLException; /** * 回调函数 * @aut ...
- python中os.system()的返回值
[python中os.system()的返回值] 如果第三方程序返回的是布尔型返回值,os.system会将true转为1,false转为0进行返回. 问题: /bin/xxx.py是一个返回码为1的 ...
- SQLite介绍
优点:轻量级.绿色组件.单一文件.跨平台.查询效率极高.使用事务插入速度极快.支持limit分页. 适合查询速度要求较高,内存占用较少的场合,尤其是嵌入式操作系统,如各种手机操作系统,低并发web(9 ...
- YUI前端优化之内容篇
Excetional Performance团队总结出了一系列可以提高网站速度的方法.可以分为7大类34条.包括内容.服务器.cookie.CSS.JavaScript.图片.移动应用等七部分.一.内 ...