win7系統(tǒng)下載
當(dāng)前位置: 首頁(yè) > 網(wǎng)絡(luò)技術(shù)教程 > 詳細(xì)頁(yè)面

運(yùn)用IP 別名托管多個(gè)SSL 網(wǎng)站

發(fā)布時(shí)間:2022-12-18 文章來(lái)源:深度系統(tǒng)下載 瀏覽:

網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來(lái)的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機(jī)整體,實(shí)現(xiàn)資源的全面共享和有機(jī)協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計(jì)算機(jī)、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專(zhuān)家資源、大型數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、傳感器等。 當(dāng)前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認(rèn)為是互聯(lián)網(wǎng)發(fā)展的第三階段。

人們對(duì)于結(jié)合使用 SSL 和基于名稱(chēng)的虛擬主機(jī)的興趣與日俱增。有些人認(rèn)為這是不可能的,但是在 Apache 中,您可以通過(guò)基于 IP 的虛擬主機(jī)實(shí)現(xiàn)虛擬主機(jī)。在這篇文章中,John Liao 和 Jim Miles 將為您介紹具體做法。
在以前的 developerWorks 文章 “Secure remote data access for Domino?” 中,我們討論了如何利用 Apache 以節(jié)約預(yù)算的方式解決企業(yè)問(wèn)題。(參見(jiàn) 參考資料 中的鏈接。)在本文中,我們繼續(xù)討論這個(gè)主題,解釋在一臺(tái)通過(guò)一塊物理網(wǎng)卡連接到網(wǎng)絡(luò)的服務(wù)器上,如何使用 Apache Web 服務(wù)器提供多個(gè) Secure Sockets Layer(SSL)。

為什么需要在一臺(tái)服務(wù)器上安置多個(gè) SSL 站點(diǎn)?確實(shí)有企業(yè)需要在一臺(tái)服務(wù)器上托管多個(gè) SSL 站點(diǎn)嗎?我們將通過(guò)一個(gè)真實(shí)的場(chǎng)景來(lái)解釋這些問(wèn)題。有創(chuàng)新精神的用戶(hù)肯定會(huì)為這種思想找到更新穎的用途。

案例研究:兩個(gè)應(yīng)用程序,一臺(tái)服務(wù)器

在我們公司早期的一個(gè)項(xiàng)目中,人力資源(HR)部門(mén)希望為一個(gè)基于 Web 的福利應(yīng)用程序提供外部互聯(lián)網(wǎng)訪(fǎng)問(wèn)。用戶(hù)大多是從公司網(wǎng)絡(luò)內(nèi)部訪(fǎng)問(wèn)這個(gè) Web 應(yīng)用程序的,但是偶爾也會(huì)通過(guò)外部互聯(lián)網(wǎng)訪(fǎng)問(wèn)它。為了滿(mǎn)足安全需求,我們決定將這個(gè)應(yīng)用程序放在公司網(wǎng)絡(luò)內(nèi)部的一臺(tái)服務(wù)器上,使用 Apache 的 HTTP 服務(wù)器構(gòu)建一個(gè)反向代理服務(wù)器。反向代理服務(wù)器會(huì)終止 SSL 連接,再重新打開(kāi)另外一個(gè)到托管 HR 應(yīng)用程序的 Web 應(yīng)用服務(wù)器的 SSL 連接。通過(guò)在 Apache Web 服務(wù)器中添加 mod_security 模塊,即可將反向代理服務(wù)器改為應(yīng)用網(wǎng)關(guān),并為 Web 應(yīng)用程序提供更高的安全性。HR 部門(mén)精心挑選了一個(gè)完全限定域名(FQDN),這個(gè)域名是用戶(hù)友好的,易于記憶。隨后,我們繼續(xù)向前推進(jìn),獲得了 SSL 證書(shū),我們認(rèn)為一切就這樣圓滿(mǎn)結(jié)束了。

