APP下载

详解OSPF安全认证机制

2017-03-08

网络安全和信息化 2017年10期
关键词:明文路由器命令

对于OSPF动态路由协议来说,通过认证机制,可以帮助其检查收到的所有相关数据包是否是完整的和可靠的。

认证的实现过程

在通常情况下,存在明文认证和MD5认证两种认证方式,前者可以在路由信息后面附上一段明文密码,接收方可以据此进行比对,如果比对成功说明该数据包是可信的。该认证方式其实并不安全,一般不建议使用。后者可以通过哈希函数,对每一个数据包进行数字签名。当一个OSPF数据包在发送给对方的时候,需要对其进行认证信息的添加操作。即将其和一个KEY结合起来进行MD5的哈希函数运算,得到一段128位的校验信息。

之后将其和路由信息一起传送给对方,当对方接收到数据包之后,会将路由信息和认证信息进行剥离,将路由信息和自己存储的KEY进行MD5哈希计算,如果计算结果和接收到的认证信息相同,说明数据包在传递过程中没有被篡改,而且双方拥有的KEY相同,说明OSPF数据包来源是可靠的。同明文认证相比,MD5认证的安全性更高,所以建议使用改种认证方式,对OSPF数据包进行检查。注意一旦开启认证机制,其会对OSPF的所有类型的数据包进行校验。因此,这就要求所有参与邻居关系的路由器拥有相同的KEY。

明文认证的实现方式

对于明文认证来说,配置起来很简单,在接口模式下使用“ip ospf authentication xxx”命令创建一个KEY,这里的“xxx”表示密码,注意大小写敏感。在接口上开启OSPF认证,存在两种方式。例如对于Aera 0来说,存在R1和R2两台路由器,两者通过S0/0/1接口连接,因为邻居关系已经建立,所以可以使用“ip ospf authentication”命令开启认证。也可以在路由协议模式下,使用“aera 0 authentication”命 令,将Aera 0区域中的所有路由器都开启认证。在一个复杂的网络环境中,如果需要很多接口都可以认证的话,使用该方法新的比较简单,但是其缺点是精确性较差,不能精确的指定某个端口开启或者关闭认证功能。

MD5认证的实现方式

对于MD5认证来说,具体的步骤与上述大体相同。即首先在相关路由器的目标接口下配置KEY,命令格式为“ip ospf message-digestkey x md5 xxx”,其中的“x”为 Key的 ID号,“xxx” 为Key的内容。对于ID号来说,邻居双方必须保持一致。用户可以根据需要创建多个KEY,但是在使用时和EIGRP认证存在差异。对于EIGRP协议的MD5认证来说,当存在多个ID号(例如1、2、3等)时,其永远会使用ID号1的Key,只有该ID不生效的时候,才会使用到ID为2的KEY。

但是OSPF与之截然不同,在没有检测到对方使用哪个Key的情况下,本地路由器会将所有的Key全部发送出去。也即对于一个OSPF的Hello包来说,本地路由器会将其复制为多份,分别使用不同ID的Key对其进行校验,并将其全部发送出去,对方只要有一个Key能够与之匹配即可。例如,如果在输入Key时,首先设置了Key1和Key3,然后设置Key3的话,那么Key2会优先使用。如果检测到对方也使用了Key2,那么Key1和Key3就不会使用了。这样做的好处在于在更改Key的过程中,可以防止邻居关系会断掉。

当创建了Key之后,就需要开启MD5认证了。我们可以在接口模式下使用“ip ospf authentication message-digest”的命令开启认证,也可以执行“area 0 authenticaton messagedigest”的命令,并在指定的区域(例如区域0)中开启认证。

配置测试环境

实际上,同EIGRP协议的认证模式相比,OSPF安全认证方式要复杂的多。从大的范围来看,OSPF认证分为明文认证和MD5认证。从OSPF协议自身来说,又可以分为接口认证、区域认证和虚链路认证。这些认证方式均支持前面谈到的明文和MD5认证,不管哪一种认证方式,都必须考虑设置和启用密钥的方法。

这里以具体的实验来说明如何实现不同类型的认证方式。例如在Aera 0中存在R1和R2两台路由器,R1的e0/0接口和R2的e/0接口连接。R2为ABR边界路由器,R2和R3位于Aera1 区域,R2的e0/1接口和R3的e0/0接 口 连 接,R3为 ABR边界路由器,R3和R4位于Aera 2区域,R3的e0/1接口和R4的e0/0接口连接。很显然这是一个不规则的区域,因为区域2是连接在区域1上的,并没有个区域0直接连接。

针对接口的安全认证

在R1控制台上执行“config t” 命 令,进入全局配置模式。执行“int ethernet 0/0”,“ip ospf authentication-key password”命 令,在R1的e0/0接口下设置OSPF明文认证密码。这里密钥为“password”,当然也可以根据实际需要设置更加复杂的密码。执行“do ospf ip os nei”命令,查看R1的邻居关系信息,可以看到其邻居关系处于正常状态。执行“ip ospf authentication”命令,在该接口下启用明文认证功能,再次查看邻居关系,发现邻居关系已经消失了。在其邻居R2上执行“config t”,“int ethernet 0/0”,“ip ospf authenticationkey password”,“exit”,“ip ospf authentication”命令,同样在R2的e0/0接口上配置钥匙并启用OSPF明文认证,在R1上查看邻居信息,发现恢复了与R2邻居关系。

