ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

堡垒机的搭建

2021-03-08 09:33:42  阅读:289  来源: 互联网

标签:opt py3 用户 jumpserver 堡垒 root localhost 搭建


前言

堡垒机是用于解决“运维混乱”的。当公司的运维人员越来越多,当需要运维的设备越来越多,当参与运维的岗位越来越多样性,如果没有一套好的机制,就会产生运维混乱。具体而言,你很想知道“哪些人允许以哪些身份访问哪些设备”而不可得。

任务一 什么是堡垒机
在一定特定网络环境下,为了保障网络和数据不受外界入侵和破坏,而运用各种技术手段实时收集和监控网络环境中的每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。
我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登录服务器和日志审计。堡垒机还可以用来做资产管理、监控、用户授权等。
比较优秀的开源软件jumpserver,认证、授权审计、自动化、资产管理
商业堡垒机:齐治,Citrix XenApp。

堡垒机为企业带来的价值:
(1)管理效益
就是所有主账号和从账户在一个平台上进行管理,账号管理更加简单有序。通过建立运维用户与主账号的唯一对应关系,确保运维用户拥有的权限是完成任务所需的最小权限。它可以可视化运维行为监控,及时预警发现违规操作。
(2)用户效益
运维人员只需记忆一个账号和密码,一次登录,便可实现对其所维护的多台资源的访问。无需频繁地输入IP地址和账户密码,提高工作效率,降低工作复杂度。批量运维和操作资源。
(3)企业效益
可以降低人为安全风险,避免安全损失。符合“网络安全法”等规定,满足合规要求,保障企业效益。

堡垒机通过精细化授权,可以明确“哪些人以哪些身份访问哪些设备”,从而让运维混乱变得有序起来;通过体系化的指令审计规则,让运维操作变得安全可控。

任务二 搭建简易堡垒机
简易堡垒机也只适合小型公司使用,在公司服务器只有几台,而且想要安全点的情况下可以使用,其实也就是跳板机。
这跳板机主要功能是登陆公司内网服务器,还可以去查找审计当你登陆到某台机器后做了什么操作。
堡垒机要具备的条件是,首先要有公网ip,因为登陆公司的服务器,不只是在公司内登陆,还可能在家里办公的时候或者是出差的时候要登陆。所以这服务器需要有一个公网ip。除了公网ip他还需要和我们机房其他机器连成一个局域网,假设机房里有十台机器,只有一台有公网,那我们将这台有公网的机器作为一个跳板机,通过它来连接其他机器。
跳板机是有公网对外开放的,所以要设置防火墙规则,需要做一个权限最小化的处理,需要什么端口就开放什么端口,不能开放多余的端口。再做一个登陆限制,限制ip访问,又或是做一个VPN通道。还可以设置sshd_config只能通过密钥登陆,拒绝密码登陆。
对用户进行限制,使用jailkit来做用户、目录权限的限制。
除了这些之外还需要做一个日志审计,日志审计不能再跳板机上做,需要到各个客户机上做。

任务三 安装jailkit实现chroot
使用jailkit来实现chroot,将用户限制在一个虚拟系统中,让他只能使用有限的命令。来保证我们系统的安全性。
(1)编译安装jailkit
[root@localhost ~]# yum install -y wget bzip2 //安装wget下载工具和bzip2解压工具
[root@localhost ~]# yum install -y gcc //安装依赖包
[root@localhost~]# wget https://olivier.sessink.nl/jailkit/jailkit-2.19.tar.bz2 --no-check-certificate //加–no-check-certificate跳过网站证书验证
[root@localhost ~]# tar jxvf jailkit-2.19.tar.bz2 //解压bzip2包
[root@localhost ~]# cd jailkit-2.19 //进入解压后的目录
[root@localhost jailkit-2.19]# ./configure && make && make install //配置编译成功后安装

(2)使用jailkit创建用户
[root@localhost jailkit-2.19]# mkdir /home/jail //创建目录
//使用jk_init命令将一些常用的命令拷贝到/home/jail中
[root@localhost jailkit-2.19]# jk_init -v -j /home/jail/ basicshell
[root@localhost jailkit-2.19]# jk_init -v -j /home/jail/ editors
[root@localhost jailkit-2.19]# jk_init -v -j /home/jail/ netutils
[root@localhost jailkit-2.19]# jk_init -v -j /home/jail ssh

