用戶的浏覽器不需要任何代理設置就能使用我的Squid cache代理服務器上網?此時你就需要使用透明代理,那麼Linux中怎麼設置透明代理呢?今天學習啦小編與大家分享下Linux中設置透明代理的具體操作步驟,有需要的朋友不妨了解下。
Linux中設置透明代理方法
透明模式的特點就是對用戶是透明的(Transparent),即用戶意識不到防火牆的存在。要想實現透明模式,防火牆必須在沒有IP地址的情況下工作,不需要對其設置IP地址,用戶也不知道防火牆的IP地址。
透明模式的防火牆就好象是一台網橋(非透明的防火牆好象一台路由器),網絡設備(包括主機、路由器、工作站等)和所有計算機的設置(包括IP地址和網關)無須改變,同時解析所有通過它的數據包,既增加了網絡的安全性,又降低了用戶管理的復雜程度。
防火牆使用透明代理技術,這些代理服務對用戶也是透明的,用戶意識不到防火牆的存在,便可完成內外網絡的通訊。當內部用戶需要使用透明代理訪問外部資源時,用戶不需要進行設置,代理服務器會建立透明的通道,讓用戶直接與外界通信,這樣極大地方便了用戶的使用。
一般使用代理服務器時,每個用戶需要在客戶端程序中指明要使用代理,自行設置Proxy參數(如在浏覽器中有專門的設置來指明HTTP或FTP等的代理)。而透明代理服務,用戶不需要任何設置就可以使用代理服務器,簡化了網絡的設置過程。
透明代理與透明模式都可以簡化防火牆的設置,提高系統安全性。但兩者之間也有本質的區別:工作於透明模式的防火牆使用了透明代理的技術,但透明代理並不是透明模式的全部,防火牆在非透明模式中也可以使用透明代理。
那麼下邊我們就通過示例讓大家明白透明代理、傳統代理及ACL控制的效果:
實驗環境(略加修改,因為當測試網站在同一網段就沒有必要驗證了):
地址規劃:
Squid 代理:
eth0:192.168.10.1
eth1:173.16.16.173
測試網站:173.16.16.2
客戶機:192.168.10.10
實驗描述:
在squid主機上,構建squid為客戶機訪問各種網站提供代理服務;
在客戶機上,指定squid作為web訪問代理,以隱藏自己的真實IP地址。
實驗步驟:
1:squid服務器的配置:
因代理服務的主配置文件大多是注釋行,需簡化配置文件:
過濾前先進行備份—數據至上:
[root@squid ~]# mv /etc/squid/squid.conf /etc/squid/squid.conf.bak
執行過濾操作:
[root@squid ~]# grep -v "^#" /etc/squid/squid.conf.bak | grep -v "^$" > /etc/squid/squid.conf
在主配置文件/etc/squid/squid.conf中,添加配置項
http_port 3128 ###指定代理服務監聽的端口,默認為3128
cache_mem 64 MB ###指定緩存所使用的內存空間的大小
maximum_object_size 4096 KB ###保存到緩存空間的最大對象(文件)大小
reply_body_max_size 10240000 allow all ###允許用戶下載的最大文件大小,其中all為默認的訪問控制列表名
cache_dir ufs /var/spool/squid 100 16 256 ###指定緩存數據所存放的目錄,容量,子目錄個數;其中100為容量100M;16為一級子目錄;256為二級子目錄
access_log/var/log/squid/access.log squid ###指定代理服務的日志文件位置及記錄格式(squid)
visible_hostname localhost ###指定代理服務器本機的主機名
dns_testname www.sohu.com ###執行DNS解析,確保squid服務器自身的DNS查詢功能正常,只要成功解析出一個域名,則不再測試後邊的其他域名
http_access allow all ###放在http_access deny all之前
2:在Squid服務器上配置防火牆策略,允許3128端口訪問外網的WEB服務器
iptables -I(大寫i) INPUT -p tcp --dport 3128 -j ACCEPT
3:初始化並啟動服務(2種方法)
a:squid -z ###初始化緩存目錄
squid -D ###啟動squid 服務
b:service squid start ###初始化並啟動服務
修改squid.conf配置文件後,需要重新加載方可生效。
執行“ service squid reload ”或者“ squid -k reconfigure”重新加載。