登录后台

页面导航

本文编写于 1255 天前,最后修改于 826 天前,其中某些信息可能已经过时。

此文章绝对干货,全网独一份,转载请注明出处哦,谢谢。大家实践中如遇到问题,欢迎积极留言,或者加博主微信,我会进行解答

环境介绍

在172.102.251.1/24网段下,有华为,华三,博达三种品牌交换机
JumpServer地址为172.102.251.23,安装方式参考官方文档
Radius服务器地址为172.102.251.26,用windows的NPS服务实现


实现目标

  1. 交换机只能通过堡垒机进行账号登录,登录方式为SSH
  2. 登录交换机所使用的账号密码为radius的账号密码,使用radius服务器进行验证
  3. 使用console线登录交换机时候,使用radius服务器上的账号密码进行登录
  4. 当radius服务器和堡垒机同时宕机时候,能够使用本地账号远程ssh到交换机上
  5. 堡垒机开设不同交换机权限的账户(0-15),实现交换机账号分权
  6. 关闭交换机Telnet服务

实现思路

  1. 在交换机上配置标准acl,放通堡垒机ip,并应用到vty或者ssh下,不同品牌交换机,命令不同
  2. 在win server起nps服务器,并设置好三个用户组,对应三个交换机权限(level0,1,15),并创建三个用户,添加至对应组
  3. 交换机配置console口登录方式为aaa,NPS服务中,连接请求策略设置中,radius属性-标准,添加Service-Type为Login
  4. 交换机设置本地账号和密码,并开启该账号的ssh功能
  5. 交换机设置三个ssh账号,不用设密码,不同品牌交换机命令不同,博达交换机不用设置ssh账号

实现方式

Radius服务器设置

Radius采用win ser的NPS服务实现,具体搭建方式百度都有

  • 创建三个本地账号(自定义名称)view,system,admin密码自定义,分别对应不同的交换机权限level0,level1,level15
  • 创建三个用户组(自定义名称)network0,network1,network15,并将对应的本地账户添加至三个用户组
  • 打开NPS管理器,添加radius客户端,填写对应交换机ip和共享秘钥
  • 打开NPS管理器,添加连接请求策略,依次填写策略名称,客户端IP地址(对应交换机ip),验证方法勾选(更改网络策略验证设置,加密的身份验证,未加密的身份验证),Radius属性中,标准-添加Service-Type为Login
  • 打开NPS管理器,添加三条网络策略(分别对应三个权限)。
一、添加level0的网络策略
1、新建网络策略,名称Radius-level-0(自定义名称),条件选择windows组,选择用户组network0
2、指定访问权限,选择默认
3、身份验证方法,勾选Microsoft加密的身份验证版本2(MS-CHAP-V2)、Microsoft加密的身份验证版本2(MS-CHAP)、加密的身份验证(CHAP)、未加密的身份验证(PAP、SPAP)
4、配置约束,选择默认
5、配置设置中:标准-添加Service-Type为Login,供应商特定,添加Vendor-specific,添加供应商代码2011,选择符合供应商特定属性,配置属性,选择十进制,属性值选择0。再添加Vendor-specific,添加供应商列表选择cisco,同样选择十进制,属性值选择1。其他均为默认。
二、添加level1的网络策略
1、操作与1相同,在供应商特定选项中,供应商代码2011的属性值改为1,供应商cisco的属性值,选择3。
三、添加level15的网络策略
1、操作与1相同,供应商特定中,什么都不要选择,空白即可。

不同品牌交换机配置

华为交换机

sys
dsa local-key-pair create #创建密钥对
y
stelnet server enable      #开启SSH功能
ssh user jsdfyx_view     #添加三个SSH账户,这三个SSH账户分别Radius服务器上三个本地账号,对应不同权限
ssh user jsdfyx_view authentication-type password 
ssh user jsdfyx_view service-type stelnet
ssh user jsdfyx_system
ssh user jsdfyx_system authentication-type password
ssh user jsdfyx_system service-type stelnet
ssh user jsdfyx_admin
ssh user jsdfyx_admin authentication-type password
ssh user jsdfyx_admin service-type stelnet
ssh user admin     #为本地账号admin开启ssh功能
ssh user zzzw authentication-type password
ssh user zzzw service-type stelnet
acl number 2000     #创建基础acl,让交换机只能通过堡垒机的ip进行登录
 rule 0 permit source 172.102.251.23 0
 rule 10 deny     #华为交换机是默认放通所有,因此要添加一条拒绝所有
quit
user-interface vty 0 4     #在vty中应用acl
acl 2000 inbound
quit
user-interface vty 16 20     #在vyt中应用acl
acl 2000 inbound
quit
radius-server template jsocn     #配置radius服务
radius-server authentication 172.102.251.26 1812 
radius-server shared-key cipher *****
aaa
authentication-scheme jsocn
authentication-mode radius local     #配置优先radius认证,当radius服务器宕机时,采用本地认证
quit
 local-user zzzw service-type terminal ssh
quit
undo telnet server enable    #关闭telnet服务
quit
save
y

华三交换机

sys
radius scheme jsocn     #配置radius服务
primary authentication 172.102.251.26
primary accounting 172.102.251.26
user-name-format without-domain
key authentication simple *****
quit
domain jsocn.net
authorization login radius-scheme jsocn local     #优先Radius认证
authentication login radius-scheme jsocn local
quit
domain default enable jsocn.net
role default-role enable network-admin 
local-user zzzw class manage     #创建本地账号zzzw
authorization-attribute user-role level-15
service-type ssh terminal 
quit
acl basic 2000
rule 0 permit source 172.102.251.23 0
rule 100 deny
quit
ssh server acl 2000     #将acl应用到acl中,华三不应用到vty
line vty 0 4
 authentication-mode scheme     #用aaa登录验证
 user-role level-15
 protocol inbound ssh     #使用ssh进行登录

博达交换机

enable
config
ip access-list standard ssh-acl     #创建默认acl
permit  172.102.251.23 255.255.255.255
deny  any 
exit
ip sshd access-class ssh-acl     #应用ssh acl
ip sshd enable     #打开ssh功能,博达和华三都不需要创建ssh账户
ip access-list standard telnet-acl     #创建telnet的acl,用于关闭telnet功能
deny any
exit
ip telnet access-class telnet-acl     #应用telnet acl

JumpServer后端配置

安装方式直接去官网看安装文档,本次使用脚本安装方式。
离线安装要点(centos7测试成功):

  • 首先服务器要联网进行必要的安装,然后改ip切换回内网即可。
  • 安全前先装好docker-ce,安装方式参考我之前博文或自行百度。
  • docker先配置好镜像加速,避免脚本安装失败,加速方式见我之前博文或自行百度。
  • 安装完成后,把ip和网关改成内网的。
  • 改成内网后docker exec -it jms_koko /bin/bash进入容器,ping一下内网的网络设备,是否能通。(应该是不通的)
  • 不通的话需要进行如下操作
在/etc/sysctl.conf添加行net.ipv4.ip_forward=1,然后sysctl -p     #打开转发功能
cd /opt/setuptools
./jmsctl.sh reset     #改ip必须重置组件

JumpServer前端配置

B站有Jumpserver的教学视频,大家需要理解,用户,用户组,系统用户,管理用户,资产管理与资产授权之间的关系。
我的配置如下:

  1. 创建三个用户组:定义三个权限,分别为0、1、15(命名自定义)
  2. 创建三个用户,分别将三个用户加入到对应的用户组(命名自定义)
  3. 创建管理用户,随便创建,因为管理用户是给用于获取服务器的硬件配置信息的,交换机没有用,但必须要设置
  4. 创建系统用户,系统用户是登录交换机时用的账号密码,需要设置之前在Radius服务器中的的三个权限的本地账户密码。在这里分别是view、system、admin。选择自动登录
  5. 在资产列表中,添加对应的交换机,这个不用多说
  6. 资产授权,添加三条授权规则,分别对应三个不同权限的用户组和系统用户,资产选择所有资产。

最后,使用三个不同权限用户组中的用户,登录堡垒机,然后登录交换机,进行测试。博主测试无问题哦