一年的時(shí)間很快就過(guò)去了。另一個(gè)企業(yè) Web 應(yīng)用程序出現(xiàn)了,它的需求與 HR 應(yīng)用程序極為相似。它也需要為外部用戶(hù)提供訪(fǎng)問(wèn)能力。外部用戶(hù)的數(shù)量非常少。大多數(shù)訪(fǎng)問(wèn)都是在公司網(wǎng)絡(luò)中進(jìn)行的。我們立刻想到使用反向代理服務(wù)器為這個(gè)新的 Web 應(yīng)用程序提供外部訪(fǎng)問(wèn)。

但是,這個(gè)新的應(yīng)用程序有點(diǎn)兒麻煩。首先,我們很關(guān)心數(shù)據(jù)中心的物理空間,竭力在一切應(yīng)用程序的部署中尋求整合服務(wù)器的機(jī)會(huì)。其次,我們必須證明購(gòu)買(mǎi)額外的反向代理服務(wù)器是值得的。這兩個(gè)因素結(jié)合在一起,促使我們仔細(xì)研究如何使用現(xiàn)有的反向代理服務(wù)器滿(mǎn)足新 Web 應(yīng)用程序的需求。惟一的問(wèn)題是,這個(gè)應(yīng)用程序需要一個(gè)與現(xiàn)有 HR 應(yīng)用程序不同的 FQDN。

我們研究了幾種為新的 Web 應(yīng)用程序使用現(xiàn)有反向代理服務(wù)器的方法。第一種想法是,將新舊兩個(gè)應(yīng)用程序的域名都改為某個(gè)通用域名,比如 rppany,并用上下文路徑區(qū)分這兩個(gè)應(yīng)用程序。但是,原來(lái)的反向代理服務(wù)器用戶(hù)強(qiáng)烈反對(duì)改變域名。如果改變域名,他們必須將域名變更情況通知公司中的所有人,還要修改所有印刷資料,以反映新的 URL。改變域名的成本非常高,而且可能會(huì)影響客戶(hù)支持部門(mén),他們不可避免地會(huì)收到大量用戶(hù)投訴。另外,兩個(gè)應(yīng)用程序組都希望保留自己的 FQDN,他們認(rèn)為自己精心選擇的 FQDN 比這種一般化的 URL 更醒目,而且也是宣傳推廣這些 Web 應(yīng)用程序的有效手段。

另一個(gè)想法是:為什么不注冊(cè)一個(gè) DNS 入口,讓它將新的域名指向現(xiàn)有的服務(wù)器?這個(gè)想法很快就被否決了。在 SSL 應(yīng)用程序中,SSL 證書(shū)必須與用戶(hù)請(qǐng)求的 URL 匹配,否則會(huì)彈出一個(gè)警告消息,指出所請(qǐng)求的 URL 與 SSL 證書(shū)的域名不匹配。由于彈出式廣告和惡意軟件日益猖獗,公司中每個(gè)訓(xùn)練有素的人都會(huì)取消產(chǎn)生彈出警告框的 Web 交互。根據(jù)公司架構(gòu)標(biāo)準(zhǔn)的要求,生產(chǎn)性 Web 應(yīng)用程序嚴(yán)禁生成彈出警告消息。

另一個(gè)建議是:使第二個(gè) SSL 站點(diǎn)駐留在運(yùn)行第一個(gè)站點(diǎn)的服務(wù)器的不同端口上。但是,我們覺(jué)得這會(huì)給用戶(hù)帶來(lái)過(guò)多的困擾,用戶(hù)很難同時(shí)記住站點(diǎn) URL 和端口號(hào)。如果用戶(hù)只輸入 URL 而沒(méi)有輸入端口號(hào),他們就會(huì)被重定向到 HR 應(yīng)用程序。這會(huì)導(dǎo)致很多問(wèn)題。

解決方案:IP 別名

最終敲定的解決方案是 IP 別名(IP aliasing)。在尋找這個(gè)解決方案時(shí),最需要技巧的部分就是確定正確的術(shù)語(yǔ)。最初引入這個(gè)概念時(shí),我們聽(tīng)到了虛擬接口(virtual interface) 和虛擬 IP(virtual IP) 等術(shù)語(yǔ)。我們艱難地尋找著關(guān)于這些概念的信息;但我們最終意識(shí)到,我們正在尋找的東西是通常被稱(chēng)為 IP 別名功能的概念,這幫助我們找到了關(guān)于該主題的更多文獻(xiàn)。IP 別名有時(shí)候也稱(chēng)為網(wǎng)絡(luò)接口別名(network interface aliasing) 或邏輯接口(logical interface)。

Linux 系統(tǒng)上的 IP 別名

混雜模式:一個(gè)警告
配置了多個(gè) IP 地址時(shí),某些以太網(wǎng)卡會(huì)進(jìn)入所謂的混雜模式(promiscuous mode)。在混雜模式下,網(wǎng)卡將捕捉本地網(wǎng)絡(luò)上的所有通信流量。這可能導(dǎo)致服務(wù)器易受網(wǎng)絡(luò)上其他主機(jī)轉(zhuǎn)發(fā)的攻擊。大多數(shù)嗅探器和網(wǎng)絡(luò)監(jiān)視軟件會(huì)使以太網(wǎng)卡進(jìn)入混雜模式,以便捕捉所有網(wǎng)絡(luò)通信包。 

IP 別名背后的概念很簡(jiǎn)單:可以在一個(gè)網(wǎng)絡(luò)接口上配置多個(gè) IP 地址。這樣就能夠在使用單一接口的同一個(gè)服務(wù)器上運(yùn)行多個(gè) Web 服務(wù)器。設(shè)置 IP 別名也非常容易。只需配置系統(tǒng)上的網(wǎng)絡(luò)接口,讓它監(jiān)聽(tīng)額外的 IP 地址。在 Linux? 系統(tǒng)上,可以使用標(biāo)準(zhǔn)的網(wǎng)絡(luò)配置工具(比如 ifconfig 和 route 命令)添加 IP 別名,也可以利用圖形化網(wǎng)絡(luò)管理工具。

在一般情況下,會(huì)為每塊以太網(wǎng)卡配置一個(gè)物理單元號(hào)。要想在已經(jīng)配置的以太網(wǎng)卡上添加額外的 IP 別名,應(yīng)該為一個(gè)接口配置同樣的物理單元號(hào),但是要用一個(gè)邏輯單元號(hào)來(lái)限定它。例如,如果在物理單元號(hào)為 eth0 的以太網(wǎng)卡上已經(jīng)配置了一個(gè)現(xiàn)有的 IP 地址,那么可以通過(guò)添加一個(gè)邏輯單元號(hào) :1 來(lái)創(chuàng)建 IP 別名,如清單 1 所示?梢酝ㄟ^(guò)遞增邏輯單元號(hào)來(lái)添加更多的 IP 地址。(注意,需要作為 root 用戶(hù)登錄。)

清單 1. 在現(xiàn)有的網(wǎng)絡(luò)接口上添加額外的 IP 地址

ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0

在您正在配置的系統(tǒng)上,Linux 內(nèi)核必須支持 IP 別名,這樣才能使用這種技術(shù)。如果內(nèi)核沒(méi)有提供這種支持,可能需要重新構(gòu)建內(nèi)核。要想了解您的內(nèi)核是否支持 IP 別名,可檢查 /proc/net/alias* 文件是否存在。

配置了新的 IP 地址之后,要為新的接口設(shè)置路由,如清單 2 所示。

清單 2. 為新的 IP 地址添加路由
    
route add -host 192.168.0.2 dev eth0:1

在創(chuàng)建新的 IP 地址之后,還需要在 /etc/hosts 文件中給這個(gè)新地址命名,如清單 3 所示。

清單 3. 為新的 IP 地址命名 
    
192.168.0.1 primaryserver
192.168.0.2 secondaryserver

Solaris 系統(tǒng)上的 IP 別名

要想在 Solaris? 上設(shè)置 IP 別名,使用的命令稍有不同。網(wǎng)絡(luò)接口的配置如清單 4 所示。需要作為 root 用戶(hù)登錄。

清單 4. 在 Solaris 上添加虛擬 IP

ifconfig eth0:1 plumb
ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0
ifconfig eth0:1 up

為了讓虛擬 IP 在重啟之后仍然有效,可以將 /etc/hosts 中的 IP 地址或主機(jī)名添加到 /etc/hostname.eth0:1 文件中。

在 Linux 和 Solaris 系統(tǒng)上,可以在一塊物理以太網(wǎng)卡上創(chuàng)建多個(gè)虛擬接口,讓它們連接到不同子網(wǎng)上的 IP 地址。但是,通常應(yīng)該避免這么做,因?yàn)檫@會(huì)成為兩個(gè)子網(wǎng)之間的瓶頸,而且這兩個(gè)子網(wǎng)上的所有網(wǎng)絡(luò)設(shè)備的性能都會(huì)因此受損。

IP 別名的其他用途
還可以在客戶(hù)端使用 IP 別名執(zhí)行負(fù)載和壓力測(cè)試。更多信息請(qǐng)參考文章 “Testing and tuning load balancers and networks”(參見(jiàn) 參考資料 中的鏈接)。 
按照 IP 地址配置多個(gè) SSL 站點(diǎn)

配置了第二個(gè) IP 地址之后,可以按照 IP 地址將額外的 SSL 站點(diǎn)添加到 Apache Web 服務(wù)器的配置文件中,如清單 5 所示。

這樣就行了!我們已經(jīng)在同一臺(tái)服務(wù)器、同一塊物理網(wǎng)卡上構(gòu)建了多個(gè) SSL Web 站點(diǎn)。

清單 5. 兩個(gè) SSL Web 站點(diǎn)的配置 多個(gè) SSL 站點(diǎn)的其他用途

由于我們的 Apache Web 服務(wù)器上的通信流量很低,因此可以利用這個(gè)反向代理服務(wù)器為后端具有類(lèi)似低流量需求的更多服務(wù)器服務(wù)。

更大、更強(qiáng)的服務(wù)器和網(wǎng)卡不斷涌現(xiàn),帶寬容量也比以往更高,因此也可以用這種方法來(lái)托管多個(gè)虛擬 SSL 站點(diǎn)。如果客戶(hù)具有提供小額零售業(yè)務(wù)的低流量站點(diǎn),而且需要 SSL 安全性,那么您可以為其設(shè)置一個(gè)提供有限帶寬 SSL 站點(diǎn)的 ISP?梢岳 IP 別名在一個(gè) IP 地址上駐留一個(gè) SSL Web 站點(diǎn),在另一個(gè)地址上提供其他服務(wù),比如 Web 服務(wù)。其他可能性還包括設(shè)置一個(gè)主生產(chǎn)系統(tǒng)和一個(gè)故障轉(zhuǎn)移系統(tǒng),從而形成備用的 QA 系統(tǒng)和/或 DR 系統(tǒng)。現(xiàn)在,您已經(jīng)理解了 IP 別名背后的基本概念,那么在設(shè)計(jì)應(yīng)用程序時(shí),也就有了更廣闊的可能性。

【相關(guān)文章】

  • 天融信網(wǎng)絡(luò)衛(wèi)士SSL安全網(wǎng)關(guān)
  • IP_Classless_命令的使用
  • SSL協(xié)議讓網(wǎng)絡(luò)上的數(shù)據(jù)傳輸更安全
責(zé)任編輯: 雪花(TEL:(010)68476636-8008)

網(wǎng)絡(luò)的神奇作用吸引著越來(lái)越多的用戶(hù)加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來(lái)越嚴(yán)峻的考驗(yàn)―從硬件上、軟件上、所用標(biāo)準(zhǔn)上......,各項(xiàng)技術(shù)都需要適時(shí)應(yīng)勢(shì),對(duì)應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進(jìn)步的催化劑。

本文章關(guān)鍵詞: IP SSL 托管