0x01 前言

生产环境中的网络设备对安全性和配置统一性较高,在设备上架后需要进行诸如配置清空、用户调整及权限控制等。如果涉及高可用,针对路由器与交换机可能还需要进行堆叠或配置HSB与VRRP等操作。

这篇文章里主要涉及一些通用配置,针对路由器的HSB与VRRP则不在此列。在我的工作中少有涉及,因为架构中涉及OSPF、IBGP、EBGP、静态路由及诸多NAT规则,因此需要根据实际的架构选用合适的技术。针对网关,可以使用HSB+VRRP;而诸如EBGP等协议则使用双路由双转发,但这需要ISP支持双线冗余。

0x02 权限控制

我一直都有个疑惑,为什么华为新设备的console初始密码总是不对的?每次都需要重启设备,然后进入BootROM删除密码并引导后再重新设置密码。

0x02.1 重置密码

先用console线连接设备与电脑,打开putty或其他支持Serial通讯方式的软件,选择正确的COM口及填入9600 Speed后单击连接:

 

然后接通电源,此时即可看到输出的内容。当出现以下语句时按下组合键:

然后输入密码,密码输入时不会显示任何字符。另外,路由器与交换机的默认密码也不一样,一般有以下两种:

登入BootROM后选择7以清除密码:

清除后不要选择8的Reboot,而需要选择1,因为此时配置还没保存,待完成启动后再执行save以避免意外情况的发生导致需要再次重置密码。

以上步骤是所有设备都需要进行的操作,如果交换机需要进行堆叠,则后续的步骤可以只在master slot上进行。

这里有个点需要切记:堆叠后的设备,密码务必要记住!一旦忘记则需要滚动重置,在无法停机维护的情况下进行这项工作是极其困难的。

0x02.2 用户及权限

一般情况下我都会将默认的admin用户禁用,然后创建一个高权限与低权限用户:高权限用户主要用于配置管理,低权限用户则用于巡检。因为设备一般支持console、ssh、http与ftp等协议,所以需要一并调整。

这里我并没有写上telnet,不久之前我已经全面转向使用ssh; http主要用于巡检,一般情况下请勿用于配置,我总感觉web ui与CLI之间的转换不太可靠; ftp只在下载日志或日志文件的时候打开,平常处于关闭状态,ftp还有一个问题:上传固件的时候会有很大几率导致坏包。

首先进入aaa视图,然后禁用默认的admin用户:

紧接着添加高权限和低权限用户:

上面的配置中包含idle-timeout 60 0这个配置项,单位为分钟,因为在我是用的环境中经常要联调好几个设备,需稍微延长超时时间。如果设为0,则为禁用超时,但极其不建议设为0且不要将这个数值设得太大,以免引起安全问题。

在上面完成密码初始化的工作后,如果是用初始密码登入WEB GUI就会强制修改密码,在使用SSH协议登入的时候也会提示修改密码,但不强制。修改密码的同时还不能与此前的密码一致,因此需要修改策略。在aaa视图下进入对应的策略视图并进行调整:

完整的aaa配置如下:

0x02.3 验证方式

在继续前需要添加一个acl用于控制访问这些重要服务的IP:

user-interface视图中使用上面的ACL控制入站流量,放行SSH协议并启用AAA验证模式

0x03 服务配置

0x03.1 IP配置

设备的管理IP可以配置在Vlanif或OOB MGMT端口中,需要根据具体的情况进行配置。我一般会在OOB交换机中配置特定的VLAN及Vlanif,其他设备都通过MEth MGMT端口接入且将OOB MGMT IP配置在该端口中。

如果使用特定的vlan,还需要确认OOB交换机中各个端口的默认vlan,同时建议修改OOB交换机端口的默认VLAN而不是修改设备MEth MGMT端口的VLAN,这样方便随时接入其他设备。

0x03.2 SSH

紧接着启用SSH服务

如果需要下载日志、配置文件或上传固件,建议使用SFTP:

