二、jumpserver介绍、安装jumpserver、登录jumpserver
admin
2023-02-28 11:42:05
0

一、jumpserver介绍

官网www.jumpserver.org

Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业。

高效,用户、资产、权限、审计,管理。

Auth 统一认证

CMDB 资产管理

统一授权

日志审计

自动化运维(ansible)

v1.4.4,基于python3.6, django 1.11,目前还未开发完成,所以接下来将要安装v1.4.4 。


二、安装jumpserver

安装(1.4.4)

首先进入GitHub,左上角搜索jumpserver,搜出来了:

  jumpserver/jumpserver

  Jumpserver是全球首款完全开源的堡垒机,是符合 4A 的专业运维审计系统。

点击进入,选择标签,可以看到最新版本到了v1.4.10,往下看,可以看到安装及使用指南,点击step by step安装文档→一站式、分布式安装文档→一体化部署文档(基于CentOS 7)→在线安装文档。

我这里使用的是centos7,先yum update -y将centos升级到最新版本。

内存至少2G,不然跑不起来,MySQL高于5.6;

放行80、8080、2222端口,或者关掉firewalld:

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=2222/tcp --permanent
# firewall-cmd --zone=public --add-port=8080/tcp --permanent

不让它开机启动;把selinux关闭。

# 修改字符集:

# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
# export LC_ALL=zh_CN.UTF-8
# echo $LC_ALLzh_CN.UTF-8
# cat /etc/locale.conf    //查看字符集是否为UTF-8
LANG="zh_CN.UTF-8"


1、准备Python3和虚拟环境

# 编译或者yum安装都可以, 版本要求参考环境要求,centos默认自带的Python是2.7,所以需要额外安装一个Python3.6。

安装Python3.6、Redis、MySQL

# yum update -y 将系统升级到最新,update不行就用yum upgrade -y
# cat /etc/redhat-release   //此时最新版7.7
CentOS Linux release 7.7.1908 (Core)
# yum install -y wget epel-release gcc git
# yum install -y python36 python36-devel
# yum install -y redis
# systemctl enable redis
# systemctl start redis
# yum install -y mariadb mariadb-devel mariadb-server
# systemctl enable mariadb
# systemctl start mariadb
# mysql -uroot
> create database jumpserver default charset 'utf8';
> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'weakpassword';
> flush privileges;
> quit

2、创建py3虚拟环境

# cd /opt/
# python3.6 -m venv /opt/py3

3、载入py3的虚拟环境

# 每次操作 jumpserver 都需要使用下面的命令载入 py3 虚拟环境
# source /opt/py3/bin/activate
# 部分系统可能会提示 source: not found , 可以使用 "." 代替 "source"
(py3) [root@wbs opt]#       //载入以后会有一个py3的前缀

4、获取jumpserver代码

$ cd /opt
$ git clone --depth=1 https://github.com/jumpserver/jumpserver.git
# 如果没有安装 git 请先安装
# echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env  //进入jumpserver目录时自动载入py3虚拟环境。

5、安装依赖包

$ cd /opt/jumpserver/requirements
$ yum install -y $(cat rpm_requirements.txt)
安装Python库依赖:
$ pip install --upgrade pip setuptools   //把setup工具升级
$ pip install -r requirements.txt
# 确保已经载入 py3 虚拟环境, 中间如果遇到报错一般是依赖包没装全, 可以通过 搜索引擎 解决
pip命令类似于系统里的yum

6、修改配置文件

$ cd /opt/jumpserver
$ cp config_example.yml config.yml
$ vim config.yml
# 注意 SECRET_KEY 和 BOOTSTRAP_TOKEN 不能使用纯数字字符串
定义SECRET_KEY,不能为空。使用这条命令生成随机字符串:
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo
到命令行输出后再复制粘贴进去。
定义BOOTSTRAP_TOKEN,不能为空。使用这条命令生成随机字符串:
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16;echo

# MySQL or postgres setting like:
# 使用Mysql作为数据库
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: waakpassword  //定义密码
DB_NAME: jumpserver

#将Redis下面三行的#号去掉
# 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

7、生成数据库表结构和初始化数据

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

8、运行jumpserver

