1、squid代理: 緩存網頁,減少重覆請求,加快訪問速度,隱藏真實ip 代理的分類: 傳統代理:使用Internet和內網,客戶端需明確指定代理伺服器。 透明代理:使用於內網訪問外網,指定代理伺服器,但必須指定網關,網管配置iptables策略,將埠重定向到代理伺服器埠。 2、squid和na ...
1、squid代理:
緩存網頁,減少重覆請求,加快訪問速度,隱藏真實ip
代理的分類:
傳統代理:使用Internet和內網,客戶端需明確指定代理伺服器。
透明代理:使用於內網訪問外網,指定代理伺服器,但必須指定網關,網管配置iptables策略,將埠重定向到代理伺服器埠。
2、squid和nat的區別:
NAT:工作在網路層,通過轉換地址轉發數據包,實現內外網之間通信。
應用代理:工作在應用層,通過緩存提供服務,不進行數據包轉發,主要實現web緩存服務。
3、squid的安裝
./configure --prefix=/usr/local/squid(安裝目錄) --sysconfdir=/etc(配置文件位置) --enable-linux-netfilter(支持內核過濾) --enable-linux-tproxy(支持透明模式) --enable-async-io=100 --enable-err-language=”Simplify_Chinese”(錯誤信息顯示語言) --enable-underscore(允許URL中有下劃線) --enable-poll(使用Poll()模式,提升性能) --enable-gnuregex(使用GNU正則表達式)
4、主配置文件/etc/squid.con的配置項:
http_port 3128 預設埠號:3128
cache_effective_user squid 指定squid的程式用戶
cache_effective_group squid 指定賬號的基本組
repy_body_max_size 10 MB 允許下載最大文件大小
maximum_object_size 4096 KB 允許緩存的最大對象
visible_hostname a.benet.com 指定主機名(名稱隨意)
5、squid的管理命令:
squid -k parse 檢測語法
squd -z 初始化緩存目錄
squid 啟動squid
squid -k reconfigure 重新載入配置
關閉squid: kill 進程號(查看進程號命令:netstat -anpt | grep “squid”)
6、透明代理配置:
1)在/etc/squid.conf配置文件添加支持透明代理
http_port 192.168.1.1:3128 transparent
(192.168.1.1是內網網關)
2)添加iptables策略,將80號埠(HTTP)和443埠(HTTPS)重定向到3128
Iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 3128
Iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to 3128
7、squid的控制
由ACL和http_access兩條命令實施,ACL定義規則,http_access應用規則。
格式: acl 名稱 控制類型 控制內容
http_access allow|deny 名稱1 名稱2
控制類型:src 源地址 dst 目標地址
port 埠號 time 訪問時間
dstdomain 目標域 maxconn 連接數url_grgex 目標URL地址 urlpath_regex URL路徑(文件類型)
可以設置黑白明單以控制允許或拒絕訪問的主機
例:建立針對目標地址的黑名單文件
mkdir /etc/squid
cd /etc/squid
vim ipblock.list --寫入地址(61.135.167.36 125.39.127.25 60.28.14.0/24)
調用指定文件中的列表內容:
acl IPBLOCK dst “etc/squid/ipblock.list”
8、sarg是一款squid日誌分析工具,採用html格式,詳細列出站點信息時間、排名、連接次數、訪問量,主配置文件為sarg.conf可設置字體大小、背景、顏色等。
Squid代理伺服器應用示例
實驗拓撲圖:
實驗要求:
(1)如上圖要求配置網路,內部主機需要配置預設網關,外部linux不需要配置預設網關。
(2)在squid伺服器上安裝squid,並做相關的配置,啟動squid服務,查看埠。
(3)搭建傳統代理伺服器,要求在內部linux伺服器能夠使用傳統代理訪問外部的web伺服器。內部客戶端最大允許下載的文件不能超過10MB,squid最大緩存的文件為4MB。內部客戶端驗證文件下載。
(4)修改squid的主配置文件,搭建一臺透明代理伺服器,結合iptables的重定向策略,開啟路由轉發。驗證內部客戶端能否使用透明代理訪問外部的web伺服器。
(5)修改squid的主配置文件,設置ACL訪問控制,要求內部客戶端192.168.1.0網段在周一至周五的9:00—17:00才能使用代理伺服器上網,其他時間不允許上網,並且禁止下載.mp3,.avi,.rmvb的視頻文件。針對某些目標地址建立黑名單,如61.135.167.36,125.39.127.25
修改squid伺服器的時間,客戶端驗證是否能上網。
客戶端驗證mp3視頻文件能否下載。
(6)在squid伺服器上安裝Squid日誌分析軟體sarg,進行相關的配置,併在客戶端訪問日誌分析的網站。
步驟:
1、按要求配置網路,內部主機需要配置預設網關,外部linux不需要配置預設網關。(如下圖)
2、在squid伺服器上安裝squid,並做相關的配置,啟動squid服務,查看埠。
(1)解包並編譯安裝squid
(2)安裝完成後創建鏈接文件,創建用戶和組。
(3)修改squid的主配置文件(/etc/squid.conf)
(4)啟動服務並查看埠號(依次輸入以下命令)
squid -k parse 檢查配置文件語法是否正確
squid -z 初始化緩存目錄
squid 啟動squid服務
然後查看埠號,服務是否啟動
3、搭建傳統代理伺服器,要求在內部linux伺服器能夠使用傳統代理訪問外部的web伺服器。內部客戶端最大允許下載的文件不能超過10MB,squid最大緩存的文件為4MB。內部客戶端驗證文件下載。
(1)修改主配置文件/etc/squid.conf ,添加配置項(內部客戶端最大允許下載的文件不能超過10MB,squid最大緩存的文件為4MB)
(2)重新載入服務
squid -k reconfigure
(3)開啟網站伺服器的httpd服務
(4)修改內部主機瀏覽器的設置,能夠使用傳統代理訪問外部的web伺服器。(註:本實驗關閉了squid伺服器的防火牆,如開啟了防火牆請添加規則 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT)
(5)在網站伺服器上的httpd服務網頁目錄上新建一個文件(大於10 MB)
在內部主機測試
4、修改squid的主配置文件,搭建一臺透明代理伺服器,結合iptables的重定向策略,開啟路由轉發。驗證內部客戶端能否使用透明代理訪問外部的web伺服器。
(1)修改squid的主配置文件/etc/squid.conf ,使其能支持透明代理。
(2)重新載入服務
squid -k reconfigure
(3)設置iptables的重定向策略
(4)開啟路由轉發功能,(/etc/sysctl.conf)
(5)關閉內部主機IE瀏覽器的區域網設置,並測試。
5、修改squid的主配置文件,設置ACL訪問控制,要求內部客戶端192.168.1.0網段在周一至周五的9:00—17:00才能使用代理伺服器上網,其他時間不允許上網,並且禁止下 載.mp3,.avi,.rmvb的視頻文件。針對某些目標地址建立黑名單,如 61.135.167.36 125.39.127.25
修改squid伺服器的時間,客戶端驗證是否能上網。
(1)修改squid主配置文件/etc/squid.conf
(2)建立相應的ip地址名單
mkdir /etc/squid
cd /etc/squid
vim ipblock.list
(3)重新載入服務
squid -k reconfigure
(4)在內部主機上驗證(因為squid伺服器的時間滿足要求,所以能訪問)
可以修改squid伺服器的時間,再次測試(註:如果刪除了瀏覽器的數據還是能訪問,就殺死squid進程再打開。)
6、在squid伺服器上安裝Squid日誌分析軟體sarg,進行相關的配置,併在客戶端訪問日誌分析的網站。
(1)在squid伺服器上建立yum倉庫,使用yum方式安裝
執行命令yum -y install gd 進行安裝
(2)安裝sarg,解包後編譯安裝
(3)配置
cd /etc/sarg/
vim sarg.conf
(4)運行
並啟用httpd服務
(5)在內部主機驗證,在IE瀏覽器上輸入http://192.168.1.1/sarg/
文章參考微信公眾號:L寶寶聊IT