squid透明代理

構建透明代理

   透明代理:客戶不需要指定代理服務器的地址和端口,而是通過網關,由防火牆的重定向策略將用戶的請求交給代理服務器處理;域名解析有客戶機完成


wKioL1km722C7WxAAABhRvDe0bc724.png 

 

wKiom1km74LRsKYiAAD39wfE_ZY422.png 

代理服務器兩個網卡vmnet1 vmnet8

wKioL1km75KyFgLzAAAOlYdnjcs140.png 

wKioL1km76Si43loAADBd7PNvS0736.png 

wKioL1km8UuTGpmjAAAQojKm2K0015.png 

wKiom1km8AbT3ycxAADXP0xUy3A762.png 

 

wKiom1km8Beh9TAoAAEJONumeso706.png 

 

wKioL1km8CiAz-A0AAEEBXv-xO0180.png 

1.基本設置

1)先在客戶機瀏覽器中去掉代理設置

2)在squid上開啓路由功能(默認關閉)

#vim /etc/sysctl.conf

wKioL1km8EKDQY9IAABfto72Otw388.png    

 

wKioL1km8HKBOcObAABmYQx-F3c190.png 

 (3)客戶機和web服務器都填寫好網關

wKiom1km8IWinyeNAADW2sRFVwI768.png 

(4)如果是在源拓撲圖上改的,注意更改dns中的記錄設置,並清除客戶機的dns緩存

2.配置squid支持透明代理

[root@centos2 ~]# vim /etc/squid.conf

http_port  3128  ---->http_port 192.168.1.1: 3128 transparent

 

wKioL1km8JyCwIihAAAkuhMTVFw617.png 

 

wKiom1km8Kuybg6KAAAbMpNyMmw152.png 

 

3.設置iptables的重定向策略,將來自局域網內192.168.1.0/24網段且訪問httphttps等協議的數據包交給運行在本機3128端口上的squid服務處理

 

wKioL1km8L3RVCyfAAArOVhhaKA262.png 

[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配置的步驟:

使用acl配置項定義需要控制的條件

通過使用http_access配置項對已經定義的列表做"允許"或拒絕訪問的控制

ACL訪問控制列表的定義方法:

acl  列表名稱  列表類型  列表內容(可以爲多個內容,以空格分隔,爲或的關係

訪問權限定義方法

http-access  allowdeny  列表名

說明:

每一條http_access規則中,可以同時包含多個控制列表,空格分隔,爲與的關係

取反條件時,用!符號

http_access必須放在acl之後

關於規則的執行過程:

找到一條規則即不再向後搜索

沒有配置任何規則時,squid服務將拒絕客戶端的請求

有規則但找不到相匹配的項: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)測試不能訪問網頁

wKiom1km8M7zT8usAACH8orKrkk050.png 

2)測試能訪問網頁,但是不能下載超過10MB的文件

①在web服務器網頁根目錄下創建一個大於10M的文件

#dd  if=/dev/zero  of=/var/www/html/dltest.data  bs=1M count=15

②在客戶機上測試

wKioL1km8N_QK22gAACX9eLoKWQ488.png 

(四)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.驗證,在客戶機訪問

wKioL1km8QuhYR9AAAChj4EOKOQ153.png 

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章