代理缓存服务
Squid是Linux系统中最为流行的一款高性能代理服务软件,通常用作Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存。简单来说,Squid服务程序会按照收到的用户请求向网站源服务器请求页面、图片等所需的数据,并将服务器返回的数据存储在运行Squid服务程序的服务器上。当有用户再请求相同的数据时,则可以直接将存储服务器本地的数据交付给用户,这样不仅减少了用户的等待时间,还缓解了网站服务器的负载压力。
Squid服务程序具有配置简单、效率高、功能丰富等特点,它能支持HTTP、FTP、SSL等多种协议的数据缓存,可以基于访问控制列表(ACL)和访问权限列表(ARL)执行内容过滤与权限管理功能,还可以基于多种条件禁止用户访问存在威胁或不适宜的网站资源,因此可以保护企业内网的安全,提升用户的网络体验,帮助节省网络带宽。
在使用Squid服务程序为用户提供缓存代理服务时,具有正向代理模式和反向代理模式之分。
所谓正向代理模式,是指让用户通过Squid服务程序获取网站页面等资源,以及基于访问控制列表(ACL)功能对用户访问网站行为进行限制,在具体的服务方式上又分为标准代理模式与透明代理模式。
标准正向代理模式是把网站数据缓存到服务器本地,提高数据资源被再次访问时的效率,但是用户在上网时必须在浏览器等软件中填写代理服务器的IP地址与端口号信息,否则默认不使用代理服务。
透明正向代理模式的作用与标准正向代理模式基本相同,区别是用户不需要手动指定代理服务器的IP地址与端口号,所以这种代理服务对于用户来讲是相对透明的。
Squid服务程序提供正向代理服务
反向代理模式是指让多台节点主机反向缓存网站数据,从而加快用户访问速度。可以使用Squid服务程序提供的反向代理模式来进行响应。而且,如果反向代理服务器中恰巧已经有了用户要访问的静态资源,则直接将缓存的这些静态资源发送给用户,这不仅可以加快用户的网站访问速度,还在一定程度上降低了网站服务器的负载压力。
Squid服务程序提供的反向代理模式
正向代理和反向代理
正向代理模式一般用于企业局域网之中,让企业用户统一地通过Squid服务访问互联网资源,可以在一定程度上减少公网带宽的开销,还能对用户访问的网站内容进行监管限制;
反向代理模式一般是为大中型网站提供缓存服务的,它把网站中的静态资源保存在国内多个节点机房中,当有用户发起静态资源的访问请求时,可以就近为用户分配节点并传输资源。
配置Squid服务程序
基本设置:
Squid服务端:双网卡,内网(仅主机)IP地址192.168.10.10,外网(桥接)DHCP自动获取IP地址,能上外网;
Squid客户端:一张网卡(仅主机)IP地址192.168.10.20,客户端是Windows、Linux都行;
实验目的:在服务端部署squid程序,让原本只能访问内网的客户端通过Squid服务器进行代理上网。
服务端安装Squid服务程序:yum install -y squid。
Squid服务程序的配置文件:/etc/squid/squid.conf。
常用的Squid服务程序配置参数以及作用
标准正向代理
Squid服务程序软件包在正确安装并启动后,默认就已经可以为用户提供标准正向代理模式服务了,而不再需要单独修改配置文件或者进行其他操作。
如果客户端是Linux系统,服务端还需要清空iptables防火墙
systemctl restart squid #重启squid服务
systemctl enable squid #把squid服务加入开机启动项
iptables -F #清空iptables防火墙
service iptables save #保存iptables当前策略状态
t添加网卡
标准正向代理
代理点网络设置
[root@lizhiqiang Desktop]# yum install -y dhcp squid
[root@lizhiqiang Desktop]# systemctl restart squid
[root@lizhiqiang Desktop]# systemctl enable squid
[root@lizhiqiang Desktop]# iptables -F
运用dhcp共享网络设置
[root@lizhiqiang Desktop]# systemctl restart dhcpd
[root@lizhiqiang Desktop]# systemctl restart squid
[root@lizhiqiang Desktop]# firewall-config
使用iptables 开启共享网络
[root@lizhiqiang Desktop]# iptables -F
[root@lizhiqiang Desktop]# iptables -t nat -A POSTROUTING -p udp --dport 53 -o eno33554992 -j MASQUERADE
[root@lizhiqiang Desktop]# vim /etc/sysctl.conf
[root@lizhiqiang Desktop]# vim /etc/squid/squid.conf
[root@lizhiqiang Desktop]# squid -k parse
2020/11/17 07:32:06| Startup: Initializing Authentication Schemes ...
2020/11/17 07:32:06| Startup: Initialized Authentication Scheme 'basic'
2020/11/17 07:32:06| Startup: Initialized Authentication Scheme 'digest'
2020/11/17 07:32:06| Startup: Initialized Authentication Scheme 'negotiate'
2020/11/17 07:32:06| Startup: Initialized Authentication Scheme 'ntlm'
2020/11/17 07:32:06| Startup: Initialized Authentication.
[root@lizhiqiang Desktop]# squid -z
2020/11/17 07:32:13 kid1| /var/spool/squid exists
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/00
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/01
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/02
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/03
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/04
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/05
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/06
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/07
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/08
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/09
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/0A
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/0B
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/0C
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/0D
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/0E
2020/11/17 07:32:13 kid1| Making directories in /var/spool/squid/0F
[root@lizhiqiang Desktop]# systemctl restart squid
[root@lizhiqiang Desktop]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8888
[root@lizhiqiang Desktop]# iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eno33554992 -j SNAT --to 172.20.10.9
[root@lizhiqiang Desktop]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
修改端口号
[root@lizhiqiang Desktop]# vim /etc/squid/squid.conf
[root@lizhiqiang Desktop]# systemctl restart squid
[root@lizhiqiang Desktop]# semanage port -l | grep squid_port_t
squid_port_t tcp 3128, 3401, 4827
squid_port_t udp 3401, 4827
[root@lizhiqiang Desktop]# semanage port -a -t squid_port_t -p tcp 10000
[root@lizhiqiang Desktop]# semanage port -l | grep squid_port_t
squid_port_t tcp 10000, 3128, 3401, 4827
squid_port_t udp 3401, 4827
[root@lizhiqiang Desktop]# systemctl restart squid