//创建用户
[root@localhost jailkit-2.19]# useradd zhangsan //创建用户
[root@localhost jailkit-2.19]# echo “000000” |passwd --stdin zhangsan //设置密码
[root@localhost jailkit-2.19]# mkdir /home/jail/usr/sbin //创建目录
[root@localhost jailkit-2.19]# cp /usr/sbin/jk_lsh /home/jail/usr/sbin/ //拷贝jk_lsh命令到虚拟系统的/usr/sbin目录下
[root@localhost jailkit-2.19]# jk_jailuser -m -j /home/jail zhangsan //将张三创建成虚拟系统中的用户
[root@localhost jailkit-2.19]# cat /home/jail/etc/passwd //可以看到虚拟系统中的用户文件中有了zhangsan这个用户
root❌0:0:root:/root:/bin/bash
zhangsan❌1000:1000::/home/zhangsan:/usr/sbin/jk_lsh //想要登陆此虚拟用户需要修改登陆shell,将/usr/sbin/jk_lsh改为/bin/bash
[root@localhost jailkit-2.19]# cat /home/jail/etc/passwd
root❌0:0:root:/root:/bin/bash
zhangsan❌1000:1000::/home/zhangsan:/bin/bash

(3)登陆系统
//使用jailgit的用户登录系统
[root@localhost jailkit-2.19]# ssh zhangsan@127.0.0.1 //ssh登陆zhangsan用户
[zhangsan@localhost ~]$ ls /usr/bin/ //可以看到/usr/bin下面有了一些命令
bash chmod cpio dd egrep fgrep gunzip ln mkdir more pwd rmdir sed sleep sync touch vi zcat
cat cp date echo false grep gzip ls mktemp mv rm scp sh ssh tar true wget

//对登陆进行限制
//既然是跳板机我们还可以设置只能使用密钥登陆
[root@localhost jailkit-2.19]# cat /etc/ssh/ssh_config //将PasswordAuthentication yes改为PasswordAuthentication no

PasswordAuthentication no

[root@localhost jailkit-2.19]# cat /etc/hosts.allow //添加主机白名单

hosts.allow This file contains access rules which are used to

allow or deny connections to network services that

either use the tcp_wrappers library or that have been

started through a tcp_wrappers-enabled xinetd.

See ‘man 5 hosts_options’ and ‘man 5 hosts_access’

for information on rule syntax.

See ‘man tcpd’ for information on tcp_wrappers

sshd:192.168.174.0/24 //只允许192.168.174.0/24网段的ip来访问

[root@localhost jailkit-2.19]# cat /etc/hosts.deny //添加黑名单

hosts.deny This file contains access rules which are used to

deny connections to network services that either use

the tcp_wrappers library or that have been

started through a tcp_wrappers-enabled xinetd.

The rules in this file can also be set up in

/etc/hosts.allow with a ‘deny’ option instead.

See ‘man 5 hosts_options’ and ‘man 5 hosts_access’

for information on rule syntax.

See ‘man tcpd’ for information on tcp_wrappers

sshd:ALL //拒绝除了白名单内的所有ip连接

任务四 搭建简易堡垒机-日志审计
(1)配置客户机使其只能使用跳板机登陆
[root@client ~]# cat /etc/hosts.allow //配置白名单,只允许跳板机192.168.174.128这要机器登陆

hosts.allow This file contains access rules which are used to

allow or deny connections to network services that

either use the tcp_wrappers library or that have been

started through a tcp_wrappers-enabled xinetd.

See ‘man 5 hosts_options’ and ‘man 5 hosts_access’

for information on rule syntax.

See ‘man tcpd’ for information on tcp_wrappers

sshd:192.168.174.128

[root@client ~]# cat /etc/hosts.deny //配置黑名单

hosts.deny This file contains access rules which are used to

deny connections to network services that either use

the tcp_wrappers library or that have been

started through a tcp_wrappers-enabled xinetd.

The rules in this file can also be set up in

/etc/hosts.allow with a ‘deny’ option instead.

See ‘man 5 hosts_options’ and ‘man 5 hosts_access’

for information on rule syntax.

See ‘man tcpd’ for information on tcp_wrappers

sshd:ALL

