路由器配置前我们要知道路由器是信息网络中实现网络互联的关键设备,它将不同网络或网段之间的数据信息进行“翻译”,以实现网络互联和资源共享。下面就来看路由器的快速配置方法:
堵住安全漏洞
路由器同计算机及其他网络设备一样,自身也存在一些缺陷和漏洞。利用路由器自身缺点进行网络攻击,是黑客常用的手段。因此,我们必须在堵住路由器安全漏洞上采取必要的措施。限制系统物理访问是最有效的方法之一。它是将控制台和终端会话路由器配置成在较短闲置时间后,自动退出系统,以堵住路由器的安全漏洞,保护整个网络的安全。此外,应避免将调制解调器连接到路由器的辅助端口。
避免身份危机
黑客常常利用弱口令或默认口令进行攻击。加长口令,有助于防御这类攻击。当网络管理人员调离或退出本岗位时,应立即更换口令。另外,还应启用路由器的口令加密功能。在大多数的路由器上,可以路由器配置一些协议,如远程验证拨入用户服务,结合验证服务器提供经过加密、验证的路由器访问,以加强路由器的安全系数,提高整个网络的安全性。
限制逻辑访问
限制逻辑访问,主要是借助于合理处置访问控制列表,限制远程终端会话,有助于防止黑客获得系统逻辑访问。SSH是优先的逻辑访问方法,但如果无法避免TELNET,不妨使用终端访问控制,以限制只能访问可信主机。因此,需要给TELNET在路由器上使用的虚拟终端端口添加一份访问列表。
控制消息协议ICMP有助于排除故障,但也为攻击者提供了用来浏览网络设备、确定时间戳和网络掩码以及对OS修正版本作出推测的信息。为了防止黑客搜集上述信息,只允许以下类型的ICMP流量进入网络:ICMP网无法到达的、主机无法到达的、端口无法到达的、包太大的、源抑制的以及超出生存时间(TTL)的。此外,逻辑访问控制还应禁止ICMP流量以外的所有流量。
使用入站访问控制,可将特定服务器引导至对应的服务器。例如,只允许SMTP流量进入邮件服务器;DNS流量进入DNS服务器;通过安全套接协议层(SSL)的HTTP(HTTPS)流量进入web服务器。为了避免路由器成为DoS攻击目标,应拒绝以下流量进入:没有IP地址的包,采用本地主机地址、广播地址、多播地址以及任何假冒的内部地址的包。还可以采取增加SYM ACK队列长度、缩短ACK超时等措施,来保护路由器免受TCP SYN攻击。
监控路由器配置更改
在对路由器配置进行改动时,需要对其进行监控。如果使用了SNMP,则一定要选择功能强大的共用字符串,最好是使用提供消息加密功能的 SNMP。如果不通过SNMP管理而对设备进行远程路由器配置,最好将SNMP设备路由器配置成只读,拒绝对这些设备进行写访问。这样,能防止黑客改动或关闭接口。此外,还要将系统日志信息从路由器发送至指定服务器。同时,为进一步确保安全管理,还可使用SSH等加密机制,利用SSH与路由器建立加密的远程会话。
实施路由器配置管理
配置管理的一个重要部分,就是确保网络使用合理的路由器协议,避免使用路由信息协议(RIP)。因为RIP很容易被欺骗而接受不合法的路由更新。所以,必须实施控制存放、检索及更新路由器配置,以便在新配置出现问题时能更换、重装或恢复到原先的路由器配置。
1. 路由器的体系结构
图1给出了一般路由器的逻辑体系结构。它主要由下面几部分组成 :路由引擎、转发引擎、 路由表、网络适配器和相关的逻辑电路等。转发引擎负责把从一个网络适配器来的数据包转发到另一个网络适配器出去。IP协议,包括对路由表的查找,构成了转发引擎中最主要的部分。由于每个通过路由器并需要其转发的数据包都要对路由表进行查找,所以路由表的查找效率如何往往决定了整个路由器的性能。路由引擎则包括了高层协议,特别是路由协议,它负责对路由表的更新。由于路由引擎不涉及通过路由器的数据通路,故它可用通用的CPU代替。
2.硬件路由表的数据结构设计
一般路由器中路由表的每一项至少有这样的信息:目标地址、网络隐码、下一跳地址。如果对每一个IP地址都要一个表项,那么需要占用很大的2323*4字节的存储器,而且其中必定有很多的表项没有被使用,这就会造成极大的资源浪费。
为了用硬件实现路由表的查找,查找算法需要满足如下的条件:
1) 实时的实现路由表的查找;
2) 有效的实现路由表的插入和删除;
3) 提供有效的最长前缀匹配;
4) 具有良好的可扩展性;
5) 支持广播和组播;
6) 有效的对Memory进行利用;
7) 硬件上容易实现,并具有良好的性能 。
我们考虑,如果在对路由表的查找中,把子网隐码和IP地址结合起来,对IP地址进行相应的分段,并把它们相连。这样在路由表的表项中,只有IP地址的一部分及其相应的隐码部分,可以实现良好的可扩展性,只要对Memory进行有效的管理,可以灵活的动态的实现对路由的插入和删除。鉴于此,我们设计该表的结构(如下面的表一所示 ):
点击查看大图
它的思想是:把32位IPv4地址主要分成4部分,每部分8位。在该结构中,Address-part[0-4]是IP地址中的一部分,Mask-part[0-4]是相应的掩码部分。Hit-next[0-4]是需要查找的目标IP地址与掩码部分相与后,与Address-part一致时所要查找的下一路由项所在地址的指针。,Miss-hit[0-4]则是相互不一致时,下一路由项所在地址的指针。Shift位则用于判断是否需要对IP地址中的下8位进行查找和判断。它只有在当前的8位IP地址与目标地址中相应的8位一致时,才会被置位。Stop位用于判断是否还需进行查找。它在IP地址查找结束时被置位,或没有比当前项所对应的IP地址更长的路由表项时被置位。
图2就是一个表1的例子 :
在该例子中,每一方框中上面一行表示相应的IP地址部分和隐码部分。下面一行表示相关的隐码部分的二进制表示。 相应的查找算法如下:
/*查找算法开始 */
search = TRUE ;
WHILE ( search )
{
masked_key = key & ( entry ->mask_part ) ;
result = ( entry ->address_part ) = = masked_key
IF ( result = = TRUE ) {
best_match = entry ;
entryentry = entry ->hit_next;
}ELSE{ entryentry = entry ->miss_next;
IF ( entry ->stop = = TRUE ) search = FALSE;
}
}
RETURN best_match ;
/*查找算法结束 */
为了实现有效的插入和删除,我们还要在路由表的数据结构中再另外添加几个域 :parent指针(指向本结点的父结点),路由信息(routeinfo)等。它们的用途是在路由表的查找过程中,特别是在指针的回溯(pointer reversal)中,可以大大的节省查找时间。由于IP路由的插入和删除比较复杂。我们只是粗略得说明一下。
IP路由的插入:
/*插入算法开始 */
/* 先用上面提到的查找算法找出best-match */
best_match = search ( new_entry );
/* 确定需要加入的路由中没有被best-match包括的那几位 */
for ( count = first_unmatched_bit ; count <= sizeof ( new_entry) ;
count+= sizeof ( address_part ) {
/* 创建新的结点 */
create new node ;
/* 将该结点连入best_match的hit_next */
link node into hit branch of best_match ;
}
/*插入算法结束 */
IP路由的删除要分几种情况讨论 。如 best_match 是叶子结点 ,best_match的hit_next指针为空, best_match的miss_next指针为空 和hit_next指针和miss_next指针都不为空等四种情况。这里就不再讨论。另外,还可以通过两种方法,将配置文档存放在支持命令行接口(CLT)的路由器平台上。一种是运行脚本,脚本能在路由器配置服务器到路由器之间建立SSH会话、登录系统、关闭控制器日志功能、显示配置、保存路由器配置到本地文件以及退出系统。另一种是在路由器配置服务器到路由器之间建立IPSEC遂道,通过该安全遂道内的TFTP,将路由器配置文件拷贝到服务器。同时,还应明确哪些人员可以更改路由器配置、何时进行更改以及如何进行更改,在进行任何更改之前,制定详细的逆序操作规程。
路由器配置的方法您通过以上的内容应该有所了解了,这些都是基础知识,很容易就会掌握的,希望读者能够掌握。