添加SSH用户及配置验证方式

在交换机上还需要执行以下命令:

0x03.3 HTTP

HTTP服务主要用来做巡检,方便一线人员使用,在实际配置的过程中还是以CLI为主,主要是担心WEB GUI界面的配置项及描述和实际的有差异。

启动服务前务必要先通过ACL控制入站流量,另外需要打开HTTPS协议:

0x03.4 SNMP

SNMP是监控设备状态必用的协议,但配置不当会很容易泄漏配置信息,一般只打开read only权限:

这里使用v2c版本,主要是匹配zabbix模版中的配置,方便在大集群中实现自动发现。

0x03.5 sFlow

针对一些上联口,建议配置使用sFlow进行监控出入站的流量信息。上面的SNMP协议只能监控端口流量大小,而sFlow则可以根据采样间隔的不同输出不同精度的流量详情,在出现攻击的时候可以借助自动化脚本进行分析预警,联动其他安全设备进行防控。

首先配置一个collector:

然后到需要监控的端口下启用即可:

最后可以查看相关信息:

这部分的内容后续会通过其他文章进行说明。

0x03.6 堆叠

针对交换机堆叠的情况,只需要配置第一台交换机,后续所有的交换机只需要renumber即可,无需进行上述的所有配置。但一般情况下都是完成堆叠后再进行上面的配置,一旦完成堆叠即可将它们看成是一个整体,配置一次即可。

完成第一台的配置后,后续的交换机需要renumber,这个操作会修改交换机端口编号的第一位数字。端口编号的命名规则如下:

比如双机堆叠后的千兆口、万兆口及支持多种带宽的端口:

这里使用renumber修改的就是槽位号,默认都是0。因为堆叠情况下的槽位号不能相同,所以需要改为其他数字。在第二台交换机上执行:

注意!所有所有堆叠的命令都会即时写入配置文件,但保险起见,建议手动保存一次配置。

修改slot编号不需要重启交换机,紧接着配置堆叠口。如果交换机支持iStack则可以使用业务口进行堆叠,如果需要使用光口或QSFP端口进行堆叠,务必要选购正确的线缆或模块。具体信息可以到这里查询:

交换机堆叠还有一个细节需要注意的,就是逻辑口的port number必须要错开,如下:

请注意L-Port,主要包含槽位号和端口号,其中槽位号需要与交换机的槽位号一致,而端口号则不能使用同样的数字。在继续之前需要清空堆叠口下的所有配置,然后使用命令进入逻辑口:

然后在另一台交换机参照上述配置进行配置即可,最后连接堆叠线缆即可完成堆叠,最终的配置如下:

注意上面的第8行,一般情况下的vlan id 4093是不会被占用的,但我就发现过被占用的情况,此时可以手动调整vlan id。在连接堆叠线后,可以将console线接入从交换机,可以看到启动信息,方便排查问题。

0x04 其他

我一般情况下都使用双机堆叠做冗余,此时需要关注脑裂的问题,如果对可靠性要求较高,可以使用双主检测。在有独立MEth的交换机中配置双主检测较为便捷,没有的话也可以在配置了Eth-Trunk的端口中配置。

交换机名称的命名规范很重要,尤其在大型集群中,交换机数量一多会很容易弄混。

除交换机互联外,不建议对终端配置Eth-Trunk,配置维护起来极其麻烦。诸如vSphere这类虚拟化一般支持双线冗余,使用冗余配置即可。

针对上面说到的端口命名格式,其实路由器可以更好地说明问题,比如AR3260:

可以使用一下地址对路由器进行配置:

有主控的一面(上图)是屁股,而插板卡的一面(下图)是前脸。主控的右侧是风扇,可以看到风扇的上面会有槽位的数字,以下是后面的:

以下是前面的:

上图中的主控是SRU200,那么主控上的端口编号是:

可以看到主控的槽位是0。而前面板卡的编号则是: