取消
显示结果 
搜索替代 
您的意思是: 
cancel
197
查看次数
1
有帮助
4
回复

如何在Nexus平台上禁止使用基于密码认证的SSH来登录设备?

Winniex
Level 1
Level 1

公司现有Nexus平台,信息如下:

 

 

Cisco-N93360-SW4-2# sh ver
Cisco Nexus Operating System (NX-OS) Software
TAC support: http://www.cisco.com/tac
Copyright (C) 2002-2022, Cisco and/or its affiliates.
...
Software
  BIOS: version 05.47
  NXOS: version 10.3(2) [Feature Release]
  BIOS compile time:  04/28/2022
  NXOS image file is: bootflash:///nxos64-cs.10.3.2.F.bin
  NXOS compile time:  11/30/2022 12:00:00 [12/16/2022 12:02:06]

Hardware
  cisco Nexus9000 C93360YC-FX2 Chassis 
  Intel(R) Xeon(R) CPU D-1526 @ 1.80GHz with 16312676 kB of memory.
  Processor Board ID FDO27120625
  Device name: Cisco-N93360-SW4-2
  bootflash:  115805708 kB

 

 

现在,我们为admin用户配置了密码,并为其它网络管理员账户配置了公钥认证,但是我们发现有人尝试使用admin账户加密码的方式通过SSH登录到本设备,这样无法保证网络及设备的安全,所有需要禁止使用账户密码登录SSH,我们在Nexus中尝试了Cisco IOS中的命令:

command in IOS:

 

 

ip ssh server algorithm authentication publickey

 

 

 command in Nexus:

 

 

Cisco-N93360-SW4(config)# ip ssh server ?
                                    ^
% Invalid command at '^' marker.

 

 

这意味着Nexus不能通过这样的方式设置仅使用公钥进行SSH登录认证。我们又想到,直接禁用有密码的admin用户:

 

 

Cisco-N93360-SW4(config)# no username admin 
admin account cannot be deactivated

 

 

这说明admin账户是无法删除的

所有,我们现在需要一种办法来提高SSH登录的安全性,譬如禁止通过密码认证(仅使用公钥进行认证)进行SSH登录或者禁止某些账户进行SSH登录(如使用密码认证的admin),期待能找到行之有效的一种方法。

十分感谢您的帮助。

4 条回复4

看看这些命令是否有效。

  1. 禁用密码认证,强制使用公钥认证:

禁用密码认证可以确保只有配置了 SSH 公钥的用户才能登录,增强了安全性。以下是禁用密码认证的步骤:

步骤:

  1. 配置 SSH 公钥认证
    首先,确保为用户配置了 SSH 公钥。你需要将用户的公钥上传到交换机上:

username <username> sshkey ssh-rsa <公钥内容>

  1. 禁用密码认证: 通过以下命令禁用密码认证,使得只允许使用公钥认证:

ssh key-exchange

feature ssh

ssh server v2

ssh key-exchange group dh-group14-sha1

ssh password-authentication no

这会禁止所有通过密码的 SSH 登录,只允许通过公钥登录。

  1. 限制特定账户的 SSH 登录(如禁止 admin 用户通过密码认证登录):

你可以通过配置 aaa SSH 规则来限制某些用户的登录。例如,可以对 admin 用户限制其只能通过特定方式登录。

步骤:

  1. 创建 AAA 规则: 配置一个自定义的 AAA 规则,允许某些用户通过 SSH 登录,但禁止 admin 用户使用密码认证登录:

aaa authentication login default local

aaa authentication login ssh-key-auth local

  1. 为特定用户禁止 SSH 可以通过修改用户的角色或者使用 ACL 限制 admin 用户的 SSH 登录:

username admin no ssh

通过这些方法,可以有效地提高 SSH 登录的安全性

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Rps-Cheers | If it solves your problem, please mark as answer. Thanks !

下面是尝试以上方法的输出记录:

 

Cisco-N93360-SW4-2# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Cisco-N93360-SW4-2(config)# ssh server ?
*** No matching command found in current mode, matching in (exec) mode ***
  <CR>              
  source-interface  Select source interface
  source-ip         Ip address to bind
  vrf               Display per-VRF information

Cisco-N93360-SW4-2(config)# ssh key
key        keytypes   
Cisco-N93360-SW4-2(config)# ssh key-exchange ?
*** No matching command found in current mode, matching in (exec) mode ***
  <CR>              
  source-interface  Select source interface
  source-ip         Ip address to bind
  vrf               Display per-VRF information

Cisco-N93360-SW4-2(config)# feature ssh 
Error: Can't disable/re-enable ssh:Current user is logged in through ssh
Cisco-N93360-SW4-2(config)# ssh key-exchange group dh-group14-sha1 ?
                                             ^
% Invalid command at '^' marker.
Cisco-N93360-SW4-2(config)# ssh password-authentication no?
                                                        ^
% Invalid command at '^' marker.
Cisco-N93360-SW4-2(config)# username admin no ?
                                           ^
