不,您不会-从技术上讲。但是,是否可以不进入启用模式取决于您的登录方式。
这是即时满足的版本:
您可以在没有启用密码的情况下通过控制台输入,但是如果您使用未设置启用密码的简单vty登录密码,则会陷入用户模式。
这是冗长的StackExchange答录器版本:
思科认证对于初学者来说有点混乱。那里有很多遗留的行李。让我尝试从现实的角度来分解这一点。
任何有任何业务登录路由器或交换机的人都将直接进入特权(启用)模式。用户模式基本上是一个前厅,其目的仅是将草稿拒之门外。在大型组织中,如果您拥有庞大的网络和同样庞大的劳动力资源,那么有人可以敲开前门并确保有人还在那是合理的。(也就是说,登录并运行最简单的命令只是为了看到该设备实际上在响应而不是着火。)但是在我曾经工作过的每个环境中,第1层至少都具有某种能力打破事情。
因此,尤其是在像您这样的情况下,必须知道启用密码才能完成任何事情。您可以说这是第二层安全性-一个用于输入设备的密码,另一个用于升级为管理权限的密码-但这对我来说有点愚蠢。
如前所述,您可以(而且很多人都可以)使用相同的密码,如果有人通过telnet / ssh获得了未经授权的访问,这将无济于事。每个人共享静态的全局密码可能是一个问题,而不是仅需要输入一个令牌即可。最后,大多数其他系统(服务,设备等)不需要第二层身份验证,因此通常不会被认为是不安全的。
好,那是我对这个话题的看法。您必须根据自己的安全立场自行决定是否有意义。让我们转到工作上。
思科(明智地)要求您默认设置一个远程访问密码。当您进入线路配置模式时...
router> enable
router# configure terminal
router(config)# line vty 0 15
router(config-line)#
...您可以告诉路由器跳过身份验证:
router(config-line)# no login
...并立即被黑客入侵,但攻击者最终将进入用户模式。因此,如果您设置了启用密码,则至少可以在一定程度上限制可能造成的损坏。(从技术上讲,如果没有启用密码,您也无法做任何进一步的工作。稍后,更多内容……)
自然,没有人会在现实生活中这样做。默认情况下,根据常识,您的最低要求是设置一个简单的密码:
router(config-line)# login
router(config-line)# password cisco
现在,将要求您输入密码,然后再次进入用户模式。如果您是通过控制台进入的,则只需键入enable
即可获取访问权限,而无需输入其他密码。但是通过telnet,情况有所不同,您可能会在这里得到:
$ telnet 10.1.1.1
Trying 10.1.1.1...
Connected to 10.1.1.1.
Escape character is '^]'.
User Access Verification
Password: *****
router> enable
% No password set
router>
继续...您可能已经知道,默认情况下,所有已配置的密码都以纯文本形式显示:
router# show run | inc password
no service password-encryption
password cisco
这是使具有安全意识的括约肌更紧密的那些事情之一。是否有正当理由又要由您自己决定。一方面,如果您有足够的权限来查看配置,则可能有足够的权限来更改配置。另一方面,如果您碰巧不小心将配置信息透露给本身没有能力的人,那么...嗯,现在他们确实有能力。
幸运的是,以上代码段中的第一行no service password-encryption
是更改此代码的关键:
router(config)# service password-encryption
router(config)# line vty 0 15
router(config-line)# password cisco
现在,当您查看配置时,您将看到以下内容:
router(config-line)# do show run | begin line vty
line vty 0 4
password 7 01100F175804
login
line vty 5 15
password 7 01100F175804
login
!
!
end
这一点比纯文本密码要好一些,因为显示的字符串记忆不足,无法顺手冲浪。但是,解密很简单-在这里我宽松地使用该术语。您可以从字面上将该字符串粘贴到第一个Google结果页上的十二个JavaScript密码破解程序中的一个中,然后立即将原始文本取回。
这些所谓的“ 7”密码通常被认为是“模糊的”而不是“加密的”,以突显它仅比没有更好的事实。
事实证明,所有这些password
命令均已弃用。(或者如果不是,则应该这样。)这就是为什么您有以下两个选择的原因:
router(config)# enable password PlainText
router(config)# enable secret Encrypted
router(config)# do show run | inc enable
enable secret 5 $1$sIwN$Vl980eEefD4mCyH7NLAHcl
enable password PlainText
秘密版本使用单向算法进行哈希处理,这意味着通过暴力破解来获取原始文本的唯一方法-也就是说,尝试所有可能的输入字符串,直到碰巧生成已知哈希值为止。
在提示符下输入密码时,它会使用相同的哈希算法,因此最终应生成相同的哈希,然后将其与配置文件中的哈希进行比较。如果它们匹配,则接受您的密码。这样,路由器不会知道纯文本,除非在创建或输入密码的短暂时间内。注意:总是有其他输入可以生成相同散列的机会,但是从统计上讲,这是非常低的(可忽略不计)。
如果您自己使用上述配置,则路由器将同时允许enable password
和enable secret
并存,但密码提示中的密码将成为秘密。这是没有多大意义的思科主义之一,但事实就是如此。此外,在secret
线路配置模式下没有等效的命令,因此您在这里只能使用混淆的密码。
好了,所以我们现在有一个无法(轻松)从配置文件中恢复的密码-但是仍然存在一个问题。通过telnet登录时,它以纯文本格式传输。不好。我们需要SSH。
SSH的设计考虑了更强大的安全性,需要做一些额外的工作-以及具有特定功能集的IOS映像。一个很大的区别是,简单的密码已经不够用了。您需要升级到基于用户的身份验证。然后,设置一个加密密钥对:
router(config)# username admin privilege 15 secret EncryptedPassword
router(config)# line vty 0 15
router(config-line)# transport input ssh
router(config-line)# no password
router(config-line)# login local
router(config-line)# exit
router(config)# ip ssh version 2
router(config)# crypto key generate rsa modulus 1024
现在您正在用煤气做饭!请注意,此命令使用secret
密码。(是的,您可以但不应使用password
)。该privilege 15
部分允许您完全绕过用户模式。登录后,直接进入特权模式:
$ ssh admin@10.1.1.1
Password: *****
router#
在这种情况下,无需使用启用密码(或密码)。
如果您还没有想“哇... 那是什么集群软糖”,请记住,在该命令后面还隐藏着其他冗长的文章aaa new-model
,您可以在其中深入研究外部身份验证服务器(RADIUS) ,TACACS +,LDAP等),身份验证列表(定义要使用的源以及顺序),授权级别和用户活动计费。
将所有这些保存一段时间,以防您想暂时退出路由器。
希望有帮助!