您好,登錄后才能下訂單哦!
防偽碼:天道酬勤,沖向理想的彼岸
簡(jiǎn)介:
squid 是 Linux系統(tǒng)中最常用的一款開源代理服務(wù)軟件
(官方網(wǎng)站:http//www.squid-cache.org)
可以很好地實(shí)現(xiàn)HTTP和FTP,以及DNS查詢、SSL等應(yīng)用的緩存代理,功能十分強(qiáng)大。
作為應(yīng)用層的代理服務(wù)軟件,squid主要提供緩存加速、應(yīng)用層過濾控制的功能。
代理的工作機(jī)制
當(dāng)客戶機(jī)通過代理來(lái)請(qǐng)求web頁(yè)面時(shí),指定的代理服務(wù)器會(huì)先檢查自己的緩存,如果緩存中已有客戶機(jī)需要的頁(yè)面,則直接將緩存中頁(yè)面內(nèi)容反饋給客戶機(jī);如果緩存中沒有客戶機(jī)要訪問的頁(yè)面,則由代理服務(wù)器向Internet發(fā)送訪問請(qǐng)求,當(dāng)獲得返回的web頁(yè)面以后,將網(wǎng)頁(yè)數(shù)據(jù)保存到緩存中并發(fā)送給客戶機(jī)
HTTP代理的緩存加速對(duì)象主要是文字、圖像等靜態(tài)web元素。當(dāng)客戶機(jī)在不同的狀態(tài)下訪問同一網(wǎng)站應(yīng)用時(shí),或者不同的客戶機(jī)訪問同一網(wǎng)站應(yīng)用時(shí),可以直接從代理服務(wù)器的緩存中獲取相應(yīng)的結(jié)果。這樣就大大減少了向Internet提交重復(fù)的網(wǎng)站web頁(yè)面請(qǐng)求的過程,提高了客戶機(jī)的訪問響應(yīng)速度。
由于客戶機(jī)的web訪問請(qǐng)求實(shí)際上是由代理服務(wù)器來(lái)代替完成的,從而可以隱藏用戶的真實(shí)IP地址,起到一定安全保護(hù)作用。
代理的基本類型:
1.傳統(tǒng)代理:
必須在客戶機(jī)通過瀏覽器、QQ聊天工具、下載應(yīng)用軟件程序中,手動(dòng)設(shè)置代理服務(wù)器的IP地址和端口。
才可以使用代理來(lái)訪問網(wǎng)絡(luò)應(yīng)用。
傳統(tǒng)代理適用于Internet互聯(lián)網(wǎng)環(huán)境中。
2.透明代理:
和傳統(tǒng)代理一樣,主要區(qū)別在于客戶機(jī)不需要指定代理服務(wù)器的地址和端口號(hào),而是通過默認(rèn)路由、防火墻策略將訪問web請(qǐng)求的80端口重定向到代理服務(wù)器的3128端口做映射,重定向的過程對(duì)客戶機(jī)來(lái)說是透明的
透明代理使用于局域網(wǎng)環(huán)境中。
安裝squid服務(wù)的相關(guān)配置及命令
一、搭建傳統(tǒng)代理服務(wù)
1.編譯安裝squid
上述編譯模塊參數(shù)含義如下:
--prefix=/usr/local/squid //安裝目錄
--sysconfdir=/etc //單獨(dú)將配置文件修改到其他目錄
--enable-arp-acl //可以在規(guī)則中直接通過客戶端MAC進(jìn)行管理,防止客戶端使用IP欺騙
--enable-linux-netfilter //使用內(nèi)核過濾
--enable-linux-tproxy //支持透明模式
--enable-async-io=值 //異步I/O提升存儲(chǔ)性能
--enable-err-language="Simplify_Chinese" //錯(cuò)誤信息的顯示語(yǔ)言
--enable-underscore //允許URL中有下劃線
--enable-poll //使用poll()模式,提升性能
--enable-gnuregex //使用GNU正則表達(dá)式
安裝完后,創(chuàng)建鏈接文件,創(chuàng)建用戶和組
2.Squid的配置文件
Squid的配置文件位于/etc/squid.conf,更詳細(xì)的配置項(xiàng)請(qǐng)參考/etc/squid.conf.documented文件。
3.Squid的運(yùn)行控制
(1)檢查配置文件語(yǔ)法是否正確
(2.)啟動(dòng)、停止Squid
第一次啟動(dòng)squid服務(wù)時(shí),會(huì)自動(dòng)初始化緩存目錄。在沒有可用的Squid服務(wù)腳本的情況下,也可以直接調(diào)用Squid程序來(lái)啟動(dòng)服務(wù),這時(shí)需要先進(jìn)行初始化。
(3.)使用squid服務(wù)腳本
為了使squid服務(wù)的啟動(dòng)、停止、重載等操作更加方便,并使用chkconfig和service工具來(lái)進(jìn)行管理。
將編寫好的腳本受予執(zhí)行權(quán)限,然后再將squid的程序添加為系統(tǒng)服務(wù)
在squid服務(wù)器上添加一條防火墻規(guī)則,允許客戶端通過squid代理去訪問web網(wǎng)站
客戶機(jī)的代理配置
注意:如果客戶機(jī)是一臺(tái)Linux的話,要想使用代理服務(wù)器(如elinks網(wǎng)頁(yè)瀏覽器、wget下載工具),必須通過環(huán)境變量來(lái)指定代理服務(wù)器的地址、端口等信息。
傳統(tǒng)代理服務(wù)的驗(yàn)證方法
(1.)查看squid訪問日志的新增記錄
tail /usr/local/squid/var/logs/access.log
通過查看squid的服務(wù)器的訪問日志,可以發(fā)現(xiàn)客戶機(jī)172.16.16.110去訪問web網(wǎng)站服務(wù)器172.16.16.172的記錄消息。
(2.)查看web訪問日志的新增記錄
tail /var/log/httpd/access_log
在被訪問的web服務(wù)器中,通過訪問日志發(fā)現(xiàn)來(lái)自代理服務(wù)器172.16.16.22的訪問記錄,說明當(dāng)使用代理服務(wù)器時(shí),web服務(wù)器并不知道客戶機(jī)的真實(shí)IP地址,因?yàn)閷?shí)際是由代理服務(wù)器替它在訪問。
172.16.16.22的IP地址是代理服務(wù)器的地址。
二、搭建透明代理服務(wù)
在Linux網(wǎng)關(guān)上,構(gòu)建squid代理服務(wù)為局域網(wǎng)客戶機(jī)去訪問Internet提供服務(wù)
在所有的局域網(wǎng)客戶機(jī)上,只需正確配置IP地址、默認(rèn)網(wǎng)關(guān)即可。
1.配置squid支持透明代理
squid服務(wù)的默認(rèn)配置是不支持透明代理的,因此需要修改配置文件。squid2.6以上版本的只需在http_port配置行后面加上一個(gè)transparent選項(xiàng)即可。
2.設(shè)置iptables的重定向策略
注意:透明代理服務(wù)中的squid服務(wù)器是構(gòu)建在Linux網(wǎng)關(guān)主機(jī)上的,所以要設(shè)置防火墻策略將客戶機(jī)訪問外網(wǎng)的數(shù)據(jù)包交給squid服務(wù)器去處理,在防火墻上設(shè)置一條REDIRECT(重定向策略),其作用就是將客戶機(jī)訪問互聯(lián)網(wǎng)的端口映射給squid服務(wù)器的3128端口。
注意:REDIRECT也是一種數(shù)據(jù)包控制類型,只能在nat表的PREROUTING或OUTPUT鏈以及被調(diào)用的鏈中使用。
注意:此時(shí)還要開啟路由轉(zhuǎn)發(fā)功能,否則數(shù)據(jù)是過不去的?。?!
3.驗(yàn)證透明代理的使用
注意:清除手動(dòng)代理相關(guān)的配置
驗(yàn)證結(jié)果:
在squid代理服務(wù)器日志發(fā)現(xiàn),客戶機(jī)192.168.4.110訪問過目標(biāo)網(wǎng)站172.16.16.172的記錄信息
在被訪問的web網(wǎng)站服務(wù)器上發(fā)現(xiàn),來(lái)自代理服務(wù)器的IP地址為172.16.16.1的訪問記錄,從而隱藏了真實(shí)IP。
三、ACL訪問控制
可以針對(duì)源地址、目標(biāo)地址、訪問的URL路徑、訪問的時(shí)間等各種條件進(jìn)行過濾
ACL訪問控制通過以下兩個(gè)步驟來(lái)實(shí)現(xiàn):其一,使用acl配置項(xiàng)定義需要控制的條件 其二,通過http_access配置項(xiàng)對(duì)已定義的列表做允許 或 拒絕 訪問的控制。
1.定義訪問控制列表
acl 列表名稱 列表類型 列表內(nèi)容
常用的訪問控制列表類型:
src : 源IP地址、網(wǎng)段、IP地址范圍
dst : 目標(biāo)IP地址、網(wǎng)段、主機(jī)名
port : 目標(biāo)端口
dstdomain :目標(biāo)域,匹配域內(nèi)所有站點(diǎn)
time : 使用代理服務(wù)的時(shí)間段
maxcom : 每個(gè)客戶機(jī)的并發(fā)連接數(shù)
url_regex : 目標(biāo)資源的URL地址,-i表示忽略大小寫
urlpath_regex :目標(biāo)資源的整個(gè)URL路徑。
2.設(shè)置訪問權(quán)限
http_access allow或deny 列表名 取反時(shí),加!符號(hào)
驗(yàn)證訪問控制結(jié)果
.
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。