欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jumpserver堡垒机安装及应用

程序员文章站 2022-03-19 21:43:54
...

jumpserver简介

跳板机概述:
跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作。
跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作、违规操作导致的事故,一旦出现操作事故很难快速定位到原因和责任人;

jumpserver概述

Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。
Jumpserver 使用 Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好。
Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发限制。
为互联网企业提供了认证,授权,审计,自动化运维等功能。

官方网站
http://www.jumpserver.org
jumpserver堡垒机安装及应用

部署Jumpserver

配置本地jumpserver yum源

 vim /etc/yum.repos.d/jumpserver.repo
[jumpserver]
name=CentOS7
baseurl=file:///root/jumpserver-packs
enable=1
gpgcheck=0

上传压缩包,解压
jumpserver堡垒机安装及应用

tar -zxvf jumpserver-packs.tar.gz
tar -zxvf pip-packs.tar.gz
tar -zxvf Python-3.6.8.tgz -C /usr/local/src/

安装依赖包

yum install -y gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

编译安装Python

 cd /usr/local/src/Python-3.6.8/
 ./configure --prefix=/usr/local/python
 make -j 4 && make install

给Python做软链接

ln -s /usr/local/python/bin/* /usr/local/bin/

查看版本号

python3 -V
 pip3 -V

配置Python虚拟环境

Cd
python3.6 -m venv /opt/py3
source /opt/py3/bin/activate 

后面有个py3就算好了
把Python虚拟环境设为开机自启

echo "source /opt/py3/bin/activate" >> /root/.bashrc

安装jumpserver
解压

unzip jumpserver-master.zip -d /opt/
cd /opt/
mv jumpserver-master/  jumpserver
 cd /opt/jumpserver/requirements/

安装rpm依赖

yum -y install $(cat rpm_requirements.txt)

安装Python库依赖

pip install --no-index --find-links=/root/pip-packs/ pyasn1 six cffi pytest-runner
cd /opt/jumpserver/requirements/
pip install --no-index --find-links=/root/pip-packs/ -r requirements.txt

jumpserver堡垒机安装及应用
拓展知识(可以不用做)

pip list  #查看安装的包
pip freeze > requirements.txt  #将已经通过pip安装的包的名称记录到 requirements.txt文件中
pip download -d /root/pip-packs/  -r 

requirements.txt 缓存pip下载包

安装redis

yum -y install redis
 systemctl start redis 
systemctl enable redis

安装mysql

 yum -y install mariadb mariadb-devel mariadb-server
systemctl start mariadb 
systemctl enable mariadb

创建jumpserver数据库授权

Mysql
create database jumpserver default charset 'utf8';
grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'jumpserver'; 

生成秘钥

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

iAPQpPIiAM6TLlZi0DA0Lktqt5WMjFhS6PhsqM4Ky4LvS7cHd

 cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16

kSFIIMm634zOc2Y2

配置jumpserver配置文件
写好生成的秘钥和mysql授权的名

jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用
生成数据库表结构和初始化数据

	cd /opt/jumpserver/utils/
sh make_migrations.sh

jumpserver堡垒机安装及应用
运行jumpserver

cd /opt/jumpserver/
 ./jms start all 

jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用
设置service脚本

vim /usr/lib/systemd/system/jms.service
[Unit]
Description=jms
After=network.target mariadb.service redis.service docker.service
Wants=mariadb.service redis.service docker.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
ExecRestart=/opt/jumpserver/jms restart all -d
ExecStop=/opt/jumpserver/jms stop

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl restart jms
systemctl enable jms           `设置开机自启`

登录
192.168.100.10:8080
输入管理员账号和密码

jumpserver堡垒机安装及应用
访问Web Terminal(web linux终端)会报错。

jumpserver堡垒机安装及应用

要安装koko组件

 tar -zxvf koko-master-6d4e69b-linux-amd64.tar.gz -C /opt/
chown -R root:root /opt/kokodir/
cd /opt/kokodir/
cp config_example.yml config.yml
 vim config.yml             `秘钥和jumpserver一样`

BOOTSTRAP_TOKEN: h8X7RRmkczrV3Dts
SECRET_KEY: cUBbafUeVjpsO9txGxKbYQhagezAzYaPfVNGQnI2AGYZIaNFL
jumpserver堡垒机安装及应用

 ./koko &       ##启动koko

jumpserver堡垒机安装及应用

netstat -antup | grep 2222           ##查看一下端口

把koko加入开机自启

 echo " cd /opt/kokodir && ./koko & " >> /etc/rc.local
chmod +x /etc/rc.local

在web后台查看终端
jumpserver堡垒机安装及应用

使用ssh测试

ssh aaa@qq.com -p 2222

jumpserver堡垒机安装及应用
有了Web Terminal以后,我们可以远程堡垒机,然后通过堡垒机进行登录管理服务器。

部署Luna组件
解压

tar -zxvf luna.tar.gz -C /opt/
chown -R root:root /opt/luna/

设置nginx整合各各组件

安装nginx

yum install -y nginx

修改配置文件

 vim /etc/nginx/nginx.conf  #把80端口修改为808
server {
    listen       808 default_server;
    listen       [::]:808 default_server;

jumpserver堡垒机安装及应用

创建jumpserver配置文件
所有的jumpserver的服务都使用nginx来进行反向代理,开启nginx缓存

vim /etc/nginx/conf.d/jumpserver.conf
  server {
    listen 80;

    client_max_body_size 100m;  # 录像及文件上传大小限制

    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 /socket.io/ {
        proxy_pass       http://localhost:5000/socket.io/;
        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 /coco/ {
        proxy_pass       http://localhost:5000/coco/;
        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 / {
        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;
    }
}

测试配置文件

Nginx -t

jumpserver堡垒机安装及应用

启动nginx

systemctl start nginx
systemctl enable nginx

登录jumpserver
192.168.100.10
Luna可以打开了

jumpserver堡垒机安装及应用

配置Jumpserver
改成自己本机ip
jumpserver堡垒机安装及应用

设置jumpserver邮箱(虚拟机需要联网)
jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用

提交完新浪邮箱会发邮件
创建用户

jumpserver堡垒机安装及应用
编写画圈部分
jumpserver堡垒机安装及应用

提交完会发送邮件
jumpserver堡垒机安装及应用

点击重制密码

jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用
登录到创建的用户
jumpserver堡垒机安装及应用
创建组
jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用

添加资产
开启新的一台虚拟机
创建管理用户

jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用

添加资产
jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用

创建命令过滤器

系统用户可以绑定一些命令过滤器,一个过滤器可以定义一些规则 当用户使用这个系统用户登录资产,然后执行一个命令 这个命令需要被绑定过滤器的所有规则匹配,高优先级先被匹配, 当一个规则匹配到了,如果规则的动作是允许,这个命令会被放行,如果规则的动作是禁止,命令将会被禁止执行, 否则就匹配下一个规则,如果最后没有匹配到规则,则允许执行
jumpserver堡垒机安装及应用

写上rm -rf / 以免哪个沙雕删库跑路*
jumpserver堡垒机安装及应用

创建命令过滤器规则

jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用

提交就可以啦

创建系统用户(创建第一次可能输入密码的行没有,在编辑一次就可以啦)
jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用

创建资产授权

jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用

jumpserver堡垒机安装及应用

测试

会话管理打开web终端

jumpserver堡垒机安装及应用
安装个nginx(没有不安了),和httpd
jumpserver堡垒机安装及应用

使用xshell测试
登录我自己的“嘿嘿嘿”账号测试连接
ssh 嘿嘿嘿@192.168.100.10 -p 2222

jumpserver堡垒机安装及应用
jumpserver堡垒机安装及应用

登录asd主机
jumpserver堡垒机安装及应用

启动以下刚刚安装的httpd
jumpserver堡垒机安装及应用
测试网页

jumpserver堡垒机安装及应用
查看asd主机历史命令记录
jumpserver堡垒机安装及应用
测试完成(在历史会话也可以看到回放视频)

实验做到这里就结束了,做的不好请谅解,如果有什么问题请小伙伴们留言~~

相关标签: 实验