構建透明代理html
透明代理:客戶不須要指定代理服務器的地址和端口,而是經過網關,由防火牆的重定向策略將用戶的請求交給代理服務器處理;域名解析有客戶機完成web
代理服務器兩個網卡vmnet1 vmnet8 vim
1.基本設置centos
(1)先在客戶機瀏覽器中去掉代理設置瀏覽器
(2)在squid上開啓路由功能(默認關閉)緩存
#vim /etc/sysctl.conf服務器
(3)客戶機和web服務器都填寫好網關dom
(4)若是是在源拓撲圖上改的,注意更改dns中的記錄設置,並清除客戶機的dns緩存tcp
2.配置squid支持透明代理ide
[root@centos2 ~]# vim /etc/squid.conf
http_port 3128 ---->http_port 192.168.1.1: 3128 transparent
3.設置iptables的重定向策略,未來自局域網內192.168.1.0/24網段且訪問http,https等協議的數據包交給運行在本機3128端口上的squid服務處理
[root@centos2 ~]# iptables -t nat -I PREROUTING -i eth0 -s 192.168.1.0/24 -p tcp -m multiport --dport 80,443 -j REDIRECT --to 3128
4.驗證透明代理,同上(傳統代理)
(三)、ACL訪問控制,加上禁止192.168.1.10訪問www.benet.com用於測試
ACL的做用:對代理訪問進行訪問控制,能夠針對源地址、目標地址、訪問的url路徑、訪問的時間等條件進行過濾
ACL配置的步驟:
l 使用acl配置項定義須要控制的條件
l 經過使用http_access配置項對已經定義的列表作"容許"或拒絕訪問的控制
ACL訪問控制列表的定義方法:
acl 列表名稱 列表類型 列表內容(能夠爲多個內容,以空格分隔,爲或的關係
訪問權限定義方法
http-access allow或deny 列表名
說明:
l 每一條http_access規則中,能夠同時包含多個控制列表,空格分隔,爲與的關係
l 取反條件時,用!符號
l http_access必須放在acl以後
關於規則的執行過程:
l 找到一條規則即再也不向後搜索
l 沒有配置任何規則時,squid服務將拒絕客戶端的請求
l 有規則但找不到相匹配的項:squid將採用與最後一條規則相反的權限
1.首先,建立一個存放域名內名單的目錄
#mkdir /etc/squid
#vim /etc/squid/dmblock.list
.qq.com
.msn.com.
....
2.修改squid配置文件
[root@centos2 ~]# vim /etc/squid.conf
acl MYLAN src 192.168.1.0/24
acl MEDIAFILE urlpath_regex -i \.3gp$ \.mp4$ \.f4v$ \.mkv$ \.rmvb$ \.avi$
acl DMBLOCK dstdomain "/etc/squid/dmblock.list"
acl deny10 src 192.168.1.10
acl WORKTIME time MWTHF 08:30-17:30
http_access deny deny10
http_access allow MYLAN WORKTIME Safe_ports !MEDIAFILE !DMBLOCK
http_access deny all
[root@centos2 ~]# squid -k reconfigure
3.將客戶機ip改成192.168.1.10再訪問測試,不能訪問了
(1)測試不能訪問網頁
(2)測試能訪問網頁,可是不能下載超過10MB的文件
①在web服務器網頁根目錄下建立一個大於10M的文件
#dd if=/dev/zero of=/var/www/html/dltest.data bs=1M count=15
②在客戶機上測試
(四)squid日誌分析
1.先在squid本地掛載centos光盤並配置yum
2.安裝GD庫
3安裝sarg軟件,掛載sarg光盤
[root@centos2 sarg-2.3.7]# tar zxf /mnt/sarg-2.3.7.tar.gz -C /usr/src
[root@centos2 sarg-2.3.7]# cd /usr/src/sarg
[root@centos2 sarg-2.3.7]# ./configure --prefix=/usr/local/sarg -sysconfdir=/etc/sarg --enable-extraprotection
4.配置 (找到以下行修改就能夠)
#vim /etc/sarg/sarg.conf
access_log /usr/local/squid/var/logs/access.log
Especify the title for html page.
title "Squid User Access Reports"
output_dir /var/www/html/sarg
user_ip no
topuser_sort_field connect reverse BYTES reverse
user_sort_field connect reverse
exclude_hosts /usr/local/sarg/noreport
overwrite_report no
mail_utility mailq.postfix
charset UTF-8
weekdays 0-6
The hours to take into account
hours 9-12,14-16,18-20
www_document_root /var/www/html
4.運行
上述配置中,添加了不計入排序的站點,須要存在下面這個文件
# touch /usr/local/sarg/noreport
建議創建符號連接
#ln -s /usr/local/sarg/bin/sarg /usr/local/bin
直接執行sarg
#sarg
5.驗證,在客戶機訪問