999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

CentOS 7中Squid代理服務器的配置與實現

2020-07-04 02:35:21劉春景建強邵國強孫濤張麗華
現代信息科技 2020年3期

劉春 景建強 邵國強 孫濤 張麗華

摘? 要:Squid代理服務器是下載速度快、縮短延時并緩存Internet數據的軟件,可以通過正向代理、反向代理實現加快內部瀏覽互聯網速度,提高網絡的安全性。文章首先分析代理工作原理,提出正向代理、透明代理和反向代理三種類型的應用機制,然后詳細闡述了ACL訪問控制特性來靈活地控制用戶訪問時間、站點等,最后通過實驗實現了Squid服務器的代理機制應用。

關鍵詞:代理緩存服務器;正向代理;反向代理;ACL訪問控制

中圖分類號:TP316.81? ? ? 文獻標識碼:A 文章編號:2096-4706(2020)03-0038-04

Abstract:Squid proxy server is a software with fast download speed,short delay time and cache Internet data,which can speed up the internal browsing speed and improve the network security through forward proxy and reverse proxy. This paper first analyzes the working principle of the agent,and puts forward three types of application mechanisms:forward agent,transparent agent and reverse agent. Then it elaborates the ACL access control characteristics to flexibly control user access time,site and other restrictions. Finally,it realizes the application of Squid servers agent mechanism through experiments.

Keywords:proxy cache server;forward proxy;reverse proxy;ACL access control

0? 引? 言

為推動高校積極開展面向互聯網應用創新的科研與教學改革,教育部科技發展中心設立“新一代信息技術創新項目”。我校獲批教育部科技發展中心高校產學研創新基金項目,進行基于Docker在Kubernetes中實現容器的高可用的研究,促進信息技術與教育深度融合,提升高校創新型應用成果的產業化,其中Squid服務器是應用于該項目的一個代理服務器,是高性能的代理緩存服務器。Squid緩存不僅可以節省寶貴的帶寬資源,也可以大大降低服務器的I/O。從經濟角度考慮,它是很多網站架構中不可或缺的角色。Squid服務器主要支持HTTP、FTP等應用協議,一般用來做前置的Web緩存,加快用戶訪問Web的速度;代理內網用戶訪問互聯網資源;設置訪問控制策略,控制用戶的上網行為。

1? 代理服務器機制

1.1? 代理工作基本原理

Squid服務器是一個緩存Internet數據的軟件,當一個客戶機用戶想要下載或訪問一個Web站點時,可以直接向Squid服務器提出一個申請,由Squid服務器連接所申請的主頁,把網頁反饋給到客戶機。存在兩種情況,一是Squid服務器緩存中已經備份有客戶機想訪問的頁面的數據,那么代理服務器會直接把這部分數據直接返回給用戶,使用戶沒有延時的感覺;二是Squid服務器的緩存中若沒有客戶機用戶需要訪問的數據,Squid就向Internet上的遠程服務器提出申請,等待遠程的應答后,接受遠程服務器相應的頁面,Squid服務器把這些數據再返回給客戶機用戶,同時備份一份數據到緩存里。并且,Squid服務器可以根據自己的需要設置規則,過濾掉不需要的數據,保存必需的數據。

Squid服務器的緩存功能可以實現不同地點、不同狀態的客戶機訪問或下載同一個遠程服務器的頁面時,可以直接把緩存中存在備份頁面立即返回給這些客戶機,一方面提高了訪問速度,同時也避免了Squid服務器向同一個遠程服務器不斷重復提交相同頁面的申請,減少了客戶機等待服務器的反應時間,提高了用戶的訪問速度。

從安全角度來講,用戶無論是訪問瀏覽網站還是企業網站,這些目的網站只是接受代理服務器的訪問請求,不知道客戶機用戶真實的IP地址,從而保護了客戶機的安全,保證用戶的隱私和權益。

1.2? 代理的基本類型

代理服務器常分為正向代理、透明代理、反向代理。

(1)正向代理服務器:代理服務器位于客戶端和真實服務器之間。客戶端主動尋找代理服務器,為了通過代理服務器訪問自己本身無法直接訪問的主機,客戶端借由正向代理可以訪問很多不同互聯網服務器的資源。正向代理作為客戶端的代理,將從互聯網上獲取的資源返回給一個或多個的客戶端,服務端(如Web服務器)只知道代理的IP地址而不知道客戶端的IP地址。

(2)透明代理服務器:和傳統代理一樣,主要區別在于客戶機不需要指定代理服務器的地址和端口號,多見于局域網環境,如在Linux網關中啟用透明代理后,對控制用戶訪問網站行為的訪問控制列表進行限制。

(3)反向代理服務器:以代理服務器來接收Internet上的連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給Internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器。

由于Squid服務器安裝簡單、使用方便,所以已經被廣泛使用。

2? Squid服務器的基礎設定

2.1? 安裝Squid服務器

通常來說,安裝Squid服務器有三種方法:第一種方法為從安裝光盤中獲取RPM包進行安裝;第二種方法為從Squid的官方站點下載軟件的源代碼包,解壓縮并解包,編譯、鏈接生成可執行文件后進行安裝;第三種方法為現在普遍采用的配置好yum源后,通過【yum】命令【yum install -y squid】來安裝Squid服務器軟件,常用的是第三種安裝方法。

本機環境為CentOS 7.5,Squid服務器版本為3.5.20,首先查詢是否安裝過Squid服務器。

2.2? /etc/squid/squid.conf主配置文件說明

CentOS 7.x相比以前版本,主配置文件squid.conf非常簡單,已經將里面一些的設定值去掉了,這樣使用起來比較方便,但是如果想要進行其他的設定,就需要額外參考外部文件。同時系統提供了一個默認的配置文件squid.conf.default。

squid.conf文件的結構以及一些常用的選項:該文件由訪問控制列表、參數設置和刷新模式三部分組成,在實際應用Squid服務器前,需要對該文件進行參數配置。

2.3? Squid服務器的訪問控制列表

通過對Squid服務器的基本參數及訪問控制的設置,能夠提高該服務器的使用性能。默認的訪問控制是拒絕所有客戶機的請求代理,因此,要讓客戶機能夠通過代理機制訪問Web頁面,首先需要在主配置文件squid.conf中添加訪問控制規則,其中IP地址在訪問控制元素中是使用最廣泛的,可以是地址范圍、子網等方式,例如可以設置目標服務器IP地址(即dst)來阻止客戶機訪問特定的Web頁面站點,或通過設置終端用戶的源地址(即src)限制哪些客戶機可以訪問Squid服務器。組成訪問控制列表的元素除了IP地址外,還包括端口號、訪問的時間、主機名及URL等條件。每個ACL參數定義的語法包括列表名稱、列表類型及列表值。其中列表名稱是每個ACL的名字,列表類型是指Squid服務器可識別的類型,Squid大約有25個不同的ACL類型,如src、dst、myip、dstdomain、srcmoain等。每個ACL由一個或多個包含邏輯或運算連接的列表值組成,通過對多列表值的匹配實現過濾功能。

通過對訪問控制列表的HTTP_ACCESS參數項的設置“允許”與“拒絕”的訪問權限,用來過濾進出訪問Squid服務器的客戶端。如決定哪些客戶可以請求HTTP、哪些客戶拒絕時可以使用HTTP_ACCESS規則。訪問列表可以由多條規則構成,這些規則按照各自的順序進行排列,當Squid服務器依次檢測,一旦搜索到第一個匹配的規則時,就停止查找。如果每一個或某一類用戶沒有檢測到與之相匹配的條件,那么Squid服務器則默認匹配當前規則列表中最后一個規則,若最后一條訪問規則的條件是“拒絕”,就表示禁止該用戶訪問代理的請求,反之,則允許訪問。為了代理服務器的安全,通常把最后的一條規則設置為“deny”或“allow”。

HTTP_ACCESS的參數在設置時,注意以下條件:

(1)盡管列表名稱可以任意定義,但是要盡量定義便于理解、有實際意義的名稱,方便管理維護,任何2個ACL不能使用相同的列表名稱。不同的ACL元素分布在不同的行,通過Squid服務器組合在一個控制列表中。

(2)不同類型的列表值不同,以空格為分隔,多個列表值之間為“或”的關系,其中任何一個列表值檢測匹配成功,就表示該ACL元素即被匹配;若需要限制的列表內容較多,可以通過獨立的文件來存放,并在ACL的配置行中指明該文件的存放位置即可。

(3)Squid服務器有許多列表規則,訪問列表的規則按照由上而下的順序,Squid找到匹配的規則就不再繼續搜索,因此將最常用、最具體匹配的訪問規則放在列表前面,這就意味著延時最少,使用效率最高;若沒有設置任何訪問規則,Squid服務器將默認拒絕終端用戶的訪問請求。

(4)沒有設置任何規則時,Squid服務將拒絕客戶端的請求。這也就是為什么配置文件中默認存在三個網段的ACL規則,若想拒絕默認存在的3個網段中的某個網段,還需將其注釋掉,再進行限制,以免發生沖突,造成訪問規則不生效。

(5)由于將ACL主機名轉換到IP的過程會延緩Squid的啟動過程,一般在ACL中規則設置時,src、dst及myip中避免使用主機名,而是使用IP地址。

3? Squid服務器的代理實現

3.1? 正向代理實現

正向代理中Squid服務器后面是客戶端,客戶端上網要通過Squid代理服務器登錄外網,主要用在企業的辦公環境中,員工訪問公網需要通過Squid代理服務器來實現,這樣可以節省網絡帶寬資源。而反向代理用來搭建網站靜態項(圖片、html、流媒體、js、css等)的緩存服務器,它用于網站架構中。實驗采用CentOS 7.6版本的3臺虛擬機,分別代表內Web服務器端、Squid服務代理端,內網客戶端。Squid服務器端能夠訪問外網,內網客戶端指定網關和HTTP代理,實現使內網客戶端通過Squid服務正向代理訪問外網及緩存的目標。

具體配置參數如下,Squid服務器的主機名squid.dqsy.com,雙網卡模式為僅主機模式與NAT模式,Squid服務器的IP地址為192.168.32.111/僅主機模式。內網用戶客戶端主機名為client.dqsy.com,網絡模式采用僅主機模式,其IP為192.168.32.110。實現Squid服務器能夠訪問外網,內網用戶只能與Squid服務器ping通,但是不能訪問外網。

3.1.1? 搭建Squid服務器、內網客戶端環境

(1)部署Squid服務器,實現雙網卡模式:

Windows系統下打開網絡連接,可以看到有兩個與VMware有關的虛擬網卡,虛擬機在NAT網絡模式下,主要依靠VMnet8網卡跟宿主機通信,所以必須保證啟用了這塊網卡,并設置IP、子網掩碼及網關等。首先使用VMware的菜單【編輯】-【虛擬網絡編輯器】設置網絡連接模式為僅主機模式與NAT模式,接著選中Squid服務器所對應虛擬機的【設置】-【虛擬機設置】添加網絡適配器為雙網絡連接模式。

(2)關閉防火墻,建立主機名:

使用【systemctl stop firewalld】或【systemctl disable fire-walld】命令關閉防火墻,禁用SElinux。

【hostnamectl set-hostname squid.dqsy.com】建立主機名。

(3)查看Squid服務器的IP,設置雙網卡地址:

【cd /etc/sysconfig/network-scripts/】進入網卡配置文件所在目錄。

【vim ifcfg-ens33】設置僅主機模式的靜態IP。

【cp -a ifcfg-ens33 ifcfg-ens37】命令復制原網卡配置文件,新文件為ifcfg-ens37為NAT模式網卡配置文件名。

【vim ifcfg-ens37】命令直接修改網卡的配置文件來配置靜態IP,DNS域名服務器可以指定8.8.8.8,也可以指定114.114.114.114進行測試。

【systemctl stop NetworkManager】關閉網絡管理器Network-Manager。

【rm -rf /etc/udev/rules.d/70-persistent-ipoib.rules】刪除70- persistent-net.rules文件。

配置完成,reboot命令重啟機器后,需要通過命令【sys-temctl restart network】重啟網絡服務。在網卡的IP地址對應的配置文件中,如果配置的是外網的網卡對應的配置文件,那么,GATEWAY必須要填寫,如果配置的是內網的網卡對應的配置文件,那么,GATEWAY必須為空,或者注釋掉此項。使用安裝好的firefox瀏覽器訪問外網即可查詢。

(4)內網客戶機設置網絡連接模式及靜態IP:

選中Squid服務器所對應虛擬機的【設置】-【虛擬機設置】設置虛擬機的網絡適配器網絡連接模式為僅主機模式。使用【systemctl stop firewalld】或【systemctl disable firewalld】命令關閉防火墻,禁用SElinux。

【hostnamectl set-hostname client.dqsy.com】建立主機名。

【vim /etc/sysconfig/network-scripts/ifcfg-ens33】命令直接修改網卡的配置文件來配置靜態IP。

【systemctl stop Network Manager】關閉網絡管理器Netwok-Manager。

配置完成后,需要通過命令【systemctl restart network】重啟網絡服務。

3.1.2? 配置Squid服務器

(1)安裝Squid服務:

首先查詢Squid軟件是否安裝,如果沒有,可以通過yum源安裝。

【rpm -qa squid】檢查Squid軟件是否安裝。

【yum install -y squid】如果沒有安裝,則通過此命令安裝。

【cp -p /etc/squid/squid.conf /etc/squid/squid.conf.bak】在修改配置文件前,一定要備份配置文件。

(2)編輯/etc/squid/squid.conf配置文件:

【vim /etc/squid/squid.conf】在參數配置部分添加規則visible_hostname squid.dqsy.com。

【systemctl start squid】啟動Squid服務。

【systemctl enable squid】設置Squid服務開機自動啟動。

【lsof -i:3128】查看3128端口。

(3)開啟路由轉發:

【echo “1”>/proc/sys/net/ipv4/ip_forward】臨時開啟路由轉發。或【vim /etc/sysctl.conf】加入一行net.ipv4.ip_forward=1,保存退出后,使用【sysctl-p】命令刷新,永久開啟路由轉發。

3.1.3? 實現正向代理

(1)內網客戶機配置網關:

【vim /etc/sysconfig/network-scripts/ifcfg-ens33】添加一行“GATEWAY=192.168.20.121”指向Squid服務器的僅主機模式的IP。

【systemctl restart network】重啟網絡服務。

(2)配置代理服務器的IP和代理端口:

選中Firefox瀏覽器右上角open menu--preferences--advanced--network--settings--手動填寫代理服務器的IP和代理端口,此處填寫就應該填寫192.168.20.121,端口3128,然后保存退出后就能訪問外網了。

3.2? 反向代理實現

反向代理和正向代理恰恰相反,是客戶端訪問緩存服務器,緩存服務器反向代理給后端的真實服務器。這樣的好處就是大大減小后端服務器的訪問壓力,當緩存服務器中有數據時,直接返回數據。沒有數據,則向后端存儲服務器進行索取數據,緩存在自己身上,以便下次訪問。實驗采用3臺虛擬機,第一臺機器域名為user.squid.com,模擬用戶,IP/網絡連接模式為:40.40.40.10/NAT模式;第二臺機器域名為server.squid.com,模擬Squid緩存服務器,IP/網絡連接模式為:40.40.40.11/NAT模式,192.168.32.11/僅主機模式;第三臺機器域名為web.squid.com,模擬后端真實服務器,IP/網絡連接模式為:192.168.32.10/僅主機模式。具體實現如下:

