第一章网络设备安全网络设备安全主要包括以下几个方面:网络设备的系统服务安全网络设备端口服务安全网络设备的登录告警网络设备的访问控制与安全相关的系统服务和优化与设备安全相关的其他安全配置1.1网络设备的系统服务安全1.1.1全局下关闭不必要的服务在思科的网络设备中,默认启用了很多服务用来帮助用户简化配置,但是这些服务在帮助用户同时也为攻击留下了可能,因此对于农行是那些农行不需要的服务,我们建议将此关闭,以下是应该关闭的非必要服务:1.1.2关闭CDPCDP是一个介质和协议相独立的二层协议,运行在所有的Cisco设备上。
如果打开此协议,那么CDP将会以组播的方式周期地发送接口更新信息,以便告诉邻居设备自己的相关信息。
由于它是2层协议,这些包(帧)不能被路由,因此只能发现直联网段的设备,从而得到相关信息如模块编号和运行的软件版本。
从CDP得到的相关信息并不能对安全构成威胁,但是黑客可以利用此协议,将其作为一个智能工具对网络进行攻击。
所以,我们建议在核心关闭此协议,也就是在全局模式下运行no cdp run命令。
如果由于某些原因,要求网络运行CDP,那么可以打开此协议,但是应当在接口模式下关闭此协议,也就是说,在接口模式下运行no cdp enable命令。
1.1.3TCP Keepalives已经通过VTY登录的空闲用户会话可能会被非授权用户盗用,从而导致拦截攻击。
默认的情况下,Cisco网络设备并不检测已经建立好的TCP对端是否依旧可以到达。
如果一个TCP连接的一端处于空闲超时或者非正常终止(如机器瘫痪或重新启动),连接的另一端仍然认为会话是可用的。
攻击者能利用这个弱点对Cisco网络设备发动攻击。
为了克服这个问题,Cisco网络设备能被配置成周期性地发送keepalive信息,确保会话的另一端式处于正常的工作状态。
如果远端对此keepalive信息没有响应,那么发送端网络设备就会拆除此连接。
这样就可以释放网络设备资源以便留给别的更重要的任务所使用。
相关配置为:1.1.4其他建议打开的服务对于网络设备,其他有一些服务可以提高网络设备性能,从而增强对dos攻击1.2网络设备的端口服务安全同样,在端口上,存在一些不必要的可以简化用户配置但是牺牲安全性的默认服务,对此,我们也建议将以下这些容易被DOS攻击利用的IP端口特征关闭,命令如下:1.3登录系统声明和警告系统的登录提示在用户连接到网络设备的时候,网络设备显示的文本信息,通过这个文本信息,可以给予用户对应的系统声明和警告,从而可以防止用户的无意攻击或者误操作。
对此,我们推荐使用命令banner login配置相应的系统提示,从而降低系统被误操作攻击的影响,相关配置为:(具体的提示文本由农行考虑决定)1.4网络设备访问控制1.4.1Password Encryption我们推荐使用enable secret 命令用以代替enable password命令。
类型7加密算法用在enable password,service password-encryption 命令是可逆的。
然而enable secret命令通过使用不可逆的密码函数来存储enable secret密码,从而提供了更好的安全性。
它增加了安全加密层,对于密码需要穿越网络或密码保存在TFTP服务器上的情况而言,它是非常重要的。
下面的例子说明了怎样激活加密的密码:尽管enable secret命令用来激活密码,不要忘记使用service password-encryption命令,这样就可以使得保存在配置文件中的其他密码都显示类型7的密文而不是明文。
1.4.2用户认证认证、授权和审记(AAA)服务对路由器和访问服务器上的访问控制提供了主要的结构。
访问控制是一种方法,其核心是控制什么人可以访问路由器,并且一旦访问被允许,设定他们能操作的范围。
AAA 的目的是为了使三个独立的安全功能协调一致地工作,AAA提供了能够履行以下服务的模块化的方法: 认证提供了标识用户的方法,包括登陆和密码审查,向用户提问并且作出相应。
所有这些取决于多选用的安全协议和加密机制。
授权提供了远程访问控制的方法,包括一次性授权或对每种服务的授权,每一用户的记帐列表和用户数据文件,所支持的用户组,对IP,IPX, ARA和Telnet的支持。
审计提供了收集和发送安全服务信息的方法,所有的信息有记帐,审计,报告,如用户身份,开始和结束时间,所执行的命令(如PPP), 数据包的数目, 字节数。
推荐的首选保证路由器安全的方法是使用AAA协议如TACACS+, Radius, 或Kerberos。
使用任何一种协议,对于需要访问路由器的用户而言,其用户名和密码并不在路由器上,而是保存在另一个认证服务器上。
这样做有下列好处: 加密算法7具有可逆性。
因此能够访问路由器的用户可以看到密码从而可以获得对系统的访问。
使用AAA 可以解决此类问题。
如果一个新用户或一个用户离开公司,如果在很多的路由器上更改密码,那将是一项很艰巨的任务。
AAA可以很容易地更改以前的密码数据库。
在中心AAA 服务器上的密码是以UNIX加密的格式存在的,对UNIX 密码加密的算法是不可逆的,提供了更高的安全性。
所有的访问都在 AAA 服务器上有日志记录。
为了防止在网络故障或者AAA服务器故障时候,或者由于网络条件限制无法启动外部AAA服务器的情况下,我们推荐启用本地的数据库进行AAA认证进行对设备的认证控制,这样做有如下好处:在AAA服务器不可达的情况下,保证能够有手段进入设备进行维护。
对于没有AAA服务器的情况,启用本地认证增加了网络密码猜测攻击的难度,从而增强了网络安全性推荐配置如下:1.4.3VTY 和 Console 端口超时默认情况下,所有连接到网络设备上的VTY口, 控制口和Auxiliary口的非活动超时都是10分钟。
Timeout可以使用exec-timeout命令进行更改,如下所示:在上面的例子中,控制口和VTY的连接空闲5分钟时间后,网络设备将关闭此连接。
Auxiliary口的timeout 被设置成10分钟。
需要注意的是,设置空闲timeout到0意味着会话的连接始终保留。
这通常被看作是一个不好的习惯,因为它使用网络设备上非常有限的访问端口,这些端口被占用后,新的连接就无法建立。
在某些情况下,这些被保持的连接可能会被黑客所利用。
为了防止因远端系统的故障或断连而导致任何挂起的会话不会占用网络设备的VTY端口。
为了防止此会话不被挂起,配置service tcp-keepalives-in命令(参见本章第.4节-启用关键的服务)。
1.4.4VTY端口访问控制和snmp访问权限控制默认的情况下,在VTY 端口和snmp网管没有访问控制。
如果不使用访问控制列表,而只在配置vty密码和snmp口令,那么此网络设备不能防止对vty 和snmp的密码猜测攻击。
以下配置采用扩展的ACL来控制只有网段10.235.0.0/16中的设备可以通过VTY端口和snmp口令”public”访问网络设备。
扩展ACL还将对TCP 和IP的连接记录在日志文件中。
这样,对于企图扫描或非法入侵的不合法用户都有TCP/IP 信息记录(也就是访问者源地址)。
对于合法的和未经授权的连接也会有记录,这会对攻击此网络设备的非法用户提供了另一个审查的选择。
任何的企图都会记录在案。
如果日志文件被送到Syslog 服务器,那么服务器就会对非法的登录进行分析。
1.5与安全相关的系统服务和优化1.5.1配置Loopback端口Loopback接口对Cisco IOS软件并不是必须的,但是它有助于对网络设备服务的安全访问。
对于Cisco的Layer3设备,通常具有多个IP地址,而Layer 3设备访问外部通常时候,默认情况会使用最靠近外部设备的端口地址,这样可以保证网络的可达性。
但是这样,对于具有多路径的网络设备,会造成对于外部设备访问的源地址的不确定性,从而在安全上造成一个可能的漏洞。
因此我们建议对于Layer 3设备,配置一个专用的Loopback接口,使用这个loopback地址去访问特定的外部相关服务,从而保证设备的唯一性标识。
以下列出了使用Loopback接口的例子:IP 路由更新的源Unnumbered 接口FTP 使用的Exception dumps在TFTP 传输时网络设备地址SNMP trap-sourceTacacs+、Radius source-interfaceNetflow sourceNTPSyslog source-interface网络设备SSH 使用的IP地址由于Loopback接口总是处于激活状态的,其IP地址不会改变,所以TFTP 和FTP服务器可以被配置成只允许来自于网络设备上Loopback地址的请求。
1.5.2简单网管协议SNMPSimple Network Management Protocol (SNMP)是一个很关键的工具。
通过SNMP能够收集设备运行状态数据,并且对数据进行处理,将数据图形化,分析数据以便进行流量调整。
因此,应当保证对SNMP的使用进行严格控制,使其不要成为安全方面的漏洞。
更重要的是,绝对不能保留包含有public 或private在内的community字符序列的配置,因为这些字符序列是许多厂商硬件所共用的默认值,不论过滤与否,它们都是很不安全的。
如果SNMP被使用在只读模式,确保是在适当的访问控制的基础上建立的通信。
如果计划使用SNMP用于读写模式,应当很好地考虑使用此模式的风险。
在这种模式下,错误的配置可能使网络设备具有很大的安全隐患。
我们建议在农行的生产网络中不使用SNMP读写模式。
相关定义参见“网络管理运行-SNMP相关配置”。
1.5.3网络时间协议NTP网络的时间同步是网络管理中很关键的一个环节。
如果没有一定的机制确保运行在网络中的所有设备同步于同一个时间源,那么象记帐、事件日志、错误分析、安全事件响应和网络管理都不可能有效地工作。
当系统或网络工程师需要比较两个不同系统的日志时,每一个系统都需要一个参考值来匹配此日志。
那个参考值就是起到同步时间的作用。
NTP 是一个分层协议,它用来同步网络通信设备的时钟。
它是动态的、稳定的、冗余的协议,能够保持同步网络设备的时间,可以精确到毫秒。
保持一个设备的时间是一个很关键的资源,我们强烈推荐使用NTP的安全特性,避免意外的或恶意的不准确的时间设置。
可以使用下面两种方法:基于访问控制列表的限制机制和加密认证机制。
下面的例子列出了这加密认证的安全机制。
我们建议网络中的时间源选择稳定可靠的NTP服务器。
Cisco NTP的实现也允许一台交换机被配置成NTP服务器。