BGP協(xié)議運(yùn)行于TCP之上,因而,它也繼承了TCP連接的所有漏洞。例如,在一個(gè)BGP會(huì)話內(nèi),攻擊者可以冒充一個(gè)合法的BGP鄰居,然后說(shuō)服另一端的BGP路由器共享路由信息給攻擊者。在攻擊者通告并向鄰居路由注入偽造的路由時(shí),就會(huì)發(fā)生這個(gè)問(wèn)題。毫無(wú)戒備的鄰居路由器就會(huì)開(kāi)始向攻擊者發(fā)送通信實(shí)況,實(shí)際上這些信息并沒(méi)有去向任何地方,僅僅只是被丟棄了?;氐?008年,YouTube實(shí)際上也受害于這樣的BGP路由中毒,并遭受了長(zhǎng)達(dá)一個(gè)小時(shí)的視頻服務(wù)大量中斷。一個(gè)更加糟糕的情況是,如果攻擊者是個(gè)足夠懂行的人,他們可以偽裝成一臺(tái)透明路由器,然后嗅探經(jīng)過(guò)的通信以獲取敏感數(shù)據(jù)。你可以想象,這會(huì)造成深遠(yuǎn)的影響。
要保護(hù)活躍的BGP會(huì)話不受攻擊,許多服務(wù)提供商在BGP會(huì)話中使用MD5校驗(yàn)和及預(yù)共享密鑰。在受保護(hù)的BGP會(huì)話中,一臺(tái)發(fā)送包的BGP路由器通過(guò)使用預(yù)共享的密鑰生成MD5散列值、部分IP和TCP頭以及有效載荷。然后,MD5散列作為一個(gè)TCP選項(xiàng)字段存儲(chǔ)。在收到包后,接受路由器用同樣的方法使用預(yù)共享密鑰生成它的MD5版本。它會(huì)將它的MD5散列和接收到的某個(gè)包的值進(jìn)行對(duì)比,以決定是否接受該包。對(duì)于一個(gè)攻擊者而言,幾乎不可能猜測(cè)到校驗(yàn)和或其密鑰。對(duì)于BGP路由器而言,它們能在使用包的內(nèi)容前確保每個(gè)包的合法性。
在本教程中,我們將為大家演示如何使用MD5校驗(yàn)和以及預(yù)共享密鑰來(lái)加固兩個(gè)鄰居間的BGP會(huì)話的安全。
準(zhǔn)備
加固BGP會(huì)話安全是相當(dāng)簡(jiǎn)單而直截了當(dāng)?shù)?,我們?huì)使用以下路由器。
常用的Linux內(nèi)核原生支持IPv4和IPv6的TCP MD5選項(xiàng)。因此,如果你從全新的Linux機(jī)器構(gòu)建了一臺(tái)Quagga路由器,TCP的MD5功能會(huì)自動(dòng)啟用。剩下來(lái)的事情,僅僅是配置Quagga以使用它的功能。但是,如果你使用的是FreeBSD機(jī)器或者為Quagga構(gòu)建了一個(gè)自定義內(nèi)核,請(qǐng)確保內(nèi)核開(kāi)啟了TCP的MD5支持(如,Linux中的CONFIGTCPMD5SIG選項(xiàng))。
配置Router-A驗(yàn)證功能
我們將使用Quagga的CLI Shell來(lái)配置路由器,我們將使用的唯一的一個(gè)新命令是‘password’。
本例中使用的預(yù)共享密鑰是‘xmodulo’。很明顯,在生產(chǎn)環(huán)境中,你需要選擇一個(gè)更健壯的密鑰。
注意: 在Quagga中,‘service password-encryption’命令被用做加密配置文件中所有明文密碼(如,登錄密碼)。然而,當(dāng)我使用該命令時(shí),我注意到BGP配置中的預(yù)共享密鑰仍然是明文的。我不確定這是否是Quagga的限制,還是版本自身的問(wèn)題。
配置Router-B驗(yàn)證功能
我們將以類(lèi)似的方式配置router-B。
驗(yàn)證BGP會(huì)話
如果一切配置正確,那么BGP會(huì)話就應(yīng)該起來(lái)了,兩臺(tái)路由器應(yīng)該能交換路由表。這時(shí)候,TCP會(huì)話中的所有流出包都會(huì)攜帶一個(gè)MD5摘要的包內(nèi)容和一個(gè)密鑰,而摘要信息會(huì)被另一端自動(dòng)驗(yàn)證。
我們可以像平時(shí)一樣通過(guò)查看BGP的概要來(lái)驗(yàn)證活躍的BGP會(huì)話。MD5校驗(yàn)和的驗(yàn)證在Quagga內(nèi)部是透明的,因此,你在BGP級(jí)別是無(wú)法看到的。
如果你想要測(cè)試BGP驗(yàn)證,你可以配置一個(gè)鄰居路由,設(shè)置其密碼為空,或者故意使用錯(cuò)誤的預(yù)共享密鑰,然后查看發(fā)生了什么。你也可以使用包嗅探器,像tcpdump或者Wireshark等,來(lái)分析通過(guò)BGP會(huì)話的包。例如,帶有“-M ”選項(xiàng)的tcpdump將驗(yàn)證TCP選項(xiàng)字段的MD5摘要。
小結(jié)
在本教程中,我們演示了怎樣簡(jiǎn)單地加固兩臺(tái)路由間的BGP會(huì)話安全。相對(duì)于其它協(xié)議而言,配置過(guò)程非常簡(jiǎn)明。強(qiáng)烈推薦你加固BGP會(huì)話安全,尤其是當(dāng)你用另一個(gè)AS配置BGP會(huì)話的時(shí)候。預(yù)共享密鑰也應(yīng)該安全地保存。
標(biāo)簽:開(kāi)封 馬鞍山 淮安 和田 和田 法律問(wèn)答 湖南 石家莊
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux下加強(qiáng)BGP路由協(xié)議安全的措施》,本文關(guān)鍵詞 Linux,下,加強(qiáng),BGP,路由,協(xié)議,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。