Cisco网络设备访问安全基础

为了保护他们的Cisco 网络,许多管理员开始忙于什么样的流量可以被允许通过网络设备,怎样限制邮件路由升级和其他路由器交换的唯一信息。访问控制列表(ACLs)通常可以相当简单地解决这些问题。网络设备的安全对任何联网的环境都很重要,为解决这个问题,Cisco提供了许多可供选择的方法。

在本文中,我将介绍登录安全的基本配置。还将介绍怎样使用基于用户的登录配置来使得基本配置更加安全,证明怎样监视配置活动和对你的路由器的连接。一旦你明白了这些基本的配置,你可以在其上建立更多的Cisco高级特性。

基本登录安全配置

Cisco提供的最基本的安全考虑是在设备访问和配置过程中使用本地口令。不同的口令可以应用于不同的行或者访问指针。Cisco设备中典型的访问指针是终端行(也称为虚拟终端行, 或VTYs),控制台端口,和辅助端口(AUX)。

而且,不同的端口可以建立不同的认证方法。下面是一个非常简单的认证配置的例子。

IOS 版本 下面的例子假设有一个标准的,使用IOS 12.x版本的类访问Cisco路由器。 Router (config)# line con 0 Router (config-line)# password conpword1 Router (config-line)# login Router (config-line)# exit Router (config)# enable password 12345

在此,我已经设置了一个控制台端口口令并且产生我在配置路由器时需要的口令。首先我进入控制台端口的行配置模式,设置口令并用login来完成。然后我为路由器配置的访问权限创建口令。当需要保护本地控制台对路由器的访问时,应该从这里开始。

口令加密

需要注意的是在这个配置过程中,口令是纯文本的。从安全的角度看这不是一个好思想。然而,你可以把这些口令加密,这样访问路由器的其他人就不能看到这些口令。执行下面的命令: Router (config)# service password-encryption

口令加密服务将加密所有现存的和在以后配置的口令。我强烈推荐在你的Cisco网络设备配置中使用这项服务。

口令种类

有效口令包括两个种类:标准有效口令和有效密码(enable secret)。由于使用了强加密手段,所以有效密码比有效口令更安全。

配置有效密码之后,它将替代有效口令。下面的例子说明了有效密码的设置: Router (config)# enable secret abc123

如果你在执行了这一步后查看路由器配置,你将看到有效密码口令自动被加密了,无论是否开启了口令加密服务。

设置通话超时时间

另一件有关访问的事就是考虑通话超时。作为一个更高层的安全性,你可以设置在一段静止状态后断开对话连接。如果你离开终端一段时间,需要关闭一个配置对话,这是个便利的工具。默认的超时时间是十分钟。如果想设置通话超时,试一下下面的命令: Router (config)# line console 0 Router (config-line)# exec-timeout 6 30

如果在六分三十秒钟内没有输入,将关闭这个控制台对话。

保护终端行

在保护控制台端口的同时,你也希望保护在网络中用来进行Telnet访问的终端行。考虑下面关于Telnet安全的例子: Router (config)# line vty 0 4 Router (config-line)# password termpword1 Router (config-line)# login

需要注意的是这和控制台的配置非常相似。一个区别是由于路由器访问有不止一个VTY行,所以在VTY关键字后面有两个数字。在许多Cisco路由器上默认的行数为五行。在这里,我们为所有终端(VTY)行设置一个口令。我可以在某个范围指定实际的终端或VTY行号。你经常看到的语法是vty 0 4,这样可以包括所有五个终端访问行。从理论上来说,你可以对不同的VTY行或范围建立不同的口令。如果需要的话,你可以扩展可用的VTY行数以容纳更多的用户。但这个方法也有限制。首先,一般建议限制对典型的网络设备同时进行访问。所以在这个例子中,扩展VTY的输入行数并不是很好的选择。如果只是限制Telnet协议对VTY的访问,可以使用下列命令: Router (config) # line vty 0 4 Router (config-line) # transport input telnet

在这里,我已经指定所有终端行都可以使用Telnet。为了进一步限制源地址的路由器访问,我可以在行配置模式配合类访问命令使用一个访问列表。

要保护可以在网络中进行路由器访问的虚拟终端行,还有好多事情要做。

SSH vs. Telnet SSH对比Telnet 如果你非常偏爱使用Telnet来登录你的路由器,可以选择使用SSH。为了使你的路由器能够使用SSH,运行下列命令: Router (config) # line vty 0 3 Router (config-line) # transport input ssh

而且,我们对基本网络设备登录有一个相当可靠的基础。我们将考虑的下一个安全登录形式是基于用户的登录。

基于用户的登录

