安装jumpserver堡垒机

一、堡垒机的介绍

  1. 跳板机和堡垒机概述

  跳板机属于内控堡垒机范畴,是一种用于单点登陆的主机应用系统。跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维护。但跳板机的缺点是没有实现对运维人员操作行为的控制和审计,出现误操作或违规操作难以定位到原因和责任人;并且跳板机存在严重的安全风险,如果跳板机系统被攻入,则后端资源完全暴露无遗。对于个别资源(如telnet)可以通过跳板机来完成一定的内控,但是对于更多更特殊的资源(ftp、rdp等)来讲,就显得力不从心了。

  堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责,有效降低了运维操作风险,使得运维操作管理变得更简单、更安全。

  1. Jumpserver概述

  Jumpserver 是一款使用Python、Django开发的开源跳板机系统, 为互联网企业提供了认证,授权, 审计,自动化运维等功能,即堡垒机。官网:http://www.jumpserver.org/。并且这是中国人自己开发的堡垒机,提供中文文档:https://jumpserver.readthedocs.io/zh/master/(安装步骤都是全的)

  Jumperserver共有三个组件:Jumpserver、Coco和Luna。Jumpserver管理后台,是核心组件, 使用Django Class Based View风格开发,支持 Restful API;Coco是实现SSH Server和Web Terminal Server的组件,提供SSH 和 WebSocket接口, 使用Paramiko和Flask开发;Luna是Web Terminal前端,计划前端页面都由该项目提供,Jumpserver只提供API,不再负责后台渲染html等。

  1. Jumpserver架构图

二、jumpserver的安装

1.配置初始环境

  • 修改字符集
    如果用的云服务器,云服务器默认是英文字符集。否则可能报 input/output error的问题,因为日志里打印了中文
