作为网络管理员,您需要登录网络设备。为此,您当然需要一个登录ID和一个密码。这就提出了如何管理此帐户信息的问题。有很多选择。

最简单的选择是将此帐户信息本地存储在每台设备上,但是如果您有很多设备,则很难管理。更好的替代方法是使用身份验证协议,以允许设备从中央服务器获取帐户信息。

最常用的身份验证协议是TACACS +,RADIUS,LDAP和Active Directory。重要的是要了解这些不是竞争协议。我见过许多同时使用所有环境的环境—它们只是用于不同的事情。

在本文中,我们讨论了最常用的协议,以及在哪里最好使用每个协议。

在开始之前,您应该知道需要担心的三个关键任务,这就是为什么在不同情况下使用不同的协议的原因。我们使用缩写AAA来概括它们,以进行身份​​验证,授权和记帐。有时会有四分之一的A用于审核。

本地账户

使用本地帐户,您只需将管理用户ID和密码直接存储在每个网络设备上。这有一些严重的缺点。

首先,如果您有很多设备,那么进行更改(例如通过网络添加或删除用户或更改密码)将成为一项艰巨的任务。

其次,如果有人可以物理访问这些设备之一,甚至可以访问其配置文件,则他们可以通过蛮力悄悄地破解密码。然后,如果许多设备上的密码都相同,那么您将面临严重的麻烦。

第三,进行集中登录和审核失败的登录尝试或锁定您认为已遭到破坏的帐户变得极为困难。

话虽如此,本地帐户在一种关键情况下至关重要:如果存在阻止设备访问中央身份验证服务器的问题,则需要至少拥有一个本地帐户,以便您仍然可以进入。(当然, ,那么当需要解决最根本的问题时,就是最需要登录设备的时间。)

解决方案是在每台设备上配置最后使用的特权帐户。如果提供身份验证服务,则永远不会使用该帐户。如果您在正常操作期间尝试输入本地管理凭据,则它们将失败,因为中央服务器无法识别它们。

的following code fragment shows how to configure a local user account on a Cisco device. It enables the AAA authentication mode 和 tells the devices they should use a locally defined method called “local_auth”.

!
aaa new-model
aaa authentication login local_auth local
!
username kdooley privilege 15 password Aw3somE
!
line vty 0 4
login authentication local_auth
!

的“line vty” command associates this logon method with specific virtual terminal lines. Then I could have a separate authentication method for other types of users, such as remote VPN credentials.

在示例中,我创建了一个本地用户,其特权级别为15。这并非总是好的做法。许多安全意识强的组织要求您以非特权用户身份登录,然后使用“ enable”命令来获取超级用户特权。在这种情况下,请忽略命令的“特权15”部分。

TACACS +

终端访问控制器访问控制系统(TACACS)是专有Cisco协议用于处理身份验证和授权的冗余名称。加号将协议的现代版本与一个非常老的协议区别开来,后者不再有人使用。

TACACS +具有几个关键的区别特征。当身份验证数据包通过服务器和网络设备之间的网络时,它可以对身份验证数据包进行完全加密。这样可以防止攻击者在您的登录凭据通过网络时窃取它们。

TACACS +的最重要和最有用的功能是它能够执行精细的命令授权。在Cisco设备上将命令授权与TACACS +一起使用时,您可以精确地限制其他管理用户可以在设备上键入的命令。

例如,您可以允许服务台用户查看“ show interface brief”命令的输出,但不能查看任何其他“ show”命令甚至其他“ show interface”命令选项。

命令授权有时用于大型组织,这些组织由于不同的原因而有许多不同的人来访问设备。但是,对于网络管理员在网络设备上进行所有操作的组织而言,此功能并不是很有意义。

在Cisco设备上配置TACACS +非常简单,但是还有一些额外的步骤。

!
aaa new-model
aaa authentication login default group tacacs+ local
tacacs-server host 192.168.100.15
tacacs-server key V3ryS3cret
!
username kdooley privilege 15 password Aw3somE
!
line vty 0 4
login authentication default
!

请注意,该示例显示了一个备用管理员帐户,该帐户可在无法访问TACACS +服务器的情况下使用。没有它,您可能会发现自己在网络故障期间被锁定在设备之外。

“ aaa authentication”命令显示了依次尝试的身份验证方法的列表。首先,它将尝试“ group tacacs +”。然后,如果任何一台TACACS服务器都没有响应(我们只列出了一台,但您可以轻松列出几台),它将使用本地用户名数据库。

