ACL访问控制

ACL访问控制和squid日志分析工具

  • ACL访问控制和squid日志分析工具
    • ACL访问控制
    • ACL列表的应用
    • 反向代理网站加速
    • ACL实验环境
  • squid日志分析工具实验
    • 在squid服务端配置
  • squid反向代理实验
    • 配置第一台http服务端页面
    • 配置第二台http服务端页面
    • 在squid服务器上配置
    • 在web服务器配置

ACL访问控制和squid日志分析工具

ACL访问控制

ACL访问控制方式

  • 根据源地址、目标URL、文件类型等定义列表
    acl列表名称列表类型列表内容…
  • 针对已定义的acl列表进行限制
    http_access allow或deny列表名称…

ACL规则优先级

  • 一个用户访问代理服务器时,Squid会顺序匹配Squid中定
    义的所有规则列表,一旦匹配成功,立即停止匹配
  • 所有规则都不匹配时,Squid会使用与最后一条相反的规则

ACL访问控制
常用的ACL列表类型

  • src →>源地址
  • dst >自标地址
  • port→>端口
  • dstdomain>目标域
  • time →>访问时间
  • maxconn →最大并发连接
  • ourl_regex >目标URL地址
  • Urlpath_regex→整个目标URL路径

ACL列表的应用

最简单的ACL控制

禁止任何客户机使用此代理服务

[root@localhost~]# vi letclsquid.conf
acKalsrc 0.0.0.0/0.0.0.0
http_access deny all

反向代理网站加速

工作机制

  • 缓存网页对象,减少重复请求
  • 将互联网请求轮训或按权重分配到内网Web服务器
  • 代理用户请求,避免用户直接访问Web服务器,提高安全
    ACL访问控制_第1张图片

搭建反向代理实现加速

  • 设置网络参数
  • 安装部署squid服务器
  • 配置squid支持透明代理
  • 配詈防火墙
  • 测试验证

ACL实验环境

3台服务器

1台squid代理服务器 : 192.168.136.40

1台apache服务器:192.168.136.30

1台web客户机 192.168.136.50

下面的实验基于squid传统代理基础上配置(ps:配置squid不在赘述,如有不会请回看上一篇博客)

在squid代理服务器上配置

[root@squid network-scripts]# vim /etc/squid.conf
# should be allowed
acl hostlocal src 192.168.136.50/32		#增控制的是win10的地址

# Deny requests to certain unsafe ports
http_access deny hostlocal		#增加

ACL访问控制_第2张图片
ACL访问控制_第3张图片

开启服务

[root@squid network-scripts]# service squid reload
[root@squid network-scripts]# netstat -natp | grep 3128tcp        0      0 192.168.10.1:3128       0.0.0.0:*               LISTEN      101064/(squid-1)   

访问已经拒绝
ACL访问控制_第4张图片

开启服务

[root@localhost ~]# vim /etc/squid.conf
#http_access deny hostlocal   注释掉

ACL访问控制_第5张图片

squid日志分析工具实验

记得把前面的acl控制web端口注释掉

[root@squid network-scripts]# vim /etc/squid.conf
#http_access deny hostlocal
#acl hostlocal src 192.168.136.50/32	

在squid服务端配置

解压缩

[root@localhost ~]#  tar zxvf sarg-2.3.7.tar.gz -C /opt/

安装图像化处理工具,gd库

[root@squid sarg-2.3.7]# yum install gd gd-devel -y

编译配置

[root@localhost ~]# cd squid-3.4.6/
[root@localhost squid-3.4.6]# ./configure --prefix=/usr/local/sarg \
> --sysconfdir=/etc/sarg \
> --enable-extraprotection
[root@localhost squid-3.4.6]# make && make install 

配置sarg服务

root@squid sarg-2.3.7]# cd /etc/sarg/
[root@squid sarg]# vim sarg.conf 
 7 access_log /usr/local/squid/var/logs/access.log	//squid的访问日志位置
 25 title "Squid User Access Reports"		//网页标题
120 output_dir /var/www/html/squid-reports	//分析报告存放位置

