squid的簡單應用
一.squid(代理服務器)的作用:
1. 通過緩存的方式爲用戶提供WEB服務加速
2. 對用戶的WEB訪問做訪問控制
二.代理服務器分爲以下三類:
1. 普通代理服務
2. 透明代理服務
3. 方向代理服務
三squid的基本配置:
1. 安裝squid的軟件包爲:squid-2.6.STABLE21-3.el5
2. squid的運行進程爲:squid
3. 運行squid的二進制文件爲:/etc/init.d/squid
4. squid的監聽端口爲:3128(tcp)
5. squid的主配置腳本爲:/etc/squid/squid.conf
6. squid的日誌記錄存放:/var/log/squid/access.log
四. squid主配置文件常用的配置項
1. http_port 定義squid的監聽端口的,默認爲3128
2. cache_mem 定義爲squid分配內存的大小,默認爲64M
3. visible_hostname 定義配置爲可見的主機名,默認沒有此項,需手動添加
4. cache_dir 定義緩存存放的目錄
5. cache_mgr 定義管理員的郵箱
6. error_directory 定義錯誤提示的語言
7. reply_body_max_size 定義用戶傳輸的最大數據
五.普通代理服務(爲內網用戶代理上網)
實驗環境:內網的網卡eth1:192.168.23.23,內網的客戶機ip:192.168.23.25
外網卡eth0:192.168.0.43 ,web服務器的地址爲:192.168.0.254
(這裏的實驗環境爲實驗室,如有需要,可根據實際情況進行改動)
1. 修改主配置文件:
(1)visible_hostname定義爲: proxy.test.com
(2)用戶的最大傳輸數據位:10M
(3)訪問控制列表定義爲allow all
(4)監聽端口定義爲內網卡的8080端口:
(5)定義錯誤提示的語言爲中文
(6)定義管理員的郵箱地址:
2. 初始化squid的緩存目錄:
3.啓動squid服務:
4. 做客戶端的設置,這裏以Firefox爲例:
(1) 打開工具欄中的“編輯”-----》“首選項”-----》“高級”-----》“網絡”----》”設置”-----》“手動配置代理“
設置代理地址爲內網卡的ip:192.168.23.23,代理端口爲8080,然後點擊“確定“退出。
5. 我們去做一下測試:
,可以看到我們能正常的訪問到遠程服務器。
6. 我們去下載大於10M的文件:
可以看到,被拒絕,在圖中也可以看到我們剛剛做的設置
六. ACL的訪問控制
1. 應用訪問控制的方式:
定義acl列表:
acl 列表名稱 列表類型 列表內容
針對列表進行限制
http_access allow或deny 列表名
2. 常用的acl的列表類型
src 基於源地址的控制
des 基於目的地址的控制
port 基於來目的端口的控制
srcdomain 基於源域名的控制
desdomain 基於目的域名的控制
time 基於時間的控制
proto 基於協議的控制,只能控制http和ftp協議
maxconn 基於一個ip最大的連接數的控制
url-regex 基於全路徑中字符的控制
urlpath_regex 基於非必須全路徑的控制
3. 訪問控制規則的匹配順序:
(1) 沒有設置任何規則時將拒絕所有客戶端的訪問請求
(2) 有規則但是找不到相匹配的規則時:將採用與最後一條規則相反的權限,如果最後一條的規則爲allow,那麼就拒絕客戶端的請求,否則就允許該請求
4. 設置不能下載以.pdf結尾的文件:
然後重新讀取一下配置文件;
我們試着下載一個pdf格式的文件:
如圖,訪問遭到拒絕。
5. 設置基於協議的控制
重新讀取一下配置文件
6. 然後我們再去訪問遠程主機:
可以看到訪問被拒絕。
7. 設置基於時間的訪問控制(注意:設置基於時間的訪問控制的時候,起始時間必須小於結束時間)
我現在的時間爲:
再重新去讀一下配置文件,然後再去做驗證:
可以看到訪問被拒絕。
七. 配置透明代理:
現在的企業上網大部分採用的就是這種方法,客戶機瀏覽器
不需要在瀏覽器中指定代理服務器的地址、端口
配置要求:
(1)代理服務程序能夠支持透明代理
(2)設置防火牆規則,將客戶機的Web訪問數據自動重定向給代理服務程序處理
1.修改主配置文件,設置監聽的地址和監聽的端口號:
禁用剛纔我們做的ACL,重新讀取配置文件
2. 配置iptables的規則:
iptables –t nat –A PREROUTING –i eth1 –s 192.168.23.0/24 –p tcp –dport 80 –j REDIRECT –to-port 8080
3. 然後我們取消剛纔Forefox瀏覽器中的代理:
4. 我們再去驗證一下:
可以看到,我們能正常的訪問遠程主機。