请务必注意,只有第一种身份验证方法无法响应,设备才会尝试第二种身份验证方法。如果TACACS +服务器响应,但说用户名或密码错误,它将停止。

在此示例中,“ tacacs-server host”命令定义了服务器的IP地址。 “密钥”命令包括TACACS +协议将用来加密数据通过网络时使用的密钥。此密钥还可以在设备和服务器之间提供身份验证,以确保本地网络上的其他设备不会对凭据数据库进行暴力攻击。

半径

远程身份验证拨入用户服务(RADIUS)很少用于对拨号用户进行身份验证,但这就是它最初开发的原因。现在,它是用于用户身份验证的通用协议。

与TACACS +不同,RADIUS不会加密整个数据包。相反,它仅加密包含用户身份验证凭据的数据包部分。尽管我不建议您在没有其他加密技术(例如VPN)的情况下,建议不要通过公共Internet传递这种级别的安全性,但是这种安全性通常被认为足够好。

虽然RADIUS可用于在管理用户访问网络设备时对其进行身份验证,但它通常用于对访问网络的用户进行常规身份验证。例如,RADIUS是802.1X用于验证访问网络的有线或无线用户的基础协议。

一种非常常见的技术是将RADIUS用作诸如802.1X之类的身份验证协议,并使RADIUS服务器与后端的Active Directory或LDAP服务器通信。然后,Active Directory或LDAP系统将处理用户ID和密码。这种设置允许集中控制不同用户可以访问哪些设备和系统。

为用户身份验证配置RADIUS与TACACS +几乎相同。

!
aaa new-model
aaa authentication login default group radius local
radius-server host 192.168.100.16
radius-server key RaDiU$S3cret
!
username kdooley privilege 15 password Aw3somE
!
line vty 0 4
login authentication default
!

的“radius-server key”命令提供对RADIUS协议数据包有效负载的一部分的加密,包括用户名和密码。出于安全原因,它还会通过RADIUS服务器对设备进行身份验证。

会计

在我们继续讨论LDAP和Active Directory之前,AAA功能集的另一个重要功能是提供集中日志记录的功能。为此,您需要指定要登录的内容和登录位置。

!
aaa accounting exec default start-stop group radius
!

上面的示例告诉设备,每次用户启动或结束管理会话时,设备都会向RADIUS服务器发送消息。几乎相同的命令将相同的信息发送到TACACS +服务器。在这两种情况下,该信息都包括用户ID和事件的时间。

它与通常的syslog日志记录不同,但可能包含一些相同的信息。在这种情况下,设备将本地使用TACACS +或RADIUS协议将特定于身份验证的信息发送到中央服务器。

LDAP和Active Directory

轻型目录访问协议(LDAP)和Active Directory几乎是同一回事。 Active Directory本质上是Microsoft对LDAP的专有实现,尽管Active Directory是LDAP,上面附加了很多额外的功能。

某些网络设备(尤其是无线设备)可以直接与LDAP或Active Directory进行通信以进行身份​​验证。但是思科交换机和路由器本身并不讲LDAP和Active Directory。如果您拥有Cisco设备,则需要使用其他方法(通常是RADIUS)作为中间步骤。

使用RADIUS与Active Directory对话只是为了保留用户名和密码听起来很麻烦,但实际上可以简化大型网络的管理。例如,如果有大量的管理用户,而他们全都需要访问Microsoft Windows服务,则将登录凭据保存在一个中央数据库中就很有意义。

如果您要通过802.1x验证普通用户的身份,而不仅仅是管理员,这也非常有用。在这种情况下,可能会有成千上万的用户,要在多个数据库中跟踪所有用户并不容易。

有两种常见的链接RADIUS和Active Directory或LDAP的方法。第一种是使用Cisco访问控制服务器(ACS)并将其配置为使用Active Directory为其名称存储。第二种是在Active Directory域控制器上运行本机Microsoft 半径服务。

在过去,全Microsoft解决方案存在扩展问题,因此人们倾向于在较大的部署中避免使用它。但是,这不再是正确的。现在,这两个选项都很出色。

集中式身份验证可改善网络的可管理性和安全性。快速,轻松地添加新用户以及一次在整个网络中的任何地方更新密码的能力极大地简化了管理。一次更改密码或锁定所有设备上的用户的能力提供了更好的安全性。借助集中日志记录,您可以立即知道是否有人在反复攻击特定用户的凭据,即使他们正在一系列网络设备上进行攻击以隐藏其踪迹。

总而言之,集中式身份验证就是您’我想认真考虑一下您的网络。