squid代理ACL的配置

所谓ACL(Access Control List)就是在服务器端设定特定的上网策略,哪些用户能上网,能访问什么网站,能下载什么文件等等对用户的上网行为进行约束和管理,这个企业一般都会进行ACL上网控制,对员工的上网行为进行控制,从而提高工作效率。这里要说的就是基于redhat代理服务程序squid的ACL控制。

Squid 服务程序的 ACL 是由多个策略规则组成的,它可以根据指定的策略规则来允许或限制访问请求,而且策略规则的匹配顺序与防火墙策略规则一样都是由上至下;在一旦形成匹配之后,则立即执行相应操作并结束匹配过程。

准备一台Windows用来测试,一台redhat用来配置规则。

下面进行访问控制的配置

1.允许指定ip上网:比如我指定192.168.10.1到192.168.10.50这个ip段的人可以上网,其他ip的都不能上网。

vim /etc/squid/squid.conf

 进入配置文件后用 set nu 显示行号,方便寻找,在25行和30行后分别加入如下语句,注意:一定要将acl和http_access分开

acl allow_user src 192.168.10.1-192.168.10.50
http_access allow allow_user
http_access deny all

意思就是通过acl 命名一个为allow_user的变量,这个变量的地址范围为1-50,然后允许allow_user这段ip进行http访问,拒绝其他链接的访问。

保存退出后重启服务:systemctl restart squid

然后回到Windows机测试:用ip为192.168.10.51测试,效果如下:

2.对关键字屏蔽,比如不能登录baidu.com/qq.comgoogle.com等网站

vim /etc/squid/squid.conf,在上个实验的配置后面继续添加规则,将新的规则加在哪里尤为重要,关乎到ACL访问能否起到作用

acl deny_word url_regex -i baidu qq google
http_access deny deny_word

 记得是空格隔开关键字,过滤网站的话将 -i  参数去掉后面加上网址就行,但是关键字比较高效,所以建议直接过过滤关键字。

这里的配置信息是浏览一行执行一行,当系统浏览完acl列表时就会开始执行http_access,哪些是允许访问,哪些是拒绝。关键字过滤在我们的思维角度中是:让能上网的用户禁止访问含有关键字的网站。

对服务器来说是:先过滤掉含有关键字的网站,再允许用户上网。而不是让用户先上网,再对关键字进行过滤。allow的优先级高,所以要先让deny语句执行,再执行allow,也就是先进行关键字的过滤,再允许上网。这样我们的ACL设定才能起到作用,如果你将32和33行颠倒一下,那么关键字过滤并不会起到作用。所以allow和deny的顺序尤为重要。

重启服务后进行测试如下:baidu,qq,google这些都上不了

3.禁止下载某些类型的文件

vim /etc/squid/squid.conf

acl deny_file urlpath_regex -i \.rar$ \.exe$ \.zip$
http_access deny deny_file

 注意deny的顺序,考虑优先级,原理和第2个一样。

然后重启服务测试:zip文件无法下载

以上的所有操作都是基于RedHat7.6,环境是局域网环境,希望能帮到大家。

一步一步来,多加思考,杜绝细小的错误,是成功的关键

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值