搭建代理服務器可以提高上網打開網頁的速度,可以對非法網站進行屏蔽,限制文件下載,以及查看員工訪問internet的情況,包括上網的地址,用戶,時間等,是企業網絡管理的常用手段。
代理服務器分爲傳統代理和透明代理,傳統代理適用於瀏覽internet,需要在瀏覽器上手工指定服務器地址和端口,不是很方便,但是可以隱藏本機真實的ip地址,而且爲下載工具使用多個代理可以規避服務器的併發連接顯示。透明代理適用於共享上網網關,不需要指定服務器地址和端口,無需額外的設置即可上網,在實際工作中透明代理較多。
緩存代理概述:
作爲應用層的代理服務器軟件,Squid主要提供緩存加速、應用層過濾控制的功能。
代理的工作機制
緩存網頁對象,減少重複請求
代理的基本類型:
傳統代理:適用於Internet,需明確指定服務端
透明代理:適用於共享上網網關,不需指定服務端
使用代理的好處
提高Web訪問速度
隱藏客戶機的真實IP地址
一、搭建傳統代理服務器
實驗拓撲
2.實驗步驟:
服務器B:
編譯安裝Squid
選項含義:
--prefix 安裝路徑
--syscondir 單獨將配置文件修改到其他目錄
--enable-arp-acl 可以在規則中設置直接通過客戶端MAC進行管理,防止客戶端使用 IP欺騙
--enable-linux-netfilter 使用內核過濾
--enable-linux-tproxy 支持透明模式
--enable-async-io=值 異步I/O,提升存儲性能
--enable-err-language 錯誤信息的顯示語言
--enable-underscore 允許URL中有下劃線
--enable-poll 使用Poll()模式,提升性能
--enable-gunregex 使用GUN 正則表達式
2.安裝完成後,創建鏈接文件、創建用戶和組
3.將Squid添加爲系統服務
編寫Squid服務腳本
添加系統服務
4.修改配置文件 vim /etc/squid.conf
5.設置防火牆規則
6.檢查配置文件
7.開始Squid服務
服務器A
在服務器A上編寫一個簡單的測試網頁,並開啓http服務
設置防火牆規則,允許客戶機連接
客戶機C
在IE瀏覽器中,選擇“工具” ---“Internet選項”,彈出“Internet選項”對話框,在“連接”選項卡中的“局域網(LAN)設置”選項組中單機“局域網設置”按鈕,彈出“局域網(LAN)設置”對話框。
接下來客戶機進行訪問
代理服務的驗證方法
查看Squid訪問日誌的記錄,
在客戶機訪問網站,然後查看web服務器的訪問日誌,發現客戶機172.16.16.110訪問網站172.16.16.172的記錄,但是在web服務器中,查看網站日誌文件,顯示的訪問者是代理服務器的地址172.16.16.22,不是客戶端的地址。
在服務器B上查看
在服務器A上查看
二、搭建透明代理服務器
實驗拓撲
實驗步驟(安裝的步驟參考前面的傳統代理,IP地址的配置省略)
1.配置squid支持透明代理 Vi /etc/squid.conf
只修改上面的一行即可。
2.重啓服務
3.開啓路由轉發功能
4.設置iptables的重定向策略(正確區分內網卡和外網卡,根據實際情況而定)
5.客戶機進行訪問(在IE瀏覽器上關閉前邊設置的代理服務器)
驗證透明代理
代理服務器
網站服務器
三、ACL訪問控制
Squid提供了強大的代理控制機制,通過合理設置ACL並進行限制,可以針對源地址、目標地址、訪問的URL路徑、訪問的時間等各種條件進行過濾。
實現ACL訪問控制的步驟:
(1)使用acl配置項定義需要控制的條件
(2)通過http_access配置項對已定義的列表做“允許”或“拒絕”訪問的控制
格式: acl 列表名稱 列表類型 列表內容 ...
常用的訪問控制列表類型
列表類型 | 含義/用途 | 列表內容示例 |
src | 源IP地址、網段、IP地址範圍 | 192.168.1.100 192.168.1.0/24 192.168.1.0-192.168.3.0/24 |
dst | 目標IP地址、網段主機名 | 216.182.154.9 216.182.154.0/24 www.ysf.com |
port | 目標端口 | 80 443 20 22 |
srcdomain | 源名稱 | .benet.com |
dstdomain | 目標域,匹配域內所有的站點 | .qq.com |
time | 字母表示一星期中各天的英文縮寫MTWHFAS | MTWHF 8:30-17:30(週一至週五的時刻) 12:30-13:30 AS(週六、日) |
maxconn | 每個客戶機的併發連接數 | 20 |
url_regex | 目標資源的URL地址,-i表示忽略大小寫 | url_regex -i ^rtsp:// |
urlpath_regex | 目標資源的整個URL路徑 | urlpath_regex -i sex adult urlpath_regex -i \.mp3$ |
舉例:
1、禁止下載擴展名爲:.mp4,avi視頻
2、超過4mb大小的文件不進行緩存,禁止下載超過10mb的文件
3、設置網站黑名單,禁止訪問位於.qq.com,.lol.com的網站
4、允許在正常上班時間(週一到週五8:30-17:30)上網
5、默認策略設置爲禁止任何客戶機使用代理服務器
vim /etc/squid.conf
在網站服務器上建立測試文件
客戶機進行測試
四、Squid日誌分析
安裝GD庫
2.安裝sarg
配置項含義:
--syscondir=/etc/sarg 配置文件目錄,默認是/usr/local/etc
--enable-extraprotection 添加額外的安全保護
3.配置
指定squid的訪問日誌文件
網頁標題
sarg報告的輸出記錄
使用用戶名顯示
在top排序中,指定連接次數、訪問字節數,採用降序排列,升序將reverse換成normal
對於用戶訪問記錄,連接次數按降序排列
當那個日期報告已經存在,是否覆蓋報告
發送郵件報告的命令
指定不計入排序的站點列表文件
使用字符集
指定top排序時的星期週期和時間週期,0爲週日
網頁根目錄
4.運行
設置防火牆規則
5.驗證
6.計劃任務
編寫腳本
設置任務計劃
crontab -e