//之后重新连接就会连不上了,只能使用允许的跳板机去登陆
[root@localhost jailkit-2.19]# ssh 192.168.174.129
The authenticity of host ‘192.168.174.129 (192.168.174.129)’ can’t be established.
ECDSA key fingerprint is 72:ce:89:6f:18:10:11:fa:57:a2:ba:fe:23:f1:ad:66.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.174.129’ (ECDSA) to the list of known hosts.
root@192.168.174.129’s password:
Last login: Fri Feb 28 08:28:23 2020 from 192.168.174.1
[root@client ~]#

(2)配置日志审计
[root@client ~]# mkdir /usr/local/records //创建存放日志审计的目录
[root@client ~]# chmod 777 /usr/local/records //给予777权限
[root@client ~]# chmod +t /usr/local/records //给予t特殊权限
[root@client ~]# cat /etc/profile //在最后添加以下判断语句

if [ ! -d /usr/local/records L O G N A M E ] t h e n m k d i r − p / u s r / l o c a l / r e c o r d s / {LOGNAME} ] then mkdir -p /usr/local/records/ LOGNAME]thenmkdir−p/usr/local/records/{LOGNAME}
chmod 700 /usr/local/records/ L O G N A M E f i e x p o r t H I S T O R Y F I L E = ” / u s r / l o c a l / r e c o r d s / {LOGNAME} fi export HISTORY_FILE=” /usr/local/records/ LOGNAMEfiexportHISTORYF​ILE=”/usr/local/records/{LOGNAME}/bash_history”
export PROMPT_COMMAND=’{ date +"%Y-%m-%d %T ##### $(who am i |awk “{print $1” “$2” “$5}”) ### KaTeX parse error: Expected '}', got 'EOF' at end of input: …d x cmd; echo "cmd"; })"; } >> $HISTORY_FILE’
//LOGNAME变量为当前用户名
//PROMPT_COMMAND变量,它会在用户交 互的提示信息出现之间将设定在其中的内容作为可执行的命令执行。
[root@client ~]# source /etc/profile //使/etc/profile文件中的配置生效
如果需要使用zhangsan账号登陆,需要在对方机器创建zhangsan这个用户
//以zhangsan身份在客户机上随便执行 几个命令,可以看到
[root@client ~]# cat /usr/local/records/zhangsan/bash_history
2020-02-28 10:03:50 ##### root pts/2 (192.168.174.1) ### df -h
2020-02-28 10:03:54 ##### root pts/2 (192.168.174.1) ### ls
2020-02-28 10:04:34 ##### root pts/2 (192.168.174.1) ### clear

任务五 jumpserver介绍
Jumpserver是一款使用Python, Django开发的开源跳板机系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent, 助力互联网企业高效管理用户、资产、权限和审计。
Jumpserver 是全球首款完全开源、符合 4A (包含认证Authentication 、授权 Authorization、账号 Accounting 和审计 Auditing)规范的运维安全审计系统。
Jumpserver 通过软件订阅服务或者软硬件一体机的方式,向企业级用户交付多云环境下更好用的堡垒机。
与传统堡垒机相比, Jumpserver 采用了分布式架构设计,支持多云环境并可灵活扩展。资产管理方面, Jumpserver 无并发和资产数量限制,支持水平扩容。 Jumpserver 采用了业界领先的容器化部署方式,并且提供体验极佳的 图形化界面(Web Terminal) 。 Jumpserver 还可实现基于 Web 的文件传输,并且支持用户将运维审计录像保存在云端。
Jumpserver 后端主要技术是LDAP,配置了LDAP 集中认证服务器, 所有服务器的认证都是由ldap完成的。其做法是:每个用户一个密码,把密码加密放到了数据库中,当用户输入IP 从跳板机登陆服务器的时候,跳板机系统取出密码,并解密,通过pexpect 模块将密码发送过去,来完成登录。
Jumpserver 主要作用是服务器的管理, 这里的管理包含:
有哪些服务器、有哪些用户、有哪些角色、哪些角色可以登录哪些服务器、哪些用户可以登录哪些服务器。
Jumpserver 可以做到单点登录, 基于角色的权限分配也很实用, 对于多人运维团队很适合。

