配置傳統代理及部署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服務,若沒有該服務,須自行安裝。
五、驗證: