本發(fā)明涉及通過代理服務(wù)器直接訪問目標(biāo)服務(wù)器的方法,具體地說,是一種基于SSH協(xié)議與防火墻技術(shù)的方法。
背景技術(shù):
在互聯(lián)網(wǎng)時代,某些網(wǎng)絡(luò)基于安全方面的考慮,處于封閉狀態(tài),只能通過特定的方式方法對服務(wù)器進行遠程管理。代理服務(wù)器大多被用來連接INTERNET(國際互聯(lián)網(wǎng))和Local Area Network(局域網(wǎng))。
代理服務(wù)器(Proxy Server)是一種重要的服務(wù)器安全功能,它的工作主要在開放系統(tǒng)互聯(lián)(OSI)模型的會話層,從而起到防火墻的作用。
代理服務(wù)器的功能就是代理網(wǎng)絡(luò)用戶去取得網(wǎng)絡(luò)信息,是Internet鏈路級網(wǎng)關(guān)所提供的一種重要的安全功能,主要的功能有:
代理服務(wù)器大多被用來連接INTERNET都是獨立的大型(國際互聯(lián)網(wǎng))和INTRANET(局域網(wǎng))。如在國內(nèi),所謂多媒體公眾信息網(wǎng)和教育網(wǎng)都是獨立的大型局域網(wǎng),是與國際互聯(lián)網(wǎng)隔絕的。出于各種需要,某些集團或個人在兩網(wǎng)之間開設(shè)了代理服務(wù)器,如果知道這些代理服務(wù)器的地址,就可以利用它到達國外網(wǎng)站。
代理服務(wù)器設(shè)置用戶驗證和記賬功能,可按用戶進行記賬,沒有登記的用戶無權(quán)通過代理服務(wù)器訪問Internet網(wǎng)。并對用戶的訪問時間、訪問地點、信息流量進行統(tǒng)計。
代理服務(wù)器對用戶進行分級管理,設(shè)置不同用戶的訪問權(quán)限,對外界或內(nèi)部的Internet地址進行過濾,設(shè)置不同的訪問權(quán)限。
代理服務(wù)器增加緩沖器(Cache),提高訪問速度,對經(jīng)常訪問的地址創(chuàng)建緩沖區(qū),大大提高熱門站點的訪問效率。通常代理服務(wù)器都設(shè)置一個較大的硬盤緩沖區(qū)(可能高達幾個GB或更大),當(dāng)有外界的信息通過時,同時也將其保存到緩沖區(qū)中,當(dāng)其他用戶再訪問相同的信息時,則直接由緩沖區(qū)中取出信息,傳給用戶,以提高訪問速度。
連接內(nèi)網(wǎng)與Internet,充當(dāng)防火墻(Firewall):因為所有內(nèi)部網(wǎng)的用戶通過代理服務(wù)器訪問外界時,只映射為一個IP地址,所以外界不能直接訪問到內(nèi)部網(wǎng);同時可以設(shè)置IP地址過濾,限制內(nèi)部網(wǎng)對外部的訪問權(quán)限。
節(jié)省IP開銷:代理服務(wù)器允許使用大量的偽IP地址,節(jié)約網(wǎng)上資源,即用代理服務(wù)器可以減少對IP地址的需求,對于使用局域網(wǎng)方式接入Internet ,如果為局域網(wǎng)(LAN)內(nèi)的每一個用戶都申請一個IP地址,其費用可想而知。但使用代理服務(wù)器后,只需代理服務(wù)器上有一個合法的IP地址,LAN內(nèi)其他用戶可以使用10.*.*.*這樣的私有IP地址,這樣可以節(jié)約大量的IP,降低網(wǎng)絡(luò)的維護成本。
但是使用代理服務(wù)器在增加了安全性的同時也增加了對服務(wù)器運維的工作量。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于為了能在不影響安全性的情況下,為服務(wù)器運維工作提供更大的靈活性,提供一種通過服務(wù)器直接訪問目標(biāo)服務(wù)器的方法, 該方法利用SSH協(xié)議與IPTABLES相結(jié)合的方法,實現(xiàn)了對服務(wù)器的直接訪問,從而解決了這個問題。
本發(fā)明為實現(xiàn)其目的所采用的技術(shù)方案是:一種通過代理服務(wù)器直接訪問目標(biāo)服務(wù)器的方法,包括以下步驟:
步驟1、終端用戶通過本地網(wǎng)絡(luò)的三層交換機將需要訪問的目標(biāo)服務(wù)器的目地址轉(zhuǎn)發(fā)到匹配到的代理服務(wù)器上;
步驟2、代理服務(wù)器接收到終端用戶發(fā)來的請求后,將請求數(shù)據(jù)轉(zhuǎn)發(fā)到對應(yīng)的遠程目標(biāo)服務(wù)器;該步驟中,代理服務(wù)器采用SSH隧道協(xié)議將請求數(shù)據(jù)轉(zhuǎn)發(fā)到對應(yīng)的遠程目標(biāo)服務(wù)器;
步驟3、遠程目標(biāo)服務(wù)器接收到代理服務(wù)器發(fā)來的請求后,將處理結(jié)果返回給代理服務(wù)器;該步驟中,遠程目標(biāo)服務(wù)器采用SSH隧道協(xié)議將處理結(jié)果數(shù)據(jù)轉(zhuǎn)發(fā)到代理服務(wù)器;
步驟4、代理服務(wù)器將遠程目標(biāo)服務(wù)器返回的結(jié)果轉(zhuǎn)發(fā)給終端用戶。
下面結(jié)合具體實施例對本發(fā)明作較為詳細(xì)的描述。
附圖說明
圖1是本發(fā)明實施例方法流程圖。
具體實施方式
實施例1,本實施例是公開一種一種通過代理服務(wù)器直接訪問目標(biāo)服務(wù)器的方法,包括以下步驟:
1、終端用戶通過本地網(wǎng)絡(luò)的三層交換機將目地址轉(zhuǎn)發(fā)到匹配到的代理服務(wù)器上;
本地網(wǎng)絡(luò)的三層交換機根據(jù)“防火墻規(guī)則”,將終端用戶數(shù)據(jù)包,主要是請求訪問的數(shù)據(jù)包,轉(zhuǎn)發(fā)到相應(yīng)的網(wǎng)絡(luò)端口,網(wǎng)絡(luò)端口與相應(yīng)的代理服務(wù)器建立了通信遂道。
這里本地網(wǎng)絡(luò)中有一個全局代理服務(wù)器,它 負(fù)責(zé)轉(zhuǎn)發(fā)終端用戶的各種數(shù)據(jù)包,包括不同協(xié)議的數(shù)據(jù)包如HTTP、SOCKET、SSH、RSTP等等數(shù)據(jù)包,以及不同端口的數(shù)據(jù)。根據(jù)“防火墻”規(guī)則將數(shù)據(jù)包轉(zhuǎn)發(fā)到相應(yīng)代理服務(wù)器上。
這里所有的通信協(xié)議,都是采用TCP/IP協(xié)議。具體到應(yīng)用層協(xié)議,都是采用SSH (Secure SHell protocol安全外殼協(xié)議) 協(xié)議,SSH是一種在不安全網(wǎng)絡(luò)上提供安全遠程登錄及其它安全網(wǎng)絡(luò)服務(wù)的協(xié)議。此協(xié)議是目前公認(rèn)的安全的網(wǎng)絡(luò)傳輸協(xié)議。
這里路由器只是充當(dāng)普通路由的作用,根據(jù)源地址和目的地址將數(shù)據(jù)包轉(zhuǎn)發(fā)到相應(yīng)的網(wǎng)絡(luò)。路由器連接公網(wǎng),所以代理服務(wù)器一般是在公網(wǎng)上的,只是限制定特定的IP才能訪問到。
2、代理服務(wù)器接收到終端用戶發(fā)來的請求后,將數(shù)據(jù)轉(zhuǎn)發(fā)到對應(yīng)的遠程目標(biāo)主機。這里數(shù)據(jù)主要是指終端用戶請求訪問遠程服務(wù)器的請求數(shù)據(jù)包,上面有遠程服務(wù)器的地址。
這里采用的是SSH協(xié)議,通過SSH命令來實現(xiàn),基本參數(shù):SSH -D、SSH -R、SSH –L。
“防火墻”技術(shù),負(fù)責(zé)數(shù)據(jù)包的配合和轉(zhuǎn)發(fā)到相應(yīng)的全局代理端口
首先是建立一個規(guī)則(規(guī)則名在本機是唯一的),然后配合目的IP,將符合此規(guī)則的數(shù)據(jù)包重定向到指定的端口(類似于三層網(wǎng)絡(luò)交換機的規(guī)則)
3、目標(biāo)服務(wù)器接收到代理服務(wù)器發(fā)來的請求后,將處理結(jié)果返回給代理服務(wù)器;該請求就是終端用戶的所請求的數(shù)據(jù)ACK,該數(shù)據(jù)包中包括有目的地址、源地址等。處理結(jié)果就是目標(biāo)服務(wù)器的響應(yīng)“Response數(shù)據(jù)包”,這里代理服務(wù)器收到Response數(shù)據(jù)包后,同樣根據(jù)TCP/IP協(xié)議,將Response數(shù)據(jù)包返回給源地址,也就是剛才發(fā)請求數(shù)據(jù)的終端用戶的地址)方法是相同的,都是采用TCP/IP協(xié)議,應(yīng)用層上就是SSH協(xié)議。
與步驟1中本地網(wǎng)絡(luò)中的全局代理服務(wù)器與眾多的代理服務(wù)器之間通信一樣,目標(biāo)服務(wù)器也是根據(jù)“防火墻規(guī)則”,將數(shù)據(jù)包轉(zhuǎn)發(fā)到相應(yīng)的網(wǎng)絡(luò)端口,網(wǎng)絡(luò)端口與相應(yīng)的代理服務(wù)器建立了通信遂道。
4、代理服務(wù)器將遠程目標(biāo)服務(wù)器返回的結(jié)果轉(zhuǎn)發(fā)給提出請求Ack的用戶終端。終端用戶接收遠程目標(biāo)服務(wù)器返回的數(shù)據(jù),也是通過相應(yīng)的協(xié)議來實現(xiàn)的,如HTTP請求就根據(jù)HTTP協(xié)議來完成,SSH請求就通過SSH協(xié)議來完成。
采用本實施例的本地終端用戶利用代理服務(wù)器訪問遠程的服務(wù)器的方法,能訪問目標(biāo)服務(wù)器的所有端口資源,就像是在目標(biāo)服務(wù)器內(nèi)部訪問他自己的資源一樣,而普遍利用的代理服務(wù)器,只是能訪問目標(biāo)服務(wù)器的特定的開放的資源,一些內(nèi)部端口資源是無法訪問到的。
例如,某些WEB端口,只針對某些特定的IP段開放,比如,目標(biāo)服務(wù)器本身的IP為 192.168.100.200,目標(biāo)服務(wù)器上的WEB端口8080,只有 192.168.88.0/24這個網(wǎng)段能訪問,此時,如果是普通的vpn連接,此終端用戶通過VPN取得的IP是:192.168.168.0/24這個網(wǎng)段,那么終端用戶是無法訪問目標(biāo)服務(wù)器8080端口的。本實施例中通過代理服務(wù)器,終端機用戶實際上是登錄到代理服務(wù)器上,終端用戶訪問服務(wù)器的8080端口,實際上對于目標(biāo)服務(wù)器來講就是自己訪問自己的8080端口,即:127.0.0.1:8080。
另外本地終端用戶利用代理服務(wù)器訪問遠程的服務(wù)器的方法能進行多級的代理訪問。
通常的代理服務(wù)器只能訪問到下面一級的服務(wù)器資源,如下所示:
終端用戶--->>全局代理機--->>代理服務(wù)器--->>一級跳板機-->>二級跳板機-->>三級跳板機 .....-->>........-->>目標(biāo)服務(wù)器
普通情況下,終端用戶要通過很多中間服務(wù)器才能訪問到目標(biāo)服務(wù)器,這還只能有訪問SSH遠程登錄端口。
本實施例中代理服務(wù)器實現(xiàn)了終端機能直接透明訪問目標(biāo)服務(wù)器上的所有資源。
通過一個守護進程,定時的執(zhí)行檢測,步驟如下:
1、發(fā)送一個http請求或是SSH請求,根據(jù)不同的網(wǎng)絡(luò)環(huán)境,發(fā)送不同的請求。
2、根據(jù)請求返回的狀態(tài)碼:0為成功,非0為失敗。
3、如果狀態(tài)為非0,則找到相應(yīng)的進程的PID,KILL掉這個進程。
4、重新啟動進程。
5、守護進程退出。
守護進程在運行期間,會將程序運行過程中得到的信息記錄到文件中,并附帶上相應(yīng)的時間,以方便日后進行問題分析。
本實施例中利用上面的守護進程,可以實現(xiàn)“自我檢測、自我重啟、日志功能”。
當(dāng)檢測到當(dāng)前鏈路異常,會自動關(guān)閉當(dāng)前的程序,本實施例中通過查找進程名和進程的PID來關(guān)閉(KILL)掉進程,然后再根據(jù)進程的路徑,啟動進程。然后再重新建立一個新的遂道,就是結(jié)果當(dāng)前僵尸的隧道進程,關(guān)閉此進程打開的端口,重新運行代理程序。同時如果遠程服務(wù)器檢測到鏈路異常,也會出同樣的操作,該操作使用http或是ssh請求,根據(jù)返回狀態(tài)碼判斷是否能訪問到遠程服務(wù)器,如果不能訪問,就關(guān)閉當(dāng)關(guān)的鏈路,重新建立通信鏈路。
在代理服務(wù)器上運行上面的守護進程,執(zhí)行檢測程序,檢測程序發(fā)送HTTP請求或是SSH請求,檢測程序根據(jù)返回的狀態(tài)碼來判斷。
本實施例的這種方法用于實現(xiàn)遠程終端直接訪問有網(wǎng)絡(luò)限制的遠程主機上的所有資源。不用自己手動建立VPN撥號或是先登錄跳板機、或是要先連接到對方指定的服務(wù)器、或是通過對方提供的審計系統(tǒng)以及使用特定的網(wǎng)絡(luò)軟件。
該方法使用了多種網(wǎng)絡(luò)技術(shù)來實現(xiàn)最終的目標(biāo):像訪問內(nèi)部局域網(wǎng)一樣直接訪問遠程服務(wù)器上的所有資源。
一種通過代理服務(wù)器直接訪問目標(biāo)服務(wù)器方法主要使用以下技術(shù)方法:
三層交換機的路由技術(shù):三層交換機通過預(yù)先設(shè)置好的規(guī)則,對來源IP和目的IP進行判斷,匹配到相應(yīng)的規(guī)則,然后將此數(shù)據(jù)包轉(zhuǎn)發(fā)到設(shè)置好的鏈路上。
SSH遂道技術(shù):SSH遂道功能實現(xiàn)了本地端口轉(zhuǎn)發(fā),遠程端口轉(zhuǎn)發(fā),動態(tài)端口轉(zhuǎn)發(fā),且都是使用SSH協(xié)議來實現(xiàn)的,同時數(shù)據(jù)傳輸過程經(jīng)過了壓縮,使得數(shù)據(jù)傳輸即快速又安全。
IPTABLES防火墻技術(shù):通過設(shè)置防火墻的NAT規(guī)則,將目的地址和目的端口轉(zhuǎn)發(fā)到相應(yīng)的代理端口上。