任务六 安装jumpserver
Centos7,内存大于2G
(1)基础环境准备
[root@localhost ~]# systemctl stop firewalld //关闭防火墙
[root@localhost ~]# systemctl disable firewalld //禁止开机自启
[root@localhost ~]# setenforce 0 //临时关闭selinux
[root@localhost ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config //永久关闭

//修改字符集,否则可能会报input/output error的问题
[root@localhost ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
[root@localhost ~]# export LC_ALL=zh_CN.UTF-8
[root@localhost ~]# echo ‘LANG=“zh_CN.UTF-8”’ > /etc/locale.conf

(2)准备python3环境(centos7自带的python版本为2,所以要自己安装3版本的)
[root@localhost ~]# yum install -y wget gcc epel-release git ntpdate net-tools //安装依赖包
[root@localhost ~]# yum install -y python36 python36-devel //安装python3
[root@localhost opt]# ntpdate time.windows.com //同步时间
[root@localhost ~]# cd /opt/
[root@localhost opt]# python3.6 -m venv py3 //创建python3的虚拟环境
[root@localhost opt]# source /opt/py3/bin/activate //进入python3的虚拟环境,主提示符前会加一个(py3),以后运行jumpserver都要先进入python3的虚拟环境中

//设置自动载入python虚拟环境配置(之后就不用都要进入python3的虚拟环境操作了)
(py3) [root@localhost opt]# git clone https://github.com/kennethreitz/autoenv.git
(py3) [root@localhost opt]# echo ‘source /opt/autoenv/activate.sh’ >> /root/.bashrc
(py3) [root@localhost opt]# source /root/.bashrc

(3)安装jumpserver
(py3) [root@localhost opt]# git clone https://github.com/jumpserver/jumpserver.git
(py3) [root@localhost opt]# echo “source /opt/py3/bin/activate” > /opt/jumpserver/.env //进入jumpserver目录是会自动载入python3环境
(py3) [root@localhost opt]# cd /opt/jumpserver/ //进入jumpserver目录
autoenv:
autoenv: WARNING:
autoenv: This is the first time you are about to source /opt/jumpserver/.env:
autoenv:
autoenv: — (begin contents) ---------------------------------------
autoenv: source /opt/py3/bin/activate$
autoenv:
autoenv: — (end contents) -----------------------------------------
autoenv:
autoenv: Are you sure you want to allow this? (y/N) y

//首次进入会提示,按y即可
//安装依赖RPM包
(py3) [root@localhost jumpserver]# cd requirements/
(py3) [root@localhost requirements]# yum install -y cat rpm_requirements.txt

//安装python库依赖
(py3) [root@localhost requirements]# pip install --upgrade pip setuptools //更新
(py3) [root@localhost requirements]# pip install -r requirements.txt //-r读取文件内容

//安装Redis,Jumpserver使用Redis做cache和celery broke
(py3) [root@localhost requirements]# yum install -y redis //安装
(py3) [root@localhost requirements]# systemctl start redis //启动redis
(py3) [root@localhost requirements]# systemctl enable redis //开机自启

//安装mysql
(py3) [root@localhost requirements]# yum install -y mariadb mariadb-devel mariadb-server
(py3) [root@localhost requirements]# systemctl enable mariadb
(py3) [root@localhost requirements]# systemctl start mariadb

//创建数据库jumpserver并授权
(py3) [root@localhost requirements]# mysql -uroot
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.65-MariaDB MariaDB Server

Copyright © 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]> create database jumpserver default charset ‘utf8’; //创建数据库
MariaDB [(none)]> grant all on jumpserver.* to jumpserver@localhost identified by ‘000000’;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges; //刷新权限
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit //退出
Bye

//修改jumpserver配置文件
(py3) [root@localhost requirements]# cd /opt/jumpserver/
(py3) [root@localhost jumpserver]# cp config_example.yml config.yml
(py3) [root@localhost jumpserver]# cat config.yml //一些配置参数需要加上单引号才行

SECURITY WARNING: keep the secret key used in production secret!

加密秘钥 生产环境中请修改为随机字符串,请勿外泄, 可使用命令生成

$ cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo

SECRET_KEY: ‘eqQSQIWgufrHb11jWoVsdFT0mShQQYiihzUHLIrue1pARnfge’

SECURITY WARNING: keep the bootstrap token used in production secret!

预共享Token coco和guacamole用来注册服务账号,不在使用原来的注册接受机制

BOOTSTRAP_TOKEN: ‘QguCsxs5xIc1RcLkWwcwJy4r4bjxPIUzv6r2KZ6hcIlWga4Nl’

Development env open this, when error occur display the full process track, Production disable it

DEBUG 模式 开启DEBUG后遇到错误时可以看到更多日志

DEBUG: ‘false’

DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/

日志级别

LOG_LEVEL: ERROR

LOG_DIR:

Session expiration setting, Default 24 hour, Also set expired on on browser close

浏览器Session过期时间,默认24小时, 也可以设置浏览器关闭则过期

SESSION_COOKIE_AGE: 86400

SESSION_EXPIRE_AT_BROWSER_CLOSE: ‘true’

SQLite setting:

使用单文件sqlite数据库

DB_ENGINE: sqlite3

DB_NAME:

MySQL or postgres setting like:

使用Mysql作为数据库

DB_ENGINE: ‘mysql’
DB_HOST: ‘127.0.0.1’
DB_PORT: 3306
DB_USER: ‘jumpserver’
DB_PASSWORD: ‘123456’
DB_NAME: ‘jumpserver’

When Django start it will bind this host and port

./manage.py runserver 127.0.0.1:8080

运行时绑定端口

HTTP_BIND_HOST: ‘0.0.0.0’
HTTP_LISTEN_PORT: 8080
WS_LISTEN_PORT: 8070

Use Redis as broker for celery and web socket

Redis配置

REDIS_HOST: ‘127.0.0.1’
REDIS_PORT: 6379

REDIS_PASSWORD:

REDIS_DB_CELERY: 3

REDIS_DB_CACHE: 4

Windows 登录跳过手动输入密码

WINDOWS_SKIP_ALL_MANUAL_PASSWORD: True

//启动jumpserver
(py3) [root@localhost jumpserver]#./jms start all -d //-d参数放到后台运行

(4)安装SSH Server和WebSocket Server:koko
//克隆项目
(py3) [root@localhost jumpserver]# cd /opt/
(py3)[root@localhost opt]# wget https://github.com/jumpserver/koko/releases/download/v2.3.1/koko-v2.3.1-linux-amd64.tar.gz
(py3)[root@localhost opt]# tar zxvf koko-v2.3.1-linux-amd64.tar.gz
(py3)[root@localhost opt]# mv koko-v2.3.1-linux-amd64.tar.gz koko
(py3)[root@localhost opt]# chown -R root:root koko
(py3)[root@localhost opt]# cd koko
(py3) [root@localhost koko]# mv kubectl /usr/local/bin/
(py3) [root@localhost koko]# wget https://download.jumpserver.org/public/kubectl.tar.gz
(py3) [root@localhost koko]# tar -xf kubectl.tar.gz
(py3) [root@localhost koko]# chmod 755 kubectl
(py3) [root@localhost koko]# mv kubectl /usr/local/bin/rawkubectl
(py3) [root@localhost koko]# rm -rf kubectl.tar.gz

//修改配置文件并运行
(py3) [root@localhost koko]# cp config_example.yml config.yml
(py3) [root@localhost koko]# cat config.yml

项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复

NAME: ‘localhost’

Jumpserver项目的url, api请求注册会使用

CORE_HOST: ‘http://127.0.0.1:8080’

Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal

请和jumpserver 配置文件中保持一致,注册完成后可以删除

BOOTSTRAP_TOKEN: ‘HL7i1KhCISW6jMLoDMHpDAOXqw4ouRdgaAvEsBS0priZe0W3S’

启动时绑定的ip, 默认 0.0.0.0

BIND_HOST: ‘0.0.0.0’

监听的SSH端口号, 默认2222

SSHD_PORT: 2222

监听的HTTP/WS端口号,默认5000

HTTPD_PORT: 5000

(py3) [root@localhost coco]# ./koko -d //启动

(5)下载Luna 和 Lina组件
//下载Luna并解压
(py3) [root@localhost opt]# cd /opt/
(py3) [root@localhost opt]# wget https://github.com/jumpserver/luna/releases/download/v2.3.1/luna-v2.3.1.tar.gz
(py3) [root@localhost opt]# tar zxvf luna-v2.3.1.tar.gz
(py3) [root@localhost opt]# mv luna-v2.3.1 luna
(py3) [root@localhost opt]# chown -R nginx:nginx luna //修改用户组

//下载Lina并解压
(py3) [root@localhost opt]# wget https://github.com/jumpserver/lina/releases/download/v2.3.1/lina-v2.3.1.tar.gz
(py3) [root@localhost opt]# tar zxvf lina-v2.3.1
(py3) [root@localhost opt]# mv lina-v2.3.1 lina
(py3) [root@localhost opt]# chown -R nginx:nginx lina

(6)配置nginx整合各组件
(py3) [root@localhost opt]# yum install -y nginx //安装nginx

//编辑配置文件
(py3) [root@localhost opt]# cd /etc/nginx/conf.d/
(py3) [root@localhost conf.d]# vim /etc/nginx/conf.d/jumpserver.conf
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 /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;
}

}