一个基于特定用户信任关系的登录进程有助于保证配置改变的责任,这在那些拥有许多需要手工操作的路由器和交换机的大型网络环境中显得尤为重要。一旦你执行了这个类型的认证,路由器将记录是谁在何时访问路由器并修改了配置。作为一个网络管理员,你将真切地体会到记录路由器配置变化的好处。为了使其工作,你可以使用认证,授权,和记录(AAA)特性来设定本地用户名认证。下面例子中的命令是激活本地用户名登录所必须的: Router (config) # aaa new-model Router (config) # aaa authentication login default local Router (config) # line vty 0 3 Router (config-line) # login authentication default Router (config-line) # exit Router (config)# username rmcintire password rmcinpword1 Router (config)# username rhumphrey password rhpword1 Router (config)# username jberry password jbpword1

尽管对AAA设置进行全面讨论超出了本文的范围,但我还是要介绍更多的高级技巧以说明其有用的性能。在此,我为登录创建了三个不同的用户名和口令并在VTY 1至3行应用这一登录方法。此外,如果加密服务启动了,口令将在实际路由器配置文件中被加密。

授权

随同访问而来的问题是访问等级,或者说是授权等级。这个问题是指你希望访问你的用户拥有多大的权限。Cisco的功能允许设置不同访问等级。权限等级的范围是从0到15;15拥有最高级别的访问权限。默认的级别是0和15。级别15提供完全的访问权限,而级别0能使用的命令和配置非常有限。你可以设置权限等级并通过命令或类型赋予这些等级一定的功能。例如,你可以创建一个级别,允许访问界面和命令行配置模式,另一个级别只允许访问某些通用命令配置模式。为了指定权限等级,你可以使用下列通用配置命令: Router (config) # Privilege configure level 5 ntp

你可以通过改变配置等级来赋予多种命令访问方式。这里,我创建等级5并允许在通用配置模式下使用NTP命令。

作为网络管理员,你将承担维护每一个用户的访问等级。为了使这些访问设置更有效,一定要限制所有用户使用访问命令的能力,因为这将允许他们改变自己的权限等级。在下面的例子中,我指定自己的等级为5: Router (config) # username rmcintire privilege 5 Another option to consider is assigning privilege by terminal line. To restrict privilege level by input line, enter config mode on that line and set the level as follows: Router (config) # line console 0 Router (config-line) # privilege level 7 Router (config) # line vty 0 4 Router (config-line) # privilege level 4

这就在VTY(终端)行中实现了一个比控制台更低的权限等级。这可能更适合需要限制用户通过虚拟终端对话在网络上进行等级较高的修改的环境。主要是,当需要进行重大修改时,这将迫使对控制台端口拥有较高级别访问权限的维护部门派人去手工改动交换机。

监控访问安全

你不仅可以追踪路由器的配置活动,还可以实时地知道何人连接了特定的路由器。像下面例子那样使用显示用户命令: Router # show users

这个命令的输出了一个表格,包括的行条目显示了每一个在使用的终端行,用户名,位置(地址),等。这个位置或IP地址可以用来从终端对话的位置查找实际的系统。如果用户名登录启动,你可以轻松地看到哪些用户登录了路由器。这就是我为什么推荐在不止有一个人进行网络维护的网络环境中使用某些基于用户的访问形式的原因。你也可以使用下面的命令断开受到怀疑或者没有授权许可的用户的对话: Router # disconnect ip-address

在任何时候查看权限信息,使用下面的命令: Router # show privilege

结论

在只有很少的几个人员需要访问网络设备的简单环境中,你通常可以只实现很基本的安全功能,以VTY形式和控制台口令来控制用户对路由器输入行的访问。增加一个有效密码,以及用户对配置网络进行访问是相当安全的。如果你有一个更大的网络,更多的人员需要进行访问,或者只是对责任要求更高,请浏览基于用户的访问技巧。

尽管在这个Daily Drill Down中,安全设置和补充远没有结束,但考虑完善的安全措施几乎总是我在保护我的Cisco路由器时做的第一件事情。由于有一个更高级,更丰富的性能集,你将享受到AAA带来的好处。我的下一篇文章,“用AAA提高访问控制技巧”将对这个话题提供更多的信息。

文章录入:csh    责任编辑:csh

(0)

