第3章 BGP安全基础配置:MD5认证、TTL安全跳数、BGP GTSM配置
聊到BGP安全,很多朋友第一反应就是「加个MD5认证呗」。嗯,没错,MD5认证确实是BGP安全的第一道防线。但说实话,我在项目里见过太多只配了MD5就觉得万事大吉的案例,结果呢?该被攻击还是被攻击。
这一章,我带你把这几个基础但关键的安全配置捋清楚。MD5认证、TTL安全跳数、BGP GTSM,这三样东西说白了就是BGP安全的「三板斧」。用好了,能挡住90%以上的常见攻击。
3.1 MD5认证:BGP邻居的「身份证」
MD5认证是什么?简单说,就是给BGP报文加个「签名」。只有双方密码对得上,才能建立邻居关系。没有这个签名,攻击者想伪造BGP报文?门儿都没有。
我个人习惯,在生产环境里,所有IBGP和EBGP邻居都配上MD5认证。别嫌麻烦,这步省了,后面可能出大事。
3.1.1 配置示例
华为设备上的配置很简单,一条命令搞定:
# 在BGP视图下配置MD5认证
bgp 100
peer 10.0.12.2 password cipher MySecret@2024
思科设备也类似:
router bgp 100
neighbor 10.0.12.2 password MySecret@2024
我曾经遇到过一个问题:配了MD5认证后,邻居一直起不来。查了半天,发现是两端密码大小写不一致。记住,密码是区分大小写的!还有,密码长度建议12位以上,别用太简单的。
3.1.2 验证MD5认证
配置完了怎么验证?用 display bgp peer 看看状态:
<Huawei> display bgp peer
BGP local router ID : 1.1.1.1
Local AS number : 100
Total number of peers : 1
Peer AS MsgRcvd MsgSent OutQ Up/Down State Password
10.0.12.2 200 10 10 0 00:05:23 Established Yes
看到 Password: Yes 了吗?这就说明MD5认证生效了。
3.2 TTL安全跳数:限制攻击者的「射程」
MD5认证虽然好,但它有个问题——密码是静态的。如果攻击者抓到了你的BGP报文,理论上可以暴力破解。那怎么办?再加一层防护:TTL安全跳数。
TTL安全跳数,说白了就是检查BGP报文的TTL值。正常情况下,EBGP邻居之间只隔1跳,TTL值应该是1。如果收到TTL值大于1的报文,说明这个报文可能经过了其他设备,有问题!
你想想看,攻击者想伪造BGP报文,他得让报文经过多跳才能到达你的路由器。TTL值一检查,直接丢弃。这招对远程攻击特别有效。
3.2.1 配置示例
华为设备配置TTL安全跳数:
# 在BGP视图下配置TTL安全跳数
bgp 100
peer 10.0.12.2 ttl-security hops 1
思科设备:
router bgp 100
neighbor 10.0.12.2 ttl-security hops 1
如果EBGP邻居之间有中间设备(比如防火墙),TTL值可能不是1。这时候需要调整
hops 参数。我建议你先用 ping -t 测试一下实际跳数,再配置。
3.3 BGP GTSM:更灵活的TTL检查
GTSM(Generalized TTL Security Mechanism)是TTL安全跳数的升级版。它不要求TTL值必须等于1,而是检查TTL值是否在合理范围内。
说白了,GTSM更灵活。比如你的EBGP邻居隔了3跳,你可以设置 hops 3,这样TTL值在1到3之间的报文都能通过。攻击者想伪造?他得知道你的邻居到底隔了几跳,这信息可不是那么容易拿到的。
3.3.1 配置示例
华为设备配置GTSM:
# 在BGP视图下配置GTSM
bgp 100
peer 10.0.12.2 gtsm hops 3
思科设备:
router bgp 100
neighbor 10.0.12.2 ttl-security hops 3
GTSM和TTL安全跳数不能同时配置。选一个就行。我个人更推荐GTSM,因为它更灵活,能适应复杂的网络拓扑。
3.4 知识体系图
下面这张图帮你理清这三者的关系:
3.5 实战建议
说了这么多,到底怎么用?我给你几个建议:
- IBGP邻居:MD5认证必配。IBGP邻居之间通常在同一AS内,TTL检查意义不大,但MD5认证能防止内部攻击。
- EBGP邻居:MD5认证 + GTSM一起上。这是最安全的组合。我在一个跨国项目中就是这么配的,效果很好。
- 多跳EBGP:必须用GTSM,并设置正确的跳数。别用TTL安全跳数,它只支持1跳。
有一次,客户反映BGP邻居频繁震荡。查了半天,发现是GTSM的hops参数设小了。实际路径有4跳,我只设了2。调整后问题解决。所以,配置前一定要搞清楚网络拓扑。
3.6 总结
MD5认证、TTL安全跳数、BGP GTSM,这三样东西是BGP安全的基础。配好了,能挡住大部分攻击。配不好,等于没配。
我个人习惯,新项目上线前,这三项配置是必检项。别等到出了问题再补,那时候就晚了。
好了,这一章就到这里。记住,安全配置不是越多越好,而是要恰到好处。下一章我们聊聊更高级的BGP安全策略,到时候见。