3.2.1? web.squid.com端進行主機網卡設置、生效

(1)首先修改主機名以便查看:

【hostnamect】set-hostname web.squid.com

(2)重啟機器讓主機名生效。

(3)配置僅主機網卡:

vim /etc/sysconfig/network-scripts/ifcfg-ens33ens33

重啟網卡讓IP生效

systemctl restart network

(4)掛載光盤:

【root@Web ~】# mount/dev/sr0/mnt/

mount:/dev/sr0 寫保護,將以只讀方式掛載

(5)編寫本地yum源文件,指定rpm包的掛載目錄:

【root@Web ~】#cd/etc/yum.repos.d/

【root@Web yum.repos.d】# mkdir repo_bak

【root@Web yum.repos.d】# mv * repo_bak/

【root@Web yum.repos.d】# vim local.repo

【local】

name=local #起個名字

baseurl=file:///mnt #指定rpm包的掛載目錄

enabled=1 #開啟此源

gpgcheck=0 #不進行效驗(因為是本地光盤浪費時間且沒必要)

(6)更新緩存:

【root@Web yum.repos.d】# yum makecache

元數據緩存已建立

(7)安裝Apache服務:

apr.x86_64 0:1.4.8-3.el7

apr-util.x86_64 0:1.5.2-6.el7

HTTPd-tools.x86_64 0:2.4.6-67.el7.centos

完畢!

(8)向網站中寫入數據并啟動服務進行測試訪問:

【root@Web ~】# echo "This is Web page">/var/www/html/index.html

【root@Web ~】# systemctl start HTTPd

【root@Web ~】# curl localhost

This is Web page

3.2.2? server.squid.com端部署

(1)修改主機名:

hostnamectl set-hostname server.squid.com

(2)重啟機器并添加兩塊網卡。

(3)配置第一塊僅主機模式網卡:

Vim /etc/sysconfig/network-scripts/ifcfg-ens33

(4)重啟網卡使IP生效:

systemctl restart network

(5)安裝Squid服務:

【root@server ~】# yum install -y squid

(6)修改配置文件:

【root@server ~】# vim /etc/squid/squid.conf

56 HTTP_ACCESS allow all #允許所有訪問

59 HTTP_port 40.40.40.11:80 vhost vport #支持主機名或者端口訪問

60 visible_hostname server.squid.com #設置主機名信息

61 cache_peer 192.168.32.10 parent 80 0 originserver #指定后端real server并指定其端口0代表一臺Squid服務器

(7)啟動Squid服務:

【root@server ~】# systemctl start squid

(8)User端進行測試:

【root@user ~】# curl 40.40.40.11

This is Web page

實驗結果表明反向代理用于服務器端,用戶(域名:user.squid.com)訪問Squid緩存服務器(域名:server.squid.com)的80端口,緩存服務器根據配置去請求后端的Web服務器(域名:web.squid.com),然后把返回的數據備份到本地同時回復給用戶,當其他用戶再次請求相同的Web資源時,會直接把緩存的信息直接發送給該用戶,縮短延時。

4? 結? 論

Squid服務器是Linux系統中最常用的開源的代理服務軟件,支持HTTP、GOPHER、FTP、SSL協議代理,通過緩存加速的方式為用戶提供訪問Web頁面。客戶機無法訪問Web頁面時,可以如找一個跳板一樣,通過正向代理服務器實現訪問外部資源。而代理服務器會先檢查緩存,若緩存中存在需要訪問的Web頁面,則直接將頁面返回給用戶,若緩存中不存在用戶要訪問的信息,代理服務器向訪問Web網站進行申請,獲得回復后把頁面緩存到代理服務器中同時再把該內容回饋給用戶,當其他用戶再次訪問時直接發送給這些用戶,從而提高用戶的訪問命中率。反向代理對外是透明的,客戶機不需要設置任何參數就可以直接訪問Web頁面。

Squid服務器運用訪問列表控制實現應用層過濾控制功能,通過設置Squid的ACL元素及訪問規則,可以允許或拒絕某一用戶或某類用戶對Web頁面的訪問,限制企業用戶的上網行為,實現對訪問的安全控制。

參考文獻:

[1] 粟毅.Linux系統下Web網站服務器反向代理設計與實現 [J].信息與電腦(理論版),2018(18):75-77.

[2] 康志輝.基于反向代理的資源服務器重定向技術研究 [J].西安文理學院學報(自然科學版),2017,20(1):88-91.

[3] 孫莉娜.RHEL5中Squid代理服務器的配置與實現 [J].網絡安全技術與應用,2014(4):50+53.

[4] 薛建,王信堂,曲守寧.使用LVS和Squid構建代理服務器集群系統 [J].計算機系統應用,2012,21(11):29-33.

[5] 李莉,楊柯,趙磊.基于Linux的Squid代理系統的研究和實現 [J].信息安全與通信保密,2012(10):72-74.

作者簡介:劉春(1970.03-),女,漢族,山東齊河人,網絡工程系主任,教授,碩士研究生,工學碩士,主要研究方向:云計算、網絡工程、軟件工程;通訊作者:景建強(1998.10-),男,漢族,吉林長春人,本科,主要研究方向:容器云、網絡工程。

主站蜘蛛池模板: 99福利视频导航| 色综合成人| 亚洲成人在线免费| 亚洲婷婷丁香| 2024av在线无码中文最新| 无码福利视频| 国产99视频精品免费视频7| 久久人体视频| 国产一区二区免费播放| 国产欧美一区二区三区视频在线观看| 久久久久久久97| 亚洲有无码中文网| 久久精品中文字幕少妇| 麻豆国产在线观看一区二区| 亚洲欧洲一区二区三区| 欧美一区二区人人喊爽| 蜜桃臀无码内射一区二区三区| 亚洲一区波多野结衣二区三区| 国产精品男人的天堂| 国产精品女主播| 91精品人妻一区二区| 在线欧美a| swag国产精品| 99久久人妻精品免费二区| 国产欧美高清| 亚洲一区毛片| 日韩二区三区| 幺女国产一级毛片| 色综合成人| 久草国产在线观看| 91色在线视频| 国产第一页屁屁影院| 91在线日韩在线播放| 婷婷色狠狠干| 一级做a爰片久久毛片毛片| 女人18毛片久久| 国产精鲁鲁网在线视频| 亚洲三级a| 欧洲免费精品视频在线| 亚洲一区二区三区国产精华液| 色亚洲成人| 欧美乱妇高清无乱码免费| 免费在线视频a| 国产午夜一级毛片| 国产玖玖玖精品视频| 国产精品原创不卡在线| 成人av专区精品无码国产| 欧美日韩中文字幕二区三区| 中文毛片无遮挡播放免费| 伊人久热这里只有精品视频99| 日韩无码视频专区| 国产一区二区三区在线精品专区| 91小视频在线观看| 国产情侣一区二区三区| 欧美色香蕉| 中文字幕在线不卡视频| 久草热视频在线| 欧美亚洲中文精品三区| 美美女高清毛片视频免费观看| 在线看AV天堂| 日本手机在线视频| 国产91视频观看| 亚洲永久色| 爱爱影院18禁免费| 国产精品yjizz视频网一二区| 亚洲性影院| 亚洲黄网视频| 欧美在线视频不卡| 国产成人免费手机在线观看视频 | 国产肉感大码AV无码| 狠狠色成人综合首页| 国产白浆视频| 国产高潮流白浆视频| 99久久精品免费看国产电影| 91精品啪在线观看国产| 红杏AV在线无码| a在线观看免费| 欧美有码在线| 激情国产精品一区| 日韩AV手机在线观看蜜芽| 自拍亚洲欧美精品| 国产欧美专区在线观看|