yum install squid //安装squid服务
systemctl restart squid systemctl enable squid //设置开机启动
使用Squid服务程序提供的标准正向代理模式服务,就必须在浏览器中填写服务器的IP地址以及端口号信息。
如此公开而没有密码验证的代理服务终归让人觉得不放心,万一有人也来“蹭网”该怎么办呢?Squid服务程序默认使用3128、3401与4827等端口号,因此可以把默认使用的端口号修改为其他值,以便起到一定的保护作用。现在大家应该都知道,在Linux系统配置服务程序其实就是修改该服务的配置文件,因此直接在/etc目录下的Squid服务程序同名目录中找到配置文件,把http_port参数后面原有的3128修改为10000,即把Squid服务程序的代理服务端口修改成了新值。最后一定不要忘记重启服务程序
[root@linuxprobe ~]# semanage port -l | grep squid_port_t squid_port_t tcp 3128, 3401, 4827 squid_port_t udp 3401, 4827 [root@linuxprobe ~]# semanage port -a -t squid_port_t -p tcp 10000 [root@linuxprobe ~]# semanage port -l | grep squid_port_t squid_port_t tcp 10000, 3128, 3401, 4827 squid_port_t udp 3401, 4827
在日常工作中,企业员工一般是通过公司内部的网关服务器来访问互联网,当将Squid服务程序部署为公司网络的网关服务器后,Squid服务程序的访问控制列表(ACL)功能将发挥它的用武之地。它可以根据指定的策略条件来缓存数据或限制用户的访问。比如很多公司会分时段地禁止员工逛淘宝、打网页游戏,这些禁止行为都可以通过Squid服务程序的ACL功能来实现。大家如果日后在人员流动较大的公司中从事运维工作,可以牢记本节内容,在公司网关服务器上部署的Squid服务程序中添加某些策略条件,禁止员工访问某些招聘网站或竞争对手的网站,没准还能有效降低员工的流失率。
实验1:只允许IP地址为192.168.10.20的客户端使用服务器上的Squid服务程序提供的代理服务,禁止其余所有的主机代理请求。
下面的配置文件依然是Squid服务程序的配置文件,但是需要留心配置参数的填写位置。如果写的太靠前,则有些Squid服务程序自身的语句都没有加载完,也会导致策略无效。当然也不用太靠后,大约在26~32行的位置就可以,而且采用分行填写的方式也便于日后的修改。
[root@linuxprobe ~]# vim /etc/squid/squid.conf
1 #
2 # Recommended minimum configuration:
3 #
4
5 # Example rule allowing access from your local networks.
6 # Adapt to list your (internal) IP networks from where browsing
7 # should be allowed
8 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
9 acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
10 acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
11 acl localnet src fc00::/7 # RFC 4193 local private network range
12 acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) mac hines
13
14 acl SSL_ports port 443
15 acl Safe_ports port 80 # http
16 acl Safe_ports port 21 # ftp
17 acl Safe_ports port 443 # https
18 acl Safe_ports port 70 # gopher
19 acl Safe_ports port 210 # wais
20 acl Safe_ports port 1025-65535 # unregistered ports
21 acl Safe_ports port 280 # http-mgmt
22 acl Safe_ports port 488 # gss-http
23 acl Safe_ports port 591 # filemaker
24 acl Safe_ports port 777 # multiling http
25 acl CONNECT method CONNECT
26 acl client src 192.168.10.20
27 #
28 # Recommended minimum Access Permission configuration:
29 #
30 # Deny requests to certain unsafe ports
31 http_access allow client
32 http_access deny all
33 http_access deny !Safe_ports
34
[root@linuxprobe ~]# systemctl restart squid
实验2:禁止所有客户端访问网址中包含linux关键词的网站。
Squid服务程序的这种ACL功能模式是比较粗犷暴力的,客户端访问的任何网址中只要包含了某个关键词就会被立即禁止访问,但是这并不影响访问其他网站。
[root@linuxprobe ~]# vim /etc/squid/squid.conf
1 #
2 # Recommended minimum configuration:
3 #
4
5 # Example rule allowing access from your local networks.
6 # Adapt to list your (internal) IP networks from where browsing
7 # should be allowed
8 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
9 acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
10 acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
11 acl localnet src fc00::/7 # RFC 4193 local private network range
12 acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) mac hines
13
14 acl SSL_ports port 443
15 acl Safe_ports port 80 # http
16 acl Safe_ports port 21 # ftp
17 acl Safe_ports port 443 # https
18 acl Safe_ports port 70 # gopher
19 acl Safe_ports port 210 # wais
20 acl Safe_ports port 1025-65535 # unregistered ports
21 acl Safe_ports port 280 # http-mgmt
22 acl Safe_ports port 488 # gss-http
23 acl Safe_ports port 591 # filemaker
24 acl Safe_ports port 777 # multiling http
25 acl CONNECT method CONNECT
26 acl deny_keyword url_regex -i linux
27 #
28 # Recommended minimum Access Permission configuration:
29 #
30 # Deny requests to certain unsafe ports
31 http_access deny deny_keyword
33 http_access deny !Safe_ports
34
[root@linuxprobe ~]# systemctl restart squid
实验3:禁止所有客户端访问某个特定的网站。
在实验2中,由于我们禁止所有客户端访问网址中包含linux关键词的网站,这将造成一大批网站被误封,从而影响同事们的正常工作。其实通过禁止客户端访问某个特定的网址,也就避免了误封的行为。下面按照如下所示的参数配置Squid服务程序并重启,然后进行测试,其测试结果如图16-10所示。
[root@linuxprobe ~]# vim /etc/squid/squid.conf 24 acl Safe_ports port 777 # multiling http 25 acl CONNECT method CONNECT 26 acl deny_url url_regex http://www.linuxcool.com 27 # 28 # Recommended minimum Access Permission configuration: 29 # 30 # Deny requests to certain unsafe ports 31 http_access deny deny_url 33 http_access deny !Safe_ports 34 [root@linuxprobe ~]# systemctl restart squid
实验4:禁止员工在企业网内部下载带有某些后缀的文件。
在企业网络中,总会有一小部分人利用企业网络的高速带宽私自下载资源(比如游戏安装文件、电影文件等),从而对其他同事的工作效率造成影响。通过禁止所有用户访问.rar或.avi等后缀文件的请求,可以防止他们继续下载资源,让他们知难而退。下面按照如下所示的参数配置Squid服务程序并重启,然后进行测试,其测试结果如图16-11所示。
如果这些员工是使用迅雷等P2P下载软件来下载资源的话,就只能使用专业级的应用防火墙来禁止了。
[root@linuxprobe ~]# vim /etc/squid/squid.conf 24 acl Safe_ports port 777 # multiling http 25 acl CONNECT method CONNECT 26 acl badfile urlpath_regex -i \.mp3$ \.rar$ 27 # 28 # Recommended minimum Access Permission configuration: 29 # 30 # Deny requests to certain unsafe ports 31 http_access deny badfile 33 http_access deny !Safe_ports 34 [root@linuxprobe ~]# systemctl restart squid
正向代理服务一般是针对企业内部的所有员工设置的,鉴于每位员工所掌握的计算机知识不尽相同,如果您所在的公司不是IT行业的公司,想教会大家如何使用代理服务也不是一件容易的事情。再者,无论是什么行业的公司,公司领导都希望能采取某些措施限制员工在公司内的上网行为,这时就需要用到透明的正向代理模式了。
网站页面是由静态资源和动态资源一起组成的,其中静态资源包括网站架构CSS文件、大量的图片、视频等数据,这些数据相对于动态资源来说更加稳定,一般不会经常发生改变。但是,随着建站技术的更新换代,外加人们不断提升的审美能力,这些静态资源占据的网站空间越来越多。如果能够把这些静态资源从网站页面中抽离出去,然后在全国各地部署静态资源的缓存节点,这样不仅可以提升用户访问网站的速度,而且网站源服务器也会因为这些缓存节点的存在而降低负载。
反向代理是Squid服务程序的一种重要模式,其原理是把一部分原本向网站源服务器发起的用户请求交给Squid服务器缓存节点来处理。但是这种技术的弊端也很明显,如果有心怀不轨之徒将自己的域名和服务器反向代理到某个知名的网站上面,从理论上来讲,当用户访问到这个域名时,也会看到与那个知名网站一样的内容(有些诈骗网站就是这样骗取用户信任的)。因此,当前许多网站都默认禁止了反向代理功能。开启了CDN(内容分发网络)服务的网站也可以避免这种窃取行为
原文:https://www.cnblogs.com/ML1700/p/14389648.html