[root@snowy201~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
[root@snowy201~]# export LC_ALL=zh_CN.UTF-8
[root@snowy201~]# echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
  • 安装依赖包
[root@snowy201~]# yum -y install epel-release
[root@snowy201~]# yum clean all && yum makecache
[root@snowy201~]# yum -y update
[root@snowy201~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
  • 关闭selinux**(如果不关闭,后面登录jumpserver管理后台时,会报错 502 bad gateway)
[root@snowy201~]# setenforce 0
[root@snowy201~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config    #长期关闭selinux 
[root@snowy201~]# systemctl stop firewalld && systemctl disable firewalld  #关闭防火墙

2.安装python3.6

  • 编译安装方式(2种方式二选一)
[root@snowy201~]# wget https://mirrors.huaweicloud.com/python/3.6.1/Python-3.6.1.tar.xz
[root@snowy201~]# tar xf Python-3.6.1.tar.xz && cd Python-3.6.1
[root@snowy201~]# ./configure && make -j 4 && make install
[root@snowy201~]# cd /opt/
  • yum安装方式(2种方式二选一)
[root@snowy201~]# yum -y install python36 python36-devel
  • 创建虚拟环境
[root@snowy201 ~]#python3 -m venv py3
[root@snowy201 ~]#source /opt/py3/bin/activate  //进入py3虚拟环境
(py3) [root@snowy201~]#    //看到面的py3提示符,就表示己经时入python3的虚拟环境     

3.安装Redis

(py3) [root@snowy201 opt] cd 
(py3) [root@snowy201 ~]#yum -y install redis
(py3) [root@snowy201 ~]#systemctl enable redis  --now 

4.安装MySQL

(py3) [root@snowy201 ~]#yum -y install mariadb mariadb-devel mariadb-server
(py3) [root@snowy201 ~]#systemctl enable mariadb --now
  • 创建jumpserver数据库并授权
(py3) [root@snowy201 ~]#mysql -u root -p
(py3) [root@snowy201 ~]#create database jumpserver default charset 'utf8';
(py3) [root@snowy201 ~]#grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '1';
(py3) [root@snowy201 ~]#flush privileges; 

5.安装jumpserver

  • 下载安装jumpserver
(py3) [root@snowy201 ~]#cd /opt
(py3) [root@snowy201 opt]#wget https://github.com/jumpserver/jumpserver/releases/download/v2.2.2/jumpserver-v2.2.2.tar.gz
(py3) [root@snowy201 opt]#tar xf jumpserver-v2.2.2.tar.gz
(py3) [root@snowy201 opt]#mv jumpserver-v2.2.2 jumpserver
(py3) [root@snowy201 opt]#cd /opt/jumpserver/requirements
(py3) [root@snowy201 opt]#yum install -y $(cat rpm_requirements).
(py3) [root@snowy201 opt]#pip install wheel -i https://mirrors.aliyun.com/pypi/simple/
(py3) [root@snowy201 opt]#pip install --upgrade pip setuptools -i https://mirrors.aliyun.com/pypi/simple/
(py3) [root@snowy201 opt]#pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
  • 配置Jumpserver
(py3) [root@snowy201 ~]# cd /opt/jumpserver
(py3) [root@snowy201 ~]# cp config_example.yml config.yml
(py3) [root@snowy201 ~]# vim config.yml
修改以下几行内容
SECRET_KEY: 3NF6ldRQzLNeRh8ewjJ4FkRXCccjExTRWXQ4JYIi4cIwQprZG  
可以使用命令生成(cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 29;echo) 
BOOTSTRAP_TOKEN: ujye866EVpHUDV9F 
可以使用命令生成(cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16;echo)
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: '1' //密码如果是纯数字一定要加单引号
DB_NAME: jumpserver
  • 启动和关闭jumpserver
(py3) [root@snowy201 ~]# cd /opt/jumpserver
(py3) [root@snowy201 ~]# ./jms start -d
(py3) [root@snowy201 ~]# ./jms stop

ps:jumpserver服务启动后,通过web访问后台,打开页面很慢,超时,查看进程资源使用情况发现,进程celery一直占用CPU使用率达100%,解决办法:pip install django-celery==3.1.17

  • 配置jumpserver开机自动启动服务
(py3) [root@snowy201 ~]# tee /usr/lib/systemd/system/jms.service <<EOF
[Unit]
Description=jms
After=network.target mariadb.service redis.service
Wants=mariadb.service redis.service
[Service]
Type=forking
Environment="PATH=/opt/py3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
ExecStart=/opt/jumpserver/jms start all -d
ExecReload=
ExecStop=/opt/jumpserver/jms stop
EOF

[root@snowy201 ~]# systemctl start jms.service
[root@snowy201 ~]# systemctl enable jms.service

5.部署koko组件

手动部署koko方式:

(py3) [root@snowy201 ~]# cd /opt/
(py3) [root@snowy201 opt]# wget https://github.com/jumpserver/koko/releases/download/v2.2.2/koko-v2.2.2-linux-amd64.tar.gz
(py3) [root@snowy201 opt]# tar -xf koko-v2.2.2-linux-amd64.tar.gz
(py3) [root@snowy201 opt]# cd koko
(py3) [root@snowy201 koko]# mv kubectl /usr/local/bin/
(py3) [root@snowy201 koko]# wget https://download.jumpserver.org/public/kubectl.tar.gz
(py3) [root@snowy201 koko]# tar xf kubectl.tar.gz
(py3) [root@snowy201 koko]# chmod 755 kubectl
(py3) [root@snowy201 koko]# mv kubectl /usr/local/bin/rawkubectl
(py3) [root@snowy201 koko]# rm -rf kubectl.tar.gz
(py3) [root@snowy201 koko]# cp config_example.yml config.yml
(py3) [root@snowy201 koko]# vim config.yml
# Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal
# 请和jumpserver 配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN: ujye866EVpHUDV9F

# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
# REDIS_PASSWORD:
# REDIS_CLUSTERS:
# REDIS_DB_ROOM:
  • 启动和关闭koko
(py3) [root@snowy201 koko]# ./koko    #前台启动
(py3) [root@snowy201 koko]# ./koko -d  #后台启动

docker部署koko方式(2种方式2选 1):

如果前面已经正常部署了 KoKo, 可以跳过此步骤
例子:
​
docker run --name jms_koko -d 
  -p 2222:2222 -p 127.0.0.1:5000:5000 
  -e CORE_HOST=http://<Jumpserver_url> 
  -e BOOTSTRAP_TOKEN=<Jumpserver_BOOTSTRAP_TOKEN> 
  -e LOG_LEVEL=ERROR 
  --restart=always 
  --privileged=true 
  jumpserver/jms_koko:<Tag>
<Jumpserver_url> 为 jumpserver 的 url 地址, <Jumpserver_BOOTSTRAP_TOKEN> 需要从 jumpserver/config.yml 里面获取, 保证一致, <Tag> 是版本

实例:

(py3) [root@snowy201 koko]# yum -y install docker  #安装docker
(py3) [root@snowy201 koko]# tee /etc/docker/daemon.json <<EOF  #配置dokcer境像源
{
"registry-mirrors": ["https://qtfb3ml8.mirror.aliyuncs.com"]
}
EOF

[root@snowy201 koko]# docker run --name jms_koko -d 
  -p 2222:2222 
  -p 127.0.0.1:5000:5000 
  -e CORE_HOST=http://172.20.77.201:8080 
  -e BOOTSTRAP_TOKEN=ujye866EVpHUDV9F 
  -e LOG_LEVEL=ERROR 
  --privileged=true 
  --restart=always 
  jumpserver/jms_koko:v2.2.2
​
查看启动成功:
​
[root@snowy201 koko]#  docker ps -a
停止docker的koko
docker stop  上面查出的容器ID
启动docker
docker start 容器ID
  • 配置koko开机自动启动服务
[root@snowy201 koko]# tee /usr/lib/systemd/system/koko.service <<EOF
[Unit]
Description=koko
After=network.target jms.service

[Service]
Type=forking
Environment="PATH=/opt/py3/bin/"
ExecStart=/opt/koko/koko -d
ExecReload=
ExecStop=/opt/koko/koko stop

[Install]
WantedBy=multi-user.target
EOF

[root@snowy201 koko]# systemctl start koko.service
[root@snowy201 koko]# systemctl enable koko.service

6. 部署guacamole

guacamole的功能是用于管理windows的资产,如果无windows资产可以不安装

docker方式部署guacamole

(py3) [root@snowy201 koko]# cd
(py3) [root@snowy201 ~]# yum -y install docker
(py3) [root@snowy201 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #配置docker镜像源
(py3) [root@snowy201 ~]# systemctl enable docker --now
  • 拉取guacamole镜像
(py3) [root@snowy201 ~]# docker run --restart=always --name jms_guacamole -d -p 127.0.0.1:8081:8080 -e JUMPSERVER_SERVER=172.20.77.201:8080 -e BOOTSTRAP_TOKEN=ujye866EVpHUDV9F -e GUACAMOLE_LOG_LEVEL=ERROR jumpserver/jms_guacamole:v2.2.2

手工部署guacamole
建议使用 Docker 部署 Guacamole 组件 , 部分环境可能无法正常编译安装

(py3) [root@snowy201 opt]# wget -O docker-guacamole-v2.2.2.tar.gz https://github.com/jumpserver/docker-guacamole/archive/master.tar.gz
(py3) [root@snowy201 opt]# mkdir /opt/docker-guacamole
(py3) [root@snowy201 opt]# tar -xf docker-guacamole-v2.2.2.tar.gz -C /opt/docker-guacamole --strip-components 1
(py3) [root@snowy201 opt]# rm -rf /opt/docker-guacamole-v2.2.2.tar.gz
(py3) [root@snowy201 opt]# cd /opt/docker-guacamole
(py3) [root@snowy201 docker-guacamole]# wget http://download.jumpserver.org/public/guacamole-server-1.2.0.tar.gz
(py3) [root@snowy201 docker-guacamole]# tar -xf guacamole-server-1.2.0.tar.gz
(py3) [root@snowy201 docker-guacamole]# wget http://download.jumpserver.org/public/ssh-forward.tar.gz 
(py3) [root@snowy201 docker-guacamole]# tar -xf ssh-forward.tar.gz -C /bin/ 
(py3) [root@snowy201 docker-guacamole]# chmod +x /bin/ssh-forward
(py3) [root@snowy201 docker-guacamole]# cd /opt/docker-guacamole/guacamole-server-1.2.0

根据 Guacamole官方文档 文档安装对应的依赖包,参考见:https://blog.csdn.net/qq_38781075/article/details/106459458

​(py3) [root@snowy201 guacamole-server-1.2.0]# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
​(py3) [root@snowy201 guacamole-server-1.2.0]# yum install -y cairo-devel libjpeg-turbo-devel libpng-devel libtool uuid-devel
(py3) [root@snowy201 guacamole-server-1.2.0]# ./configure --with-init-dir=/etc/init.d 
(py3) [root@snowy201 guacamole-server-1.2.0]# make
(py3) [root@snowy201 guacamole-server-1.2.0]# make install
  • 配置Java环境
(py3) [root@snowy201 guacamole-server-1.2.0]# yum install -y java-1.8.0-openjdk
(py3) [root@snowy201 guacamole-server-1.2.0]# mkdir -p /config/guacamole /config/guacamole/extensions /config/guacamole/record /config/guacamole/drive
(py3) [root@snowy201 guacamole-server-1.2.0]# chown daemon:daemon /config/guacamole/record /config/guacamole/drive
(py3) [root@snowy201 guacamole-server-1.2.0]# cd /config
(py3) [root@snowy201 config]# wget http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz
(py3) [root@snowy201 config]# tar -xf apache-tomcat-9.0.37.tar.gz 
(py3) [root@snowy201 config]# mv apache-tomcat-9.0.37 tomcat9
(py3) [root@snowy201 config]# rm -rf /config/tomcat9/webapps/* 
(py3) [root@snowy201 config]# sed -i 's/Connector port="8080"/Connector port="8081"/g' /config/tomcat9/conf/server.xml  
(py3) [root@snowy201 config]# echo "java.util.logging.ConsoleHandler.encoding = UTF-8" >> /config/tomcat9/conf/logging.properties  
(py3) [root@snowy201 config]# wget http://download.jumpserver.org/release/v2.2.2/guacamole-client-v2.2.2.tar.gz 
(py3) [root@snowy201 config]# tar -xf guacamole-client-v2.2.2.tar.gz 
(py3) [root@snowy201 config]# rm -rf guacamole-client-v2.2.2.tar.gz  
(py3) [root@snowy201 config]# cp guacamole-client-v2.2.2/guacamole-*.war /config/tomcat9/webapps/ROOT.war 
(py3) [root@snowy201 config]# cp guacamole-client-v2.2.2/guacamole-*.jar /config/guacamole/extensions/ 
(py3) [root@snowy201 config]# mv /opt/docker-guacamole/guacamole.properties /config/guacamole/ 
(py3) [root@snowy201 config]# rm -rf /opt/docker-guacamole 
  • 设置 Guacamole 环境
(py3) [root@snowy201 config]# export JUMPSERVER_SERVER=http://127.0.0.1:8080
(py3) [root@snowy201 config]# echo "export JUMPSERVER_SERVER=http://127.0.0.1:8080" >> ~/.bashrc
(py3) [root@snowy201 config]# export BOOTSTRAP_TOKEN=ujye866EVpHUDV9F
(py3) [root@snowy201 config]# echo "export BOOTSTRAP_TOKEN=ujye866EVpHUDV9F" >> ~/.bashrc
(py3) [root@snowy201 config]# export JUMPSERVER_KEY_DIR=/config/guacamole/keys
(py3) [root@snowy201 config]# echo "export JUMPSERVER_KEY_DIR=/config/guacamole/keys" >> ~/.bashrc
(py3) [root@snowy201 config]# export GUACAMOLE_HOME=/config/guacamole
(py3) [root@snowy201 config]# echo "export GUACAMOLE_HOME=/config/guacamole" >> ~/.bashrc
(py3) [root@snowy201 config]# export GUACAMOLE_LOG_LEVEL=ERROR
(py3) [root@snowy201 config]# echo "export GUACAMOLE_LOG_LEVEL=ERROR" >> ~/.bashrc
(py3) [root@snowy201 config]# export JUMPSERVER_ENABLE_DRIVE=true
(py3) [root@snowy201 config]# echo "export JUMPSERVER_ENABLE_DRIVE=true" >> ~/.bashrc
  • 启动 Guacamole
(py3) [root@snowy201 config]# /etc/init.d/guacd start
(py3) [root@snowy201 config]# sh /config/tomcat9/bin/startup.sh

环境变量说明
JUMPSERVER_SERVER 指core访问地址
BOOTSTRAP_TOKEN 为 Jumpserver/config.yml 里面的 BOOTSTRAP_TOKEN 值
JUMPSERVER_KEY_DIR 认证成功后 key 存放目录
GUACAMOLE_HOME 为 guacamole.properties 配置文件所在目录
GUACAMOLE_LOG_LEVEL 为生成日志的等级
JUMPSERVER_ENABLE_DRIVE 为 rdp 协议挂载共享盘

7. 部署lina组件

(py3) [root@snowy201 ~]# cd /opt/
(py3) [root@snowy201 opt]# wget https://github.com/jumpserver/lina/releases/download/v2.2.2/lina-v2.2.2.tar.gz
(py3) [root@snowy201 opt]# tar -xf lina-v2.2.2.tar.gz
(py3) [root@snowy201 opt]# mv lina-v2.2.2 lina

8. 部署luna组件

py3) [root@snowy201 opt]# wget https://github.com/jumpserver/luna/releases/download/v2.2.2/luna-v2.2.2.tar.gz
py3) [root@snowy201 opt]# tar -xf luna-v2.2.2.tar.gz
py3) [root@snowy201 opt]# mv luna-v2.2.2 luna

说明:luna并不需要安装和运行,是由网站服务调用的

9. 安装配置nginx

py3) [root@snowy201 opt]# yun install -y nginx
py3) [root@snowy201 opt]# vi /etc/nginx/nginx.conf
#37行开始配置文件修改为以下内容
server {
listen 80;
client_max_body_size 100m; # 录像及文件上传大小限制

location /ui/ {
try_files $uri / /index.html;
alias /opt/lina/;
}

location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/; # luna 路径, 如果修改安装目录, 此处需要修改
}