178 user_ip no		
					//不使用IP代替用户ID
184 topuser_sort_field connect reverse	   //升序排列

190 user_sort_field connect reverse   // 这条必读要注释掉(不要开启)

206 exclude_hosts /usr/local/sarg/noreport    #这个文件待会需要创建,里面存放的是不生成报告的主机

257 overwrite_report no

289 mail_utility mailq.postfix	//指定发邮件命令

434 charset UTF-8         字符集

518 weekdays 0-6		//指定top排序星期周期

525 hours 0-23		//指定top排序时间周期

633 www_document_root /var/www/html			//网页根目录

检查一下

[root@localhost sarg]# grep -v "^#" sarg.conf   

创建一个文件名(不生成报告的主机)

touch /usr/local/sarg/noreport	

命令可以识别

ln -s /usr/local/sarg/bin/sarg /usr/local/bin/

开启服务(生成报告记录)

[root@localhost sarg]# sarg 
SARG: 纪录在文件: 382, reading: 100.00%
SARG: 成功的生成报告在 /var/www/html/squid-reports/2020Sep07-2020Sep08

可以看到生成的记录在哪

2020Sep07-2020Sep07在这里

[root@localhost squid-reports]# ls /var/www/html/squid-reports/
2020Sep07-2020Sep07  images  index.html

在aquid服务中安装http展现服务

[root@localhost squid-reports]# yum -y install httpd

开启并查看

[root@localhost squid-reports]# systemctl restart httpd

[root@localhost sarg]# netstat -ntap | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      60702/httpd  

去win10客户端查看

地址 192.168.136.40/squid-reports
ACL访问控制_第6张图片

点击进去查了详细

ACL访问控制_第7张图片

更换地址访问

ACL访问控制_第8张图片

在squid日志服务器上配置

[root@squid squid-reports]# sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/squid-reports/ -z -d $(date -d "1 day ago" +%d/%m/%Y)-$(date +%d/%m/%Y)

刷新启动成功
ACL访问控制_第9张图片

squid反向代理实验

需要3台服务器
1台squit代理服务器 192.168.136.40
2http服务器 编译首页 web01 192.168.136.30
3http服务器 编译首页 web02 192.168.136.88

配置第一台http服务端页面

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# vim  /var/www/html/index.html

this is web 01

[root@localhost ~]# systemctl restart httpd.service

ACL访问控制_第10张图片

配置第二台http服务端页面

[root@localhost ~]# yum -y install httpd
[root@promote ~]# vim  /var/www/html/index.html

this is web 02

[root@localhost ~]# systemctl restart httpd.service

ACL访问控制_第11张图片

在squid服务器上配置

查看一下端口有没有被占用,因为httpd会占用80端口,必须关闭

[root@localhost ~]# netstat -ntap | grep 80 
[root@localhost ~]# systemctl stop httpd

配置反向代理squid服务

[root@localhost ~]# vim /etc/squid.conf
#http_port 3128   注释监听端口 并在下面配置
http_port 192.168.136.40:80 accel vhost vport
cache_peer 192.168.136.30 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 192.168.136.88 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.yun.com

ACL访问控制_第12张图片

开启服务

监听端口为本地80端口

[root@localhost ~]# service squid stop
[root@localhost ~]# netstat -ntap | grep squid
[root@localhost ~]# service squid start
正在启动 squid...
[root@localhost ~]# netstat -ntap | grep squid
tcp        0      0 192.168.136.40:80       0.0.0.0:*               LISTEN      57844/squid-1) 

在web服务器配置

修改端口号为80
ACL访问控制_第13张图片

配置wen10的DNS

c/windows/system32/drivers/etc

ACL访问控制_第14张图片

设置文件权限

ACL访问控制_第15张图片

文本打开

ACL访问控制_第16张图片

配置dns
ACL访问控制_第17张图片

ping查看是否在线

ACL访问控制_第18张图片

ACL访问控制_第19张图片

刷新一下
ACL访问控制_第20张图片

如果显示不出来在配置正确的情况下,在两台http服务机上关闭防火墙或win10防火墙

你可能感兴趣的:(squid)