(py3) [root@localhost nginx]# systemctl restart nginx //重启nginx

访问ip
默认账户admin 默认密码admin

任务七 登录jumpserver
(1)注销登陆后回到登陆界面,输入用户名密码登陆

(2)修改密码

(3)密码登陆jumpserver
输入ip和端口

输入用户和密码

(4)设置密钥登陆jumpserver
进入个人中心,更新用户

点击SSH公钥,将要要登陆jumpserver机器的公钥复制粘贴到此处

点击提交即可

之后使用该公钥的机器登陆jumpserver,不用输入密码

任务八 用户管理

(1)创建普通用户

带*号的是必填项其他可以选填

点击提交,成功后可以使用用户名,密码登陆jumpserver

(2)创建管理用户
管理用户是资产(被控服务器)上的 root,或拥有 NOPASSWD: ALL sudo 权限的用户,,JumpServer 使用该用户来’推送系统用户’、’获取资产硬件信息’ 等。

管理用户最好使用密钥登陆,密钥无密码时上面密码栏留空,设置好后点击提交。

(3)创建系统用户
系统用户是 JumpServer 跳转登录资产时使用的用户,可以理解为登录资产用户,如 web,sa,dba(ssh web@some-host),而不是使用某个用户的用户名跳转登录服务器(ssh xiaoming@some-host);简单来说是用户使用自己的用户名登录 JumpServer,JumpServer 使用系统用户登录资产。系统用户创建时,如果选择了自动推送,JumpServer 会使用 Ansible 自动推送系统用户到资产中,如果资产(交换机)不支持 Ansible,请手动填写账号密码。

