Squid----透明代理模式
一:定義
透明代理提供的服務功能與傳統代理是一致的,但是其“透明”的實現依賴於默認路由和防火牆的重定向策略,因此更適合局域網主機服務,而不適合爲Internet中的客戶機提供服務。
客戶機不需要指定代理服務器的地址和端口,是通過默認路由,防火牆將web重定向給代理;使用代理可以提高web的訪問速度,同時可以隱藏客戶機的真實IP地址,從而起到一定的保護作用;另一方面,squid也可以針對要訪問的目標、客戶機的地址、訪問的時間段進行過濾控制。
二:網絡拓撲圖
三:實驗環境
Squid服務器需添加一塊網卡:192.168.10.1 (僅主機模式);
client客戶機修改網卡爲僅主機模式,IP地址修改爲192.168.10.10,瀏覽器要關閉代理功能。
四:實驗步驟
(實驗接着squid傳統代理模式下繼續做)
1、添加一塊網卡(僅主機模式)
2、設置網卡IP地址
[root@squid ~]# cd /etc/sysconfig/network-scripts/
[root@squid network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@squid network-scripts]# vim ifcfg-ens36
[root@squid network-scripts]# service network restart ‘重啓網卡’
3、開啓路由轉發功能
[root@squid network-scripts]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1 ‘末行添加’
[root@squid network-scripts]# sysctl -p ‘加載sysctl.conf’
4、配置squid透明代理
[root@squid squid-3.4.6]# vim /etc/squid.conf
[root@squid init.d]# service squid start
[root@squid init.d]# iptables -F
[root@squid init.d]# iptables -t nat -F
[root@squid init.d]# iptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
[root@squid init.d]# iptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
[root@squid init.d]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT[root@squid init.d]#
[root@squid init.d]# netstat -ntap | grep 3128
tcp 0 0 192.168.10.1:3128 0.0.0.0:* LISTEN 39330/(squid-1)
[root@web ~]# systemctl stop firewalld.service
[root@web ~]# setenforce 0
[root@web ~]# systemctl start httpd
1、添加一條靜態路由,下一跳地址指向squid服務器的 ens33網卡
[root@web ~]# route add -net 192.168.10.0/24 gw 192.168.48.128
2、修改客戶機的IP地址,網卡修改爲僅主機模式
3、這個時候web服務器可以ping通客戶機
4、用客戶機訪問web端
5、查看web端的訪問日誌
[root@web ~]# cat /var/log/httpd/access_log
‘ 此時的來訪者IP地址爲squid代理服務器的IP地址,在客戶端上並沒有設置squid代理,客戶端直接訪問web端也會顯示squid代理IP地址,這就是squid透明代理模式'