location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/; # 录像位置, 如果修改安装目录, 此处需要修改
}

location /static/ {
root /opt/jumpserver/data/; # 静态资源, 如果修改安装目录, 此处需要修改
}

location /koko/ {
proxy_pass http://localhost:5000;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}

location /guacamole/ {
proxy_pass http://localhost:8081/;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}

location /ws/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8070;
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

location /api/ {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /core/ {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location / {
rewrite ^/(.*)$ /ui/$1 last;
}
}
  • 启动nginx
py3) [root@snowy201 opt]# nginx -t
py3) [root@snowy201 opt]# systemctl enable nginx --now 
  • 通过web登录jumpserver管理后台即可

    ps:如果通过web访问后台,打开页面很慢,超时,查看进程资源使用情况发现,进程celery一直占用CPU使用率达100%,解决办法:pip install django-celery==3.1.17
    17.jumpersever开机启动脚本
    虽然jumperserver己经可以正常使用了,但是服务器重启后,又得手动启动服务,比较麻烦,写个开机启动脚本
[root@snowy201 ~]# vi /etc/init.d/start_jumpserver.sh
#!/bin/bash
echo "start jumpserver"
source /opt/py3/bin/activate
#未配置jumpserver及koko的开机自启动服务时启用
#/opt/jumpserver/jms start -d >>/root/log.txt 2>&1
#sleep 60
#cd /opt/koko/
#./koko -d >> /root/log.txt 2>&1

#开机启动guacamole
/etc/init.d/guacd start >>/root/log.txt 2>&1
sh /config/tomcat9/bin/startup.sh >>/root/log.txt 2>&1

[root@snowy201 ~]# chmod +x /etc/init.d/start_jumpserver.sh
[root@snowy201 ~]# echo "/etc/init.d/start_jumpserver.sh" >> /etc/rc.d/rc.local
[root@snowy201 ~]# chmod +x /etc/rc.d/rc.local

后台管理页面的配置

1.浏览器访问jumpserver后台管理页面
默认登录用户:admin,密码:admin,首次登录会要求改密码


2.jumpserver平台初始化
基本设置:

邮件设置:

注意:SMTP在邮箱的设置中开启,并获取密码。
3.创建jumpserver用户及用户组
创建用户:




创建用户成功后,会发送一份邮件到用户的邮箱,用户点击邮件的链接,设置密码激活用户

创建用户组:



4.资产管理
1)创建资产节点:

