1.什麼是squid服務?
html
提供的代理服務(緩存服務),能夠緩存用戶訪問過的數據,當用戶下次訪問一樣的數據時,squid代理能夠從緩存中提取數據,能夠直接訪問,提升了訪問速度和下降了對帶寬的使用。web
2.應用的環境後端
公司現有100個用戶須要所有上網,經過路由交換能夠能夠實現,也能夠每人一個IP地址,經過以上方式上網不能緩存用戶訪問過的數據。瀏覽器
3.squid代理的方式有三種:緩存
普通代理:客戶端必須在本身的瀏覽器裏指定代理服務器的ip地址和代理服務監聽的端口號,纔可以經過代理服務器上網,代替局域網內的全部客戶端上網。安全
透明代理:客戶端不須要在本身的瀏覽器裏指定代理服務器的ip地址和代理服務監聽的
服務器
反向代理:代替公網客戶端訪問私網的服務器。網絡
4.squid經過什麼限制客戶端經過本身訪問什麼樣的資源?tcp
經過ACL(訪問控制列表)來限制客戶端 經過本身訪問資源。
ide
*acl要先定義後調用,但能夠只定義不調用
*調用acl時遇到匹配就執行,後邊的就不查看了
*因此在調用acl時,要把要小範圍的放在大範圍的上邊
5.squid優勢:
1)經過緩存增長訪問速度。
2)提供用私有IP訪問internet的方法。
3)提升網絡的安全性。
4)方便對用戶的管理。
6.squid缺點:
1)產生單點故障。
2)當同時訪問時網絡比較慢。
7.進程名 squid
進程全部者/組 squid
端口號 3128
數據傳輸協議 tcp
實驗(一)
實驗目的:搭建普通代理
實驗環境:3臺服務器
pc1 主機名:localhost IP地址:192.168.1.10 內網客戶機
pc2 主機名:fanlj 代理服務器 (eth0鏈接內網IP地址192.168.1.254,eth1鏈接外網IP地址1.1.1.254)
pc3 主機名:fanxiaohui IP地址:1.1.1.1 外網web服務
實驗要求:
PC2代理內網用戶PC1能夠訪問外網的WEB服務。
搭建實驗環境分別安裝以上要求進行搭建,而且在pc2上測試是否能夠ping通1.1.1.254和1.1.1.1。
在外網WEB建立一個網頁index.html,內容是1.1.1.1
在PC2上測試是否能夠訪問WEB的內容
在PC2上部署squid代理,能夠代替內網用戶PC1的用戶能夠訪問PC3WEB的內容
1.查看軟件包是否安裝,若是沒有安裝,就安裝squid軟件包。
2.修改主配置文件,http_port訪問squid端口爲3128,cache_dir爲緩存存放的目錄,ufs爲目錄的固定格式,/var/spool/squid爲存放的位置,100爲緩存的大小,16爲/var/spool/squid目錄下有16個目錄,256爲在16個目錄下有256個子目錄,cache_mem爲拿出實際物理內存32M作高速緩存,visible_hostname爲主機名,當系統的主機名和hosts文件中127.0.0.1中的主機名不一致時,必須在squid配置文件中要指明主機名,默認squid服務就代替私ip地址經過本身上網。
3.從新啓動squid服務,而且查看/var/spool/squid目錄下是否有16個目錄。
查看端口和進程
4.在客戶端PC1測試,客戶端必須在本身的瀏覽器中指定代理 服務器的IP地址和代理服務監聽的端口 。
在客戶端瀏覽器上選擇編輯---首選項----高級----網絡---設置----手動配置代理指向本身本網段squid代理的IP地址和端口爲3128.
5.在代理服務器上查看有那些客戶端訪問過1.1.1.1
普通代理缺點:
客戶端必須在本身瀏覽器中指定代理服務器的IP地址。
實驗(二)
實驗目的:配置透明代理
透明代理優勢:客戶端不須要在本身的瀏覽器裏指定代理服務器的ip地址和代理服務監聽的,只要把網關指定代理服務器的私網接口的IP地址就能夠上網。
實驗要求:客戶端不在本身的瀏覽器中指定代理的接口和IP地址就能夠上網。
配置squid透明代理的前題條件?
企業的網關(共享接入Internet)
防火牆服務必須和代理服務運行在一臺服務器上
須要設置防火牆策略(將客戶機的Web訪問數據轉交給代理服務程序處理)
一、把客戶端訪問網站的請求包,發個代理服務器
二、在代理服務器上運行防火牆服務,編寫防火牆規則,把本機接收到的訪問web的請求轉交給本機的代理服務
iptables -t 表名 管理選項 鏈名 匹配條件 -j 處理動做
表名(不一樣的表有不一樣的功能)
filter 數據包過濾
mangle 給數據包打標記
nat 給數據包作轉換(源地址 \ 目的地址\ 端口)
raw 跟蹤數據包狀態
管理選項
-L 查看
-D 刪除
-A 添加
-F 清空
鏈 (數據包傳輸的方向 以防火牆本機爲參照物)
INPUT 進入防火牆的數據包
OUTPUT 從防火牆本機出去的數據包
FORWARD 通過防火牆的數據包
POSTROUTING 路由後
PREROUTING 路由前
匹配條件
-i 指定數據包從那個物理接口進入
-s 指定數據包的來源地址
-p 指定數據傳輸協議
--dport 指定數據包的目標端口
處理動做
DROP 丟棄
REJECT 拒絕
DNAT 目標地址轉換
SNAT 源地址轉換
REDIRECT 端口狀態
3.在客戶端測試,打開客戶端瀏覽器輸入http://1.1.1.1
實驗(三)squid反向代理
反向代理: 代替公網客戶端訪問私網的服務器。
實驗目的:配置squid的反向代理
實驗要求:公網用戶要訪問私網的服務器的內容。
實驗環境:3臺服務器
pc1 主機名:localhost IP地址:192.168.1.10 內網web服務器
pc2 主機名:fanlj 代理服務器 (eth0鏈接內網IP地址192.168.1.254,eth1鏈接外網IP地址1.1.1.254)
pc3 主機名:fanxiaohui IP地址:1.1.1.1 外網client(用戶)
環境分析:外網用戶要訪問內網web服務器必須經過代理服務器來訪問,代理服務器必須監聽80端口才能使外網訪問內網,因此代理服務器上的httpd訪問必須中止,若是代理服務器上有httpd服務,那麼外網只能訪問代理上的web服務。
1.修改主配置文件,使代理服務器作反向代理。cache_peer爲真正後端服務器的地址,parent代理服務器和實現web服務器的關係,80表明訪問的端口,0表明與其餘代理服務器通訊的接口,originserver表明提供服務器的真正主機。
2.代理服務器中止防火牆和查看80端口是否被佔用,若是佔用被釋放,重新啓動squid服務。
3.在web服務器端192.168.1.10作一個網頁頁面,並查看 httpd是否開啓
4.公網用戶查看是否能夠訪問web服務器。
實驗(四)基於域名和端口的虛擬主機的訪問。
實驗目的(一):當外網用戶訪問www.tarena.com,內網服務器端顯示wwwpage頁面,(http://www.tarena.com顯示wwwpage)
用戶訪問bbs.tarena.com ,內網服務器端顯示bbspage頁面(http://bbs.tarena.com 顯示bbspage)。
1.在內網服務器建立兩個文件夾用來存放頁面分別爲:wwwpage和bbspage
2.在內網服務器上建立基於域名的虛擬主機,使外網用戶訪問不一樣地址時顯示不一樣的頁面。
3.測試本身訪問是否能夠解析
4.在squid服務器上配置DNS服務用來解析www.tarena.com和bbs.tarena.com.
5.在外網客戶端上測試查看是否能夠訪問www.tarena.com 和bbs.tarena.com