当然,OSPF会在邻居之间每隔40秒发送Hello包,当达到该时间后,才会判断邻居关系是否正常。但明文认证安全性较低,为了安全起见需要在接口下使用MD5认证方式。方法是在R1的上述接口下执行“ip ospf message-digest-key 1 md5 password”命令,设置ID为1的MD5密钥。执行“ip ospf authentication message-digest”命令,在端口下激活MD5认证功能。对应的,在R2上执行同样的操作,为其配置端口模式下的MD5认证功能。这样,两者就可以安全可靠的发送OSPF数据包了。

实现区域的安全认证

如果想针对某个区域(例如针对区域1)实现认证功能,同样需要在对应接口上启用密钥,这里主要针对MD5认证方式进行操作。例如对于区域1来说,存在R2和R3两台路由器。在R2上 执 行“config t”,“int ethernet 0/1”,“ip ospf message-digest-key 1 md5 password”“exit”命令,为R2的e/1接口设置密钥。注意,设置密钥需要在接口下操作,但是启用认证功能需要在OSPF进程模式下进行。执行“router os 1”命令,进入OSPF进程配置模式,执行“area 1 authentication message-digest”命令,针对区域1启用MD5认证功能。对应的,在R3上执行“config t”,“int ethernet 0/0”,“ip ospf message-digest-key 1 md5 password”“exit”,“router os 1”,“area 1 authentication messagedigest”命令,配置并启用基于区域的MD5认证模式。

实现虚链路的安全认证

因为上述实验网络环境是不规则的OSPF区域,为了保证网路个正常运作,需要在R2和R3之间创建虚链路,让区域2可以和区域0建立相互传送路由信息。如果想对该虚链路配置和启用MD5认证,首先在R2上执行“router os 1”命令,进入OSPF进程配置模式。执行“area 1 virtual-link 33.1.1.1 message-digestkey 1 md5 password”命令,针对该虚链路设置MD5密钥。这里的“33.1.1.1”为R3的Router-ID。

执行“area 1 virtuallink 33.1.1.1 authenti cation message-digest”命令,针对该虚链路启用MD5认证。对应的,在R3执行“router os 1”,“area 1 virtual-link 22.1.1.1 message-digest-key 1 md5 password”,“area 1 virtual-link 22.1.1.1 authentication messagedigest”命令,针对该虚链路调用该钥匙启用MD5认证,这 里 的“22.1.1.1”为 R2的Router-ID。执行“do sh run | se ospf”命令来查看上述命令信息。这样,在指定的虚链路上就可以安全可靠的传送OSPF数据包了。

深入分析虚链路安全认证

接下来针对虚链路验证进一步进行分析测试,先在R2和R3之间取消虚链路MD5认证,之后在区域0中启用区域认证模式,执行“router os 1”,“area 0 authentication messagedigest”命令启用MD5验证。因为上述基于接口的操作已经在区域0中配置了MD5密钥,所以这里直接启用该密钥即可。在R2上执行同样的操作,来激活MD5认证模式。当区域0激活了MD5认证模式后,对R2和R3之间的虚链路是否会造成影响 呢? 在 R1、R2、R3和 R4上分别执行“clear ip os process”命 令,在“Reset ALL OSPF Processes?”栏中输入“y”,重启理OSPF进程重新建立邻居信息。

之后在R2上执行“sh ip os neighb6or”命令,可以看到上述虚链路信息已经消失了。这就说明了一个问题,当区域0启用了认证之后,对应的虚链路也必须启用验证模式,否则无法传送路由信息。按照上述方法,对R2和R3之间的虚链路配置可启用MD5验证,其邻居关系就会顺利恢复。如果不对该虚链路进行认证,也可以采取变通的方式加以解决,即所有与该虚链路有关的路由器必须做基于区域0的认证。在本例中,可以在R2和R3上启用基于区域0的认证。R3虽然没有和区域0直接连接,但是存在虚链路打通R3和区域0的连接。根据以上分析不难看出,虚链路实际上是属于区域0的。

OSPF认证的特点总结

对于接口来说,不管是设置密钥还是启用密钥,都是在接口模式下操作,接口只跟相应接口所在的链路有关。对于区域认证,是在接口模式下设置密码,在OSPF进程模式下启用密钥,区域认证是所有在相应区域里面的接口认证。对于虚链路来说,配置和启用MD5密钥均在OSPF进程模式下进行。注意,OSPF的多种认证类型可以同时存在,例如在区域0中使用了接口验证后,也可以同时启用区域验证。

对于虚链路认证来说,其本质是基于端口的验证,因为在本例中虚链路在区域0和区域2之间打通了一条虚拟通道,因此其是特殊类型的接口认证方式。在OSPF中配置虚链路的方法很简单,例如在本例中只需在R2的OSPF进程模式下执行“area 1 virtuallink 33.1.1.1”,在 R3 上执行“area 1 virtual-link 22.1.1.1”命令,虚链路就建立起来了。虚链路隶属于区域0,因此区域0做验证后,虚链路必须做认证或者有关虚链路的路由器必须做区域0的认证。虚链路做认证,区域0则不需要做认证。

猜你喜欢

明文路由器命令
买千兆路由器看接口参数
只听主人的命令
移防命令下达后
奇怪的处罚
奇怪的处罚
这是人民的命令
四部委明文反对垃圾焚烧低价竞争
你所不知道的WIFI路由器使用方法?
蓝色命令