Linux中國

Quagga上使用驗證加固BGP會話安全

在本教程中,我們將為大家演示如何使用MD5校驗和以及預共享密鑰來加固兩個鄰居間的BGP會話的安全。

準備

加固BGP會話安全是相當簡單而直截了當的,我們會使用以下路由器。

路由器名稱 AS 號 IP地址
router-A 100 10.10.12.1/30
router-B 200 10.10.12.2/30

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

配置Router-A驗證功能

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

[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

本例中使用的預共享密鑰是『xmodulo』。很明顯,在生產環境中,你需要選擇一個更健壯的密鑰。

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

配置Router-B驗證功能

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

[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會話就應該起來了,兩台路由器應該能交換路由表。這時候,TCP會話中的所有流出包都會攜帶一個MD5摘要的包內容和一個密鑰,而摘要信息會被另一端自動驗證。

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

如果你想要測試BGP驗證,你可以配置一個鄰居路由,設置其密碼為空,或者故意使用錯誤的預共享密鑰,然後查看發生了什麼。你也可以使用包嗅探器,像tcpdump或者Wireshark等,來分析通過BGP會話的包。例如,帶有「-M 」選項的tcpdump將驗證TCP選項欄位的MD5摘要。

小結

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

via: http://xmodulo.com/bgp-authentication-quagga.html

作者:Sarmed Rahman 譯者:GOLinux 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國