树叶云linux教程:16.3.2 ACL访问控制

在日常工作中,企业员工一般是通过公司内部的网关服务器来访问互联网,当将Squid服务程序部署为公司网络的网关服务器后,Squid服务程序的访问控制列表(ACL)功能将发挥它的用武之地。它可以根据指定的策略条件来缓存数据或限制用户的访问。比如很多公司会分时段地禁止员工逛淘宝、打网页游戏,这些禁止行为都可以通过Squid服务程序的ACL功能来实现。大家如果日后在人员流动较大的公司中从事运维工作,可以牢记本节内容,在公司网关服务器上部署的Squid服务程序中添加某些策略条件,禁止员工访问某些招聘网站或竞争对手的网站,没准还能有效降低员工的流失率。

Squid服务程序的ACL是由多个策略规则组成的,它可以根据指定的策略规则来允许或限制访问请求,而且策略规则的匹配顺序与防火墙策略规则一样都是由上至下;在一旦形成匹配之后,则立即执行相应操作并结束匹配过程。为了避免ACL将所有流量全部禁止或全部放行,起不到预期的访问控制效果,运维人员通常会在ACL的最下面写上deny all或者allow all语句,以避免安全隐患。

刘遄老师将通过下面的4个实验向大家演示Squid服务程序的ACL功能有多么强大。

实验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

上面的配置参数其实很容易理解。首先定义了一个名为client的别名。这其实类似于13.6节讲解的DNS分离解析技术,当时我们分别定义了两个名为china与american的别名变量,这样当再遇到这个别名时也就意味着与之定义的IP地址了。保存配置文件后重启Squid服务程序,这时由于客户端主机的IP地址不符合我们的允许策略而被禁止使用代理服务,如图16-8所示。

图16-8 使用代理服务浏览网页失败

实验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

刘遄老师建议大家在进行实验之前,一定要先把前面实验中的代码清理干净,以免不同的实验之间产生冲突。在当前的实验中,我们直接定义了一个名为deny_keyword的别名,然后把所有网址带有linux关键词的网站请求统统拒绝掉。当客户端分别访问带有linux关键词和不带有linux关键词的网站时,其结果如图16-9所示。

图16-9 当客户端分别访问带有linux关键词和不带linux关键词的网站时,所呈现的结果

实验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

图16-10 无法使用代理服务访问这个特定的网站

实验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

图16-11 无法使用代理服务下载具有指定后缀的文件

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/181786.html<

赞 (0)
管理的头像管理
上一篇2025-03-27 15:50
下一篇 2025-03-27 15:52

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注