% Invalid command at '^' marker.
Cisco-N93360-SW4-2(config)# username admin no ssh ?
                                           ^
% Invalid command at '^' marker.

 

似乎很多命令都不能生效


@Rps-Cheers  已写:

看看这些命令是否有效。

  1. 禁用密码认证,强制使用公钥认证:

禁用密码认证可以确保只有配置了 SSH 公钥的用户才能登录,增强了安全性。以下是禁用密码认证的步骤:

步骤:

  1. 配置 SSH 公钥认证
    首先,确保为用户配置了 SSH 公钥。你需要将用户的公钥上传到交换机上:

username <username> sshkey ssh-rsa <公钥内容>

  1. 禁用密码认证: 通过以下命令禁用密码认证,使得只允许使用公钥认证:

ssh key-exchange

feature ssh

ssh server v2

ssh key-exchange group dh-group14-sha1

ssh password-authentication no

这会禁止所有通过密码的 SSH 登录,只允许通过公钥登录。

  1. 限制特定账户的 SSH 登录(如禁止 admin 用户通过密码认证登录):

你可以通过配置 aaa SSH 规则来限制某些用户的登录。例如,可以对 admin 用户限制其只能通过特定方式登录。

步骤:

  1. 创建 AAA 规则: 配置一个自定义的 AAA 规则,允许某些用户通过 SSH 登录,但禁止 admin 用户使用密码认证登录:

aaa authentication login default local

aaa authentication login ssh-key-auth local

  1. 为特定用户禁止 SSH 可以通过修改用户的角色或者使用 ACL 限制 admin 用户的 SSH 登录:

username admin no ssh

通过这些方法,可以有效地提高 SSH 登录的安全性

 


 

ilay
VIP
VIP

nexus并不能禁用ssh使用密码的认证方式,最多就是你不给登录的账户设置密码,只保留sshkey的方式或者基于pki的登录方式,但别人要使用用户名密码做尝试这个没有一点办法,只是不能通过暴利破解的方式登录,但是尝试登录时密码验证失败,设备登录不上去,log里面仍旧会留下一堆尝试登录的消息。

举例来说明:

有一个用户test1,你可以配置次用户登录使用sshkey,这个没有任何问题,然后这个账户也不配置任何密码。那么想要使用test1成功登录到设备,只能使用对应的私钥对才可以。但是你没办法组织别人使用test1做登录测试

想要提高ssh登录的安全性可以从以下几点做下考虑:

1.关注当前使用os版本的漏洞,如果有涉及ssh的问题,要及时升级修复

2.使用acl限制能够登录设备的IP地址,这个能够极大限度的减少登录尝试行为,如果有单独的带外管理网络,可以限制仅允许通过特定的网段或者IP登录设备,其他的直接拦截掉就可以了。

3.(可选)调整失败尝试次数、超时时间、及时清理无效的账号等等

--

使用rsa key密钥对登录配置举例:

feature ssh //启用ssh功能,正常默认开启,检查配置即可

1创建登录的用户信息

导入公钥信息前需要先创建用户,直接导入有可能会提示用户不存在,导致导入失败

username test1 role network-admin // 创建test1 角色为network-admin

2.为创建的用户导入公钥

username test sshkey ssh-rsa AAAAB3NzaC1yc2EAA .... ....aBQ== //这里需要注意在粘贴公钥信息之前,要确认使用的加密算法,通常是ssh-rsa,当然也有ssh-dsa的密钥,后面的密钥注意是一行,中间不要有换行

username test sshkey file bootflash:test1-id_rsa.pub // 这是另外一种导入方式,先将pub文件传到bootflash中,然后使用文件的方式指定公钥信息 2选1即可

3.验证账户信息:

n9k-1(config)# show user-account test1
user:test1
this user account has no expiry date
roles:network-admin
no password set. Local login not allowed
Remote login through RADIUS/TACACS+ is possible
ssh public key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCrdRJjndRKO54cPDgq
6ADCF8O+iVkd7oQGGPQ3Q8aON8WlWvYG8UQvM90b/6BbJbwJPZfDFuV5m+0NPreiiImcGMueS0pPO6nc
....
07D7+A5rbqd0IJdp4Ocrie+n3Fv22hLxItoWMxCfQNE8b0E1zkfbWgUVFWD5hZDN45nzhfZMcDqPEK9j
f+DqDfZyLgxsxLjkcvXgweXaBQ== 
n9k-1(config)#

4.登录测试

使用ssh工具验证是否可以登录

其他配置可参考:

https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/93x/security/configuration/guide/b-cisco-nexus-9000-nx-os-security-configuration-guide-93x/b-cisco-nexus-9000-nx-os-security-configuration-guide-93x_chapter_0111.html#task_1060807

https://www.cisco.com/c/en/us/support/docs/voice/mds/200640-Ssh-into-NX-OS-Switches-using-key-based.pdf

快捷链接