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

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’。
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)境中,你需要選擇一個(gè)更健壯的密鑰。
注意: 在Quagga中,‘service password-encryption’命令被用做加密配置文件中所有明文密碼(如,登錄密碼)。然而,當(dāng)我使用該命令時(shí),我注意到BGP配置中的預(yù)共享密鑰仍然是明文的。我不確定這是否是Quagga的限制,還是版本自身的問(wèn)題。
配置Router-B驗(yàn)證功能
我們將以類似的方式配置router-B。
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
驗(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)該安全地保存。
相關(guān)文章
淺談12 條用于 Linux 的 MySQL/MariaDB 安全最佳實(shí)踐
這篇文章主要介紹了淺談12 條用于 Linux 的 MySQL/MariaDB 安全最佳實(shí)踐,小編覺(jué)得還是挺不錯(cuò)的,這里分享給大家,需要的朋友可以參考下2018-01-17談?wù)凜entOS發(fā)布內(nèi)核安全補(bǔ)?。盒迯?fù)Meltdown和Spectre漏洞
這篇文章主要介紹了談?wù)凜entOS發(fā)布內(nèi)核安全補(bǔ)丁:修復(fù)Meltdown和Spectre漏洞,小編覺(jué)得還是挺不錯(cuò)的,這里分享給大家,需要的朋友可以參考下2018-01-17- SELinux(Security-Enhanced Linux) 是美國(guó)國(guó)家安全局(NSA)對(duì)于強(qiáng)制訪問(wèn)控制的實(shí)現(xiàn),是 Linux® 上最杰出的新安全子系統(tǒng)。今天小編要為大家?guī)?lái)的就是CentOS上的安全防2017-04-06
win10內(nèi)置linux子系統(tǒng)或帶來(lái)新的安全隱患
在win10一周年跟新版本中內(nèi)置了linux子系統(tǒng),這雖然大大的方便開(kāi)發(fā)人員,但是也給win10系統(tǒng)帶來(lái)了新的危險(xiǎn)因素,下面我們就來(lái)看看詳細(xì)的內(nèi)容,需要的朋友可以參考下2016-08-08- 這篇文章主要介紹了Linux安全掃描工具Nmap用法及參數(shù)詳解,本文介紹了什么是Nmap,然后給出掃描類型、通用選項(xiàng)、掃描目標(biāo)的一些參數(shù)注解,需要的朋友可以參考下2015-07-08
Linux如何禁止特定ip地址訪問(wèn)來(lái)保證系統(tǒng)的安全
如果你需要禁止特定ip地址訪問(wèn)來(lái)保證系統(tǒng)的安全,只需通過(guò)操作iptalbes來(lái)實(shí)現(xiàn),下面為大家介紹下Linux如何禁止某個(gè)ip地址訪問(wèn)的方法,需要的朋友不要錯(cuò)過(guò)2015-06-15通過(guò)OTPW來(lái)用SSH安全登錄Linux服務(wù)器的教程
這篇文章主要介紹了 通過(guò)OTPW來(lái)用SSH安全登錄Linux服務(wù)器的教程,即利用OTPW的一次性密碼生成功能,需要的朋友可以參考下2015-05-27Linux服務(wù)器安全事件應(yīng)急響應(yīng)排查方法總結(jié)
這篇文章主要介紹了Linux服務(wù)器安全事件應(yīng)急響應(yīng)排查方法總結(jié),本文講解了分析原則、分析目標(biāo)、數(shù)據(jù)備份采集、分析方法、分析影響、加固方法等內(nèi)容,需要的朋友可以參考下2015-04-13Linux如何使用Lynis工具檢測(cè)系統(tǒng)安全
Lynis是Linux系統(tǒng)中的審計(jì)工具,能夠?qū)inux系統(tǒng)的安全進(jìn)行檢測(cè),下面小編就給大家介紹下Linux如何使用Lynis工具檢測(cè)系統(tǒng)安全2015-02-14- 這篇文章主要介紹了linux 防御SYN攻擊步驟詳解,小編覺(jué)得還是挺不錯(cuò)的,這里分享給大家,需要的朋友可以參考下2018-01-22