2)创建管理用户:
Jumpserver对资产管理用户的说明:管理用户是资产(被控服务器)上的root,或拥有 NOPASSWD: ALL sudo权限的用户,Jumpserver使用该用户来推送系统用户,获取资产硬件信息等。 Windows或其它硬件可以随意设置一个。
由于资产创建必须要有管理用户,所以先创建管理用户。
资产管理-->管理用户-->创建管理用户


3)创建系统用户:
Jumpserver对资产系统用户的说明:系统用户是 JumpServer 跳转登录资产时使用的用户,可以理解为登录资产用户,如 web,sa,dba(ssh web@some-host),而不是使用某个用户的用户名跳转登录服务器(ssh xiaoming@some-host); 简单来说是用户使用自己的用户名登录 JumpServer,JumpServer 使用系统用户登录资产。 系统用户创建时,如果选择了自动推送,JumpServer 会使用 Ansible 自动推送系统用户到资产中,如果资产(交换机)不支持 Ansible,请手动填写账号密码。
系统用户推送,要推送成功,client(后端服务器)要满足以下条件: 1.后端服务器需要有python、sudo环境才能使用推送用户,批量命令等功能;2.后端服务器如果开启了selinux,请安装libselinux-python。一般情况服务器上都关闭了selinux。
资产管理-->系统用户-->创建系统用户

填写系统用户信息。Linux 系统协议项务必选择 ssh 。如果用户在系统中已存在,请去掉自动生成密钥、自动推送勾选。如果想要包含某个目录下的所有命令,那么需要使用绝对路径,并且必须以/结尾。


可以创建一个专门监控资产状态的用户


4)创建资产:




正常资产列表里的主机可连接应该显示绿色,如果可连接没有变为绿色,点击主机名,进去更新硬件信息和测试可连接性。

5)网域列表功能简单说明
网域功能是为了解决部分环境无法直接连接而新增的功能,原理是通过网关服务器进行跳转登录。这个功能,一般情况不用到,在资产管理中的网域列表中设置。
6)创建授权规则
节点,对应的是资产,代表该节点下的所有资产;用户组,对应的是用户,代表该用户组下所有的用户;系统用户,及所选的用户组下的用户能通过该系统用户使用所选节点下的资产。节点,用户组,系统用户是一对一的关系,所以当拥有 Linux、Windows 不同类型资产时,应该分别给 Linux 资产和 Windows 资产创建授权规则。
  权限管理-->资产授权-->内部测试节点-->创建授权规则




授权成功后可以到被管理的服务器上查看是否创建了snowy用户
[root@web03 ~]# tail /etc/passwd|egrep 'snowy|monitor'
snowy❌1000:1000:snowy:/home/snowy:/bin/bash
monitor❌1004:1004::/home/monitor:/bin/bash
还可以查看被管理服务器的visudo配置文件,snowy用户的相关规则
[root@web03 ~]# tail -2 /etc/sudoers
snowy ALL=(ALL) NOPASSWD: ALL
monitor ALL=(ALL) NOPASSWD: /usr/bin/top,/usr/bin/uptime,/usr/bin/free,/usr/bin/ping,/usr/bin/df
4.使用刚刚创建的jumpserver管理后台的测试用户user登录管理后台



[root@m01 ~]# su - snowy
[snowy@m01 ~]$ ssh-keygen
[snowy@m01 ~]$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsScm4Ne8RspytjstFBsTSMh2LZFHi5N3nAgCl7cwUh9zVKTJAwnZO9j2ZEt/4JnHLbNH3011Qhg7DmjpYWYzdRywzMFPbcq/7VN7iJswA2FL0cTIhhQJ0GitLRupBYbAUtg3tzD50xCsMkJCuDLyDOHy3kXPjG0GYLHrU7BXTmZAdEN8p0DR7sIO2YCGjSkco02tXgqce4u79OahBBGZOz44khX+HfK8LuHdR3HT9hvabM5L6Fkvnaw2V/9hfolcIlm/D/24HtyOuEZRCvh/SnNqOOvd5tOcR15CFkKNcx10k3tMUcQEpoREX1sj9JPFa1gLr3SYAL7yG5HVtFTE7 snowy@m01


点击Web终端,出现如下页面,选择节点和服务器就可以连接上并使用。注意:使用谷歌浏览器无法打开web终端,如果是360浏览器,要切换到极速模式。


执行几个小命令,之后查看jumpserver是否记录操作

2)使用xshell远程工具,连接jumpserver的2222端口,user用户登录jumprserver服务器

使用2222端口和user用户登录会显示如下

输入p可以查看有权限的主机,然后输入主机名A或ID登录,然后选择相应的系统用户登录管理的资产

5.查看用户命令记录

6.查看用户历史操作命令记录的录像回放

部分文档参考:https://blog.csdn.net/zyy130988/article/details/112313703
https://blog.csdn.net/qq_38781075/article/details/106459458
https://blog.csdn.net/m0_38027358/article/details/123145518
https://blog.csdn.net/m0_63190689/article/details/122687149
https://blog.csdn.net/weixin_45574286/article/details/116595915

posted @ 2021-09-19 15:00  乘风破浪的蜗牛  阅读(1724)  评论(0)    收藏  举报