相关推荐

  • Cisco网络设备访问安全基础

    为了保护他们的Cisco 网络,许多管理员开始忙于什么样的流量可以被允许通过网络设备,怎样限制邮件路由升级和其他路由器交换的唯一信息.访问控制列表(ACLs)通常可以相当简单地解决这些问题.网络设备的安全对任何联网的环境都很重要,为解决这个问题,Cisco提供了许多可供选择的方法.在本文中,我将介绍登录安全的基本配置.还将介绍怎样使用基于用户的登录配置来使得基本配置更加安全,证明怎样监视配置活动和对你的路由器的连接.一旦你明白了这些基本的配置,你可以在其上建立更多的Cisco高级特性. 基本登录

  • iOS 12+ 中检测网络访问的方法

    我最近写了一篇文章,来介绍 iOS 在连接新的 Wi-Fi 网络时,如何在弹出一个 web view 以让用户登录或注册之前,检测 Captive Portals (强制网络门户).如果你连接过诸如酒店.酒吧或咖啡店等地的公共 Wi-Fi 网络,对这个应该会比较熟悉.如果你不熟悉 iOS 中 Captive Portals 的工作方式,可以查看 Solving the Captive Portal Problem on iOS 这篇文章,以了解一些背景知识. 多年来,Apple 的 Reacha

  • 基于Java回顾之JDBC的使用详解

    尽管在实际开发过程中,我们一般使用ORM框架来代替传统的JDBC,例如Hibernate或者iBatis,但JDBC是Java用来实现数据访问的基础,掌握它对于我们理解Java的数据操作流程很有帮助. JDBC的全称是Java Database Connectivity. JDBC对数据库进行操作的流程:•连接数据库•发送数据请求,即传统的CRUD指令•返回操作结果集JDBC中常用的对象包括:•ConnectionManager•Connection•Statement•CallableStat

  • Visual C#.Net 网络程序开发-Socket篇第1/2页

    Visual C#.Net 网络程序开发-Socket篇   作者: 宋华 作者: www.ASPCool.com Microsoft.Net Framework为应用程序访问Internet提供了分层的.可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序..Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要-

  • 使用jQuery Mobile框架开发移动端Web App的入门教程

    一.jQuery Mobile 的渐进增强设计与浏览器支持 根据维基百科( Wikipedia ) 的解释,渐进增强的设计主要包括以下几点 basic content should be accessible to all web browsers (所有浏览器都应能访问全部基础的内容) basic functionality should be accessible to all web browsers (所有浏览器都应能访问全部基础的功能) sparse, semantic markup

  • 微信公众号平台接口开发 获取access_token过程解析

    新建Asp.net MVC 4.0项目 WeChatSubscript是项目UI层 WeChatTools是封装操作访问公众号接口的一些方法类库 获取AccssToken 我们要的得到AccessToken,这是所有接口访问的基础,我们看看官方给出的接口调用文档 很简单明了,grant_type=client_credential,这是固定的不会变 appid与secret就是前面一章我叫大家记起来的那个认证口令数据. 下边我们来实现这个功能,新建WeCharBase.cs public cla

  • 在项目中集成jetty server步骤解析

    为什么使用jetty 使用 tomcat 开发效率并不是太高,并且在eclipse有时两秒做更新,有时候又得手动去部署显得非常麻烦.折算我们可以使用 jetty server 由于 eclipse开发 http://www.eclipse.org/jetty/ 当然eclipse 也开发相关的工具,你可以选择下载 这里我封装了 一个web开发中常用的例子,供大家使用 项目结构 关键代码: package jettyutils; import java.io.IOException; import

  • java中的类为什么只能用public修饰?

    首先,类只能使用public修饰是一个伪命题,应该说我们只见到过使用public修饰的类,还有一些类没有访问修饰符,此时访问权限为default.其次,类实际上分为外部类和内部类(inner class),一般的类都是外部类,内部类需要依赖外部类生成,内部类可以用各种访问修饰符修饰.所以问题转化成,为什么不能使用private和protected修饰外部类? 我们知道,在Java中,访问修饰符可以修饰类.方法.变量和构造方法. 访问权限由高到低有以下4种 类内部 本包 子包 外部包 public

  • C基础 redis缓存访问详解

    引言 先说redis安装, 这里采用的环境是. Linux version 4.4.0-22-generic (buildd@lgw01-41) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 对于 ubuntu 安装 redis是非常简单的. 这里采用源码安装. 安装代码如下 wget http://download.redis.io/relea

  • Cisco路由技术基础知识详解之一

    Cisco路由技术基础知识详解 路由器 <一> 最简单的网络可以想象成单线的总线,各个计算机可以通过向总线发送分组以互相通信.但随着网络中的计算机数目增长,这就很不可行了,会产 生许多问题: 1.带宽资源耗尽.     2.每台计算机都浪费许多时间处理无关的广播数据.     3.网络变得无法管理,任何错误都可能导致整个网络瘫痪.     4.每台计算机都可以监听到其他计算机的通信. 把网络分段可以解决这些问题,但同时你必须提供一种机制使不同网段的计算机可以互相通信,这通常涉及到在一些ISO网

随机推荐