设置名字和登陆模式,其他默认即可

点击提交

任务九 资产管理
(1)创建资产
创建节点

创建资产

填写相关信息(在资产节点上必须有和管理用户同名的用户)

提交

(2)配置资产
在资产机中将jumpserver用户设置sudo权限
[root@client ~]# visudo

root ALL=(ALL) ALL
jumpserver ALL=(ALL) NOPASSWD: ALL

[root@client ~]# ntpdate time.windows.com //客户端同步时间
(py3) [root@jumpserver ~]# ntpdate time.windows.com //服务端同步时间

//保存退出
将公钥发送到资产机器对应用户中(公钥是创建管理用户时使用的私钥对应公钥)
(py3)[root@jumpserver ~]#ssh-copy-id -i jumpserver.pub jumpserver@192.168.174.129
刷新后点击资产主机名,点击测试连接和更新硬件信息后可以看到资产信息。

资产授权

配置

提交

设置系统用户自动推送

点击系统用户

先点击推送,推送成功后测试连接

用test用户登陆堡垒机,输入p查看有权限的主机

可以看到如下信息,此时可以输入主机对应id登陆相应的机器,不过需要输入密码。

任务十 客户端登录jumpserver
(1)设置自动登陆
修改配置,更改登陆方式

改为自动登陆之后拉到最下面,点击提交

之后登陆资产机会自动登陆,不需要输入密码

(2)查看日志
查看登陆日志

查看操作日志

查看命令记录

(3)web端管理文件
使用资产机的用户test登陆jumpserver web端,点击文件管理

按照资产树结构展开,可以看到资产tmp目录中的文件,可以在此对资产机的tmp目录进行上传文件,删除文件等操作。

标签:opt,py3,用户,jumpserver,堡垒,root,localhost,搭建
来源: https://blog.csdn.net/weixin_49513202/article/details/114519549

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有