$ cd /opt/jumpserver
$ ./jms start -d   #加-d 参数在后台运行 ./jms start -d,不然在前台会输出很多东西。
使用方式:./jms start|stop|status|restart
# netstat -lntp |grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      27161/python3.6
#如果想让它开机启动,把这一条命令加到/etc/rc.local里去。
# vim /etc/rc.local
source /opt/py3/bin/activate; cd /opt/jumpserver; ./jms start -d &> /dev/null

此时可以到浏览器访问本机的IP:8080端口,可以看到jumpserver的登录页面。如果看不到页面,可能是firewalld没放行,线上机器想办法把端口放行。默认账号和密码:admin。

9、部署koko组件

$ cd /opt
# 访问 https://github.com/jumpserver/koko/releases 下载对应 release 包并解压到 /opt目录
$ wget https://github.com/jumpserver/koko/releases/download/1.5.3/koko-master-linux-amd64.tar.gz

$ tar xf koko-master-linux-amd64.tar.gz

$ chown -R root:root kokodir
$ cd kokodir

$ cp config_example.yml config.yml
$ vim config.yml
# BOOTSTRAP_TOKEN 需要从 jumpserver/config.yml 里面获取, 保证一致
$ ./koko -d  # 一定要加-d让它在后台运行,运行后可以netstat -lntp查看到端口2222和5000起来了。

10、安装luna组件

$ cd /opt
$ wget https://github.com/jumpserver/luna/releases/download/1.5.3/luna.tar.gz
$ tar xf luna.tar.gz
$ chown -R root:root luna

11、配置Nginx整合各组件

$ yum install -y nginx
$ vim /etc/nginx/nginx.conf
...原内容
    include /etc/nginx/conf.d/*.conf;
#注释掉整个server{}
#    server {
#        listen       80 default_server;
#        listen       [::]:80 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;

#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }

#        error_page 404 /404.html;
#            location = /40x.html {
#        }

#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }
...
$ rm -rf /etc/nginx/conf.d/default.conf
$ 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 /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 / {
        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    # 确保配置没有问题, 有问题请先解决
$ systemctl start nginx
$ systemctl enable nginx
# 测试连接
$ ssh -p2222 admin@192.168.149.131
密码admin,如果能登录代表部署成功,web界面如不能登录,换个浏览器试试。


三、登录jumpserver

1、更改密码

web界面admin登录→个人信息→更改密码

更改密码后重新登录。

2、密码登录

新建一个会话,主机名定义好IP,端口2222,用户名密码定义好,登录即可直接进入jumpserver。

3、密钥登录

# cat .ssh/authorized_keys

authorized_keys的公钥放到web界面中个人信息的ssh密钥里,提交。

再到命令行下就可以通过密钥登录了。

相关内容

热门资讯

国家防总提升针对广东的应急响应... 今年第12号台风“红霞”已于7月25日早晨加强为台风级。预计,“红霞”将于25日夜间至26日早晨在香...
美媒爆猛料:两国首次直接袭击伊... 多名知情人士向美国《华尔街日报》透露,巴林和科威特在7月初对伊朗境内军事目标实施了秘密空袭,知情人士...
郑丽文:只有中国国民党可以确保... 据凤凰卫视报道,国民党今天(7月25日)举行“全代会”,党主席郑丽文与党内提名的县市长参选人一同造势...
透视上半年消费外贸外资走势 新华社北京7月23日电 题:稳中提质 韧性增强——透视上半年消费外贸外资走势新华社记者谢希瑶、王聿昊...
水龙头出水小怎么解决 水龙头出水小可能是由多种原因引起的,以下是一些常见的解决方法:1. 清洁水龙头:水龙头使用时间长了,...
小神童洗衣机启动后不出水直接洗 有可能是洗衣机的进水阀被烧坏了,需要换一个新的进水阀安装上即可。另外不建议自己擅自拆卸洗衣机内部进行...
祝贺景德镇! 海报制作:苗夏阳正在韩国釜山举行的联合国教科文组织第48届世界遗产大会25日通过决议将“景德镇手工瓷...
中央空调不制冷怎么办-中央空调... 中央空调,是电器股份有限公司主要产品之一,但是由于中央空调使用环境和使用方式的不同,在使用过程中就会...
空调不出水不制冷怎么回事 内罩长期不清洗,当然房间密封性差的话也会导致这种现象;其次就是外机问题,如果外机积满灰尘,会成空调制...
空调不出水,不制冷 原因有多种,可能是电源插头没有接牢、制冷剂不足、空调短时间休息间隙、空调滤网积灰等等。很多情况可以自...