配置传统代理及部署squid服务参考博文:http://www.javashuo.com/article/p-qkkbbuph-gm.html
配置squid透明代理参考博文:http://www.javashuo.com/article/p-mnfxxwsf-gr.htmlhtml
squid服务的ACL访问控制:
squid提供了强大的代理控制机制,经过合理设置ACL并进行限制,能够针对源地址、目标地址、访问的URL路径、访问的时间等各类条件进行过滤。vim
在配置文件squid.conf中,ACL访问控制经过两个步骤来实现:一、使用ACL配置项定义须要控制的条件;二、经过http_access配置项对已定义的列表作“容许”或“拒绝”访问的控制。安全
一、 每行ACL配置能够定义一条访问控制列表,格式以下:服务器
acl 列表名称 列表类型 列表内容并发
其中,列表名称是自定义的,至关于给ACL起了个名字;“列表类型”必须使用squid预约义的值,对应不一样类别的控制条件;“列表内容”是要控制的具体对象,不一样类型的列表所对应的内容也不同,能够有多个值(以空格分隔,为“或”的关系)。dom
经常使用的访问控制列表类型以下:ide
ACL定义示例:工具
[root@localhost /]# vim /etc/squid.conf .......................... acl localnet src 10.0.0.0/8 # RFC1918 possible internal network #squid默认的一些ACL acl localnet src 172.16.0.0/12 # RFC1918 possible internal network #默认存在 acl localnet src 192.168.0.0/16 # RFC1918 possible internal network #默认存在 acl localhost src 127.0.0.1/255.255.255.255 #源地址为127.0.0.1 acl mylan src 192.168.1.0/24 192.168.4.0/24 #客户机网段 acl to_localhost dst 127.0.0.0/8 #目标地址为127.0.0.0/8网段 acl mc20 maxconn 20 #最大并发链接量为20 acl blackurl url_regex -i ^rtsp:// ^emule:// #以rtsp://等开头的URL acl mediafile urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ #以.mp3等结尾的URL路径 acl worktime time MTWHF 9:00-18:00 #时间为周一至周五的 9:00-18:00 ........................
当须要限制的同一类对象较多时,可使用独立的文件来存放,在acl配置行的内容处指定对应的文件位置便可。以下:post
[root@localhost /]# mkdir /etc/squid [root@localhost /]# cd /etc/squid [root@localhost squid]# vim ipblock.list #创建目标IP地址名单 61.135.167.36 125.39.127.25 60.28.14.0 [root@localhost squid]# vim dmblock.list #创建目标域地址名单 .qq.com .msn.com .live.com .verycd.com [root@localhost squid]# vim /etc/squid.conf acl ipblock dst "/etc/squid/ipblock.list" #调用指定文件中的列表内容 acl dmblock dstdomain "/etc/squid/dmblock.list"
当ACL设置好后,还须要经过http_access配置项来进行控制。必须注意的是,http_access配置行必须放在对应的acl配置行以后。每行http_access配置肯定一条访问规则,格式以下:优化
http_access allow或deny 列表名
将刚才定义的acl应用到规则中,以下:
[root@localhost squid]# vim /etc/squid.conf ...................... http_access deny !Safe_ports #squid默认存在的访问权限 http_access deny mediafile #禁止客户机下载mp3等文件 http_access deny ipblock #禁止客户机访问黑名单中的IP地址 http_access deny dmblock #禁止客户机访问黑名单中网站域 http_access deny mc20 #客户机的并发链接量超过20时将被阻止 http_access allow worktime #容许客户机在工做时间内上网 reply_body_max_size 10 MB #容许下载的最大文件大小(10M) ....................... http_access deny all #默认禁止全部客户机使用代理,squid默认存在的访问权限
在配置访问权限时,须要注意如下几点 :
若想配置更为精准的控制能够参考博文:https://blog.51cto.com/jafy00/682590
2、squid日志分析:
为了使咱们查看日志更为直观一些,可使用SARG,它是一款squid日志分析工具,采用HTML格式, 详细列出每位用户访问Internet的站点信息,时间占用信息、排名、链接次数、访问量等。
SARG的部署过程以下:
一、安装系统盘中的GD库:
[root@localhost yum.repos.d]# yum -y install gd gd-devel
二、安装SARG:
[root@localhost src]# tar zxf sarg-2.3.7.tar.gz [root@localhost src]# cd sarg-2.3.7/ [root@localhost sarg-2.3.7]# ./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection && make && make install
配置项含义以下:
--prefix=/usr/local/sarg:指定安装目录;
--sysconfdir=/etc/sarg:配置文件目录,若不指定,默认是/usr/local/etc;
--enable-extraprotection:添加额外的安全保护
三、配置:
[root@localhost sarg-2.3.7]# cd /etc/sarg/ [root@localhost sarg]# vim sarg.conf ...................... #若只实现基本的功能,则配置如下三项便可: access_log /usr/local/squid/var/logs/access.log #指定squid的访问日志文件 output_dir /var/www/html/sarg #sarg报告的输出目录,指向网站的根目录下 www_document_root /var/www/html #网页根目录 #其他一些优化的配置项以下,根据需求来改便可: title "Squid User Access Reports" #网页标题 user_ip no #使用用户名显示 exclude_hosts /usr/local/sarg/noreport #指定不计入排序的站点列表文件 topuser_sort_field connect BYTES reverse #在top排名中,指定链接次数、访问字节数,采用降序排列,升序将reverse换成normal便可。 user_sort_field connect reverse #对于用户访问记录,链接次数按降序排列 overwrite_report no #当那个日期报告已经存在,是否覆盖报告 mail_utility mailq.postfix #发送邮件报告的命令 charset utf-8 #使用字符集 weekdays 0-6 #指定top排序时的星期周期,0为周日。 hours 7-12,14,16,18-20 #指定top排序时的时间周期。
四、运行:
[root@localhost sarg]# touch /usr/local/sarg/noreport #上面的配置项中添加了不计入排序的站点,须要存在这个文件中。 #这个文件中添加的域名将不被显示在排序中。 [root@localhost sarg]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin #设置符号连接 [root@localhost sarg]# sarg #执行sarg启动一次记录。 SARG: 纪录在文件: 546, reading: 100.00% SARG: 成功的生成报告在 /var/www/html/sarg/2019Jun07-2019Jun07 [root@localhost sarg]# systemctl start httpd #启动httpd服务,若没有该服务,须自行安装。
五、验证: