squid代理服務器
Squid是linux系統中常用的一款開源代理服務軟件,可以很好地實現HTTP和FTP ,以及DNS查詢,SSL等應用的緩存代理,功能十分強大
作爲應用層的代理服務器軟件,Squid主要提供緩存加速,應用層過濾控制的功能
1 代理的工作機制
{1}當客戶機通過代理來請求Web頁面時,
{2}指定的代理服務器會檢查自己的緩存,
{3}如果緩存中已經有客戶機需要的頁面,
{4}則直接將緩存中的內容反饋給客戶機,
{5}如果緩存中沒有客戶機要訪問的頁面,
{6}則由代理服務器向lnternet發送請求,當獲得返回的web頁面以後,將網頁數據保存到緩存中在發送給客戶機。
2 squid服務的作用
{1}.加快對http訪問的速度
{2}.提高安全性)(客戶機的Web訪問請求實際上是由代理服務器完成的,從而可以隱藏用戶的真IP地址)
{3}.能夠進行訪問控制(代理服務器擔任着類似“經紀人”的角色,所以會針對要訪問的目標,客戶機的地址,訪問的時間等進行過濾控制)
3代理的基本類型
l 傳統代理:需要在客戶機的瀏覽器、相關的工具上手動設置代理服務器的地址和端口,訪問的網頁域名也是由代理服務器進行解析的
l 透明代理:客戶不需要指定代理服務器的地址和端口,而是通過網關,由防火牆的重定向策略將用戶的請求交給代理服務器處理;域名解析有客戶機完成
實驗要求:
1.所有的局域網pc通過共享ip(ip地址爲200.1.1.1)的方式接入internet,用於非web訪問協議的訪問(如dns,ftp,mail等等)
2.當局域網pc訪問internet中的web站點(80、443端口)時,自動使用代理
3.針對局域網pc的web訪問進行控制,主要要求如下。
l 禁止下載擴展名爲.3pg 、.mp4、.f4v、.mkv、.rmvb、.avi的視頻文件
l 超過4MB大小的文件不盡興緩存,禁止下載超過10MB的文件
l 設置網站黑名單,禁止訪問位於.qq.com、.msn.com域下的web站點
l 允許在正常的上班時間(週一到週五的8:30~17:30)使用代理服務
l 默認策略設置爲禁止任何客戶機使用代理服務
一、安裝squid
1.解壓(掛載squid光盤)
2.配置、編譯、安裝
--sysconfdir= /etc //單獨將配置文件修改到其他目錄
--enable-linux-netfilter //使用內核過濾
--enable-linux-tproxy //支持透明模式
--enable-err-languge=”....” //錯誤信息的顯示語言
--enable-underscore //允許URL中有下劃線
--enable-poll //使用poll()模式
--enable-gnuregex //使用GNU正在表達式
3.創建連接文件、創建用戶和組
4.編輯squid配置文件
[root@centos2 squid-3.4.6]#vim /etc/squid.conf
省略部分內容
cache_effective_user squid //指定squid程序用戶
cache_effective_group squid //程序基本組賬戶,需要手工添加
visible_hostname centos2.benet.com //手工添加主機名,,需要手工添加
cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256 //設置緩存目錄的大小,一級子目錄和二級子目錄的個數(默認有此項,去點前面的#)
5.squid的運行控制
1)檢查配置文件語法是否正確
2)啓動 停止 squid
// -z 用來初始化緩存目錄
啓動服務
二、構建代理服務器
(一)傳統代理
1.squid服務器的配置
(1)修改squid.conf配置文件
http_access allow all //允許任意客戶機使用代理服務器,放在http_access deny all前面(注意不加也可以,如果客戶機地址正好時192.168.段就不用加,因爲在squid.conf中有一個acl localnet src 192.168.0.0/16,http_access allow localnet)
(2)在防火牆上添加允許的策略
(3)配置dns服務器,爲web站點註冊域名www.benet.com
(4)在squid代理服務器上填寫好dns服務器的地址(這一點特別注意,要求代理服務器本身可以解析域名)
#vim /etc/resolv.conf
(5)重啓squid代理服務
2.客戶機的代理配置
(1)客戶機不用填寫網關和dns服務器地址,完全由squid代理解析
在瀏覽器中 選擇 “工具” lnternet選項,彈出lnternet選項對話框,在“連接”選項卡中“局域網LAN”設置
2)代理服務的驗證方法
①查看squid訪問日誌的新增記錄
②查看web訪問日誌的新增記錄
注意:當客戶機再次訪問同一個web頁面時,squid訪問日誌會增加新的記錄,但web訪問日誌中的記錄不會發生變化(除非頁面變更或執行強制刷新等操作),這說明當客戶機重複訪問同一個靜態頁面時,實際上是由代理服務器通過緩存提供的