主頁 > 知識庫 > Linux下加強(qiáng)BGP路由協(xié)議安全的措施

Linux下加強(qiáng)BGP路由協(xié)議安全的措施

熱門標(biāo)簽:硅谷的囚徒呼叫中心 電話機(jī)器人搭建 美團(tuán) 家政服務(wù)網(wǎng)絡(luò) 外呼系統(tǒng) 百度競價點(diǎn)擊價格的計算公式 服務(wù)器配置 解決方案

BGP協(xié)議運(yùn)行于TCP之上,因而,它也繼承了TCP連接的所有漏洞。例如,在一個BGP會話內(nèi),攻擊者可以冒充一個合法的BGP鄰居,然后說服另一端的BGP路由器共享路由信息給攻擊者。在攻擊者通告并向鄰居路由注入偽造的路由時,就會發(fā)生這個問題。毫無戒備的鄰居路由器就會開始向攻擊者發(fā)送通信實況,實際上這些信息并沒有去向任何地方,僅僅只是被丟棄了。回到2008年,YouTube實際上也受害于這樣的BGP路由中毒,并遭受了長達(dá)一個小時的視頻服務(wù)大量中斷。一個更加糟糕的情況是,如果攻擊者是個足夠懂行的人,他們可以偽裝成一臺透明路由器,然后嗅探經(jīng)過的通信以獲取敏感數(shù)據(jù)。你可以想象,這會造成深遠(yuǎn)的影響。

要保護(hù)活躍的BGP會話不受攻擊,許多服務(wù)提供商在BGP會話中使用MD5校驗和及預(yù)共享密鑰。在受保護(hù)的BGP會話中,一臺發(fā)送包的BGP路由器通過使用預(yù)共享的密鑰生成MD5散列值、部分IP和TCP頭以及有效載荷。然后,MD5散列作為一個TCP選項字段存儲。在收到包后,接受路由器用同樣的方法使用預(yù)共享密鑰生成它的MD5版本。它會將它的MD5散列和接收到的某個包的值進(jìn)行對比,以決定是否接受該包。對于一個攻擊者而言,幾乎不可能猜測到校驗和或其密鑰。對于BGP路由器而言,它們能在使用包的內(nèi)容前確保每個包的合法性。
在本教程中,我們將為大家演示如何使用MD5校驗和以及預(yù)共享密鑰來加固兩個鄰居間的BGP會話的安全。
準(zhǔn)備

加固BGP會話安全是相當(dāng)簡單而直截了當(dāng)?shù)?,我們會使用以下路由器?br />

常用的Linux內(nèi)核原生支持IPv4和IPv6的TCP MD5選項。因此,如果你從全新的Linux機(jī)器構(gòu)建了一臺Quagga路由器,TCP的MD5功能會自動啟用。剩下來的事情,僅僅是配置Quagga以使用它的功能。但是,如果你使用的是FreeBSD機(jī)器或者為Quagga構(gòu)建了一個自定義內(nèi)核,請確保內(nèi)核開啟了TCP的MD5支持(如,Linux中的CONFIGTCPMD5SIG選項)。
配置Router-A驗證功能

我們將使用Quagga的CLI Shell來配置路由器,我們將使用的唯一的一個新命令是‘password’。

   

復(fù)制代碼
代碼如下:
[root@router-a ~]# vtysh
router-a# conf t
router-a(config)# router bgp 100
router-a(config-router)# network 192.168.100.0/24
router-a(config-router)# neighbor 10.10.12.2 remote-as 200
router-a(config-router)# neighbor 10.10.12.2 password xmodulo

本例中使用的預(yù)共享密鑰是‘xmodulo’。很明顯,在生產(chǎn)環(huán)境中,你需要選擇一個更健壯的密鑰。

注意: 在Quagga中,‘service password-encryption’命令被用做加密配置文件中所有明文密碼(如,登錄密碼)。然而,當(dāng)我使用該命令時,我注意到BGP配置中的預(yù)共享密鑰仍然是明文的。我不確定這是否是Quagga的限制,還是版本自身的問題。
配置Router-B驗證功能

我們將以類似的方式配置router-B。

   

復(fù)制代碼
代碼如下:
[root@router-b ~]# vtysh
router-b# conf t
router-b(config)# router bgp 200
router-b(config-router)# network 192.168.200.0/24
router-b(config-router)# neighbor 10.10.12.1 remote-as 100
router-b(config-router)# neighbor 10.10.12.1 password xmodulo

驗證BGP會話

如果一切配置正確,那么BGP會話就應(yīng)該起來了,兩臺路由器應(yīng)該能交換路由表。這時候,TCP會話中的所有流出包都會攜帶一個MD5摘要的包內(nèi)容和一個密鑰,而摘要信息會被另一端自動驗證。

我們可以像平時一樣通過查看BGP的概要來驗證活躍的BGP會話。MD5校驗和的驗證在Quagga內(nèi)部是透明的,因此,你在BGP級別是無法看到的。

如果你想要測試BGP驗證,你可以配置一個鄰居路由,設(shè)置其密碼為空,或者故意使用錯誤的預(yù)共享密鑰,然后查看發(fā)生了什么。你也可以使用包嗅探器,像tcpdump或者Wireshark等,來分析通過BGP會話的包。例如,帶有“-M ”選項的tcpdump將驗證TCP選項字段的MD5摘要。
小結(jié)

在本教程中,我們演示了怎樣簡單地加固兩臺路由間的BGP會話安全。相對于其它協(xié)議而言,配置過程非常簡明。強(qiáng)烈推薦你加固BGP會話安全,尤其是當(dāng)你用另一個AS配置BGP會話的時候。預(yù)共享密鑰也應(yīng)該安全地保存。

標(biāo)簽:韶關(guān) 烏蘭察布 防城港 北海 邢臺 撫州 臨沂 南昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux下加強(qiáng)BGP路由協(xié)議安全的措施》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266