暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

JumpServera入门安装过程

Linux系统运维笔记 2020-02-29
636

1.Jumpserver是什么

按照官网介绍,jumpserver是一款国产的开源的堡垒机软件,可以提供身份鉴别、访问控制、安全审计等功能。


2.安装


官方文档地址:

https://jumpserver.readthedocs.io/zh/master/index.html

准备依赖组件,jumpserver依赖的组件如下:

  • Centos = 7  红帽系的OS版本最好是7,后期需要安装docker

  • Python = 3.6.x

  • Mysql Server ≥ 5.6

      推荐MySQL5.7版本

  • Redis   推荐5.0以上版本

  • Nginx


2.1依赖组件安装


安装Nginx,python3


修改yum源,建议修改为阿里或者其他商业yum源,阿里源地址

https://developer.aliyun.com/mirror/

yum install python36 python3-devel  nginx git gcc jemalloc -y


设置开机自启动:

systemctl enable nginx.service


安装redis

直接官网下载最新的源码包:

http://download.redis.io/releases/redis-5.0.7.tar.gz

tar -xf redis-5.0.7.tar.gz

cd redis-5.0.7/  

make 

make install


启动redis服务:

nohup ./redis-5.0.7/src/redis-server &

可以查询进程或者端口号查看是否正常启动

ps -ef |grep redis

netstat -ntlp |grep redis


关于将redis做成系统服务,使之开机自启,稍后再讲。


注意:在编译安装的时候可能需要gcc和jemalloc,所以在上一步直接yum一起安装过了,编译出现问题及时百度。多数基础问题都会有答案。


2.2数据库安装设置


安装MySQL

推荐直接官网下载rpm软件包安装。或者使用其他地方的数据库,注意字符集问题。

安装的软件包为

mysql-community-client-5.7.24-1.el7.x86_64.rpm

mysql-community-common-5.7.24-1.el7.x86_64.rpm

mysql-community-devel-5.7.24-1.el7.x86_64.rpm

mysql-community-libs-5.7.24-1.el7.x86_64.rpm

mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm

mysql-community-server-5.7.24-1.el7.x86_64.rpm


设置数据库字符集为utf8-mb4

vim /etc/my.cnf

[mysqld]

character-set-server=utf8mb4

collation-server=utf8mb4_general_ci

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4


设置开机自启动&启动数据库

systemctl enable mysqld.service

systemctl start mysqld.service


查看初始密码

cat /var/log/mysqld.log |grep password


修改root初始密码  # 以下为进入数据库内部操作

alter user root@'localhost' identified by '新密码' ;


创建用户及数据库

mysql> create user jumpserver@'%' identified by '密码' ;
mysql> create database jumpserver ;
mysql> grant all on jumpserver.* to jumpserver@'%' ;


3.创建python环境


python3 -m venv /opt/py3

source /opt/py3/bin/activate


4.获取Jumpserver源代码


cd /opt
git clone --depth=1 https://github.com/jumpserver/jumpserver.git

或者直接下载软件源码包,并解压

http://134.175.107.119/download/jumpserver/1.5.6/jumpserver.tar.gz


安装依赖软件包;非常重要!

cd /opt/jumpserver/requirements
yum install -y $(cat rpm_requirements.txt)


5.安装python包(非常重要)


由于pip安装需要从国外获取资源,耗时较长,可以替换为国内的源

在家目录下的.config/创建一个.config/pip/pip.conf文件# 注意config文件夹为隐藏文件夹,ll -a才可以查看到。

vim /root/.config/pip/pip.conf

[global]  

index-url=http://mirrors.aliyun.com/pypi/simple/  

[install]  

trusted-host=mirrors.aliyun.com  


安装python包,直接使用pip install 安装。

pip install --upgrade pip

pip install wheel

pip install -r requirements.txt


这一步非常容易出错,如果出现报错,一般都是前面依赖包没有装全。检查前面的依赖包。还有python3-devel包。

最后出现Successfully installed 。。。。一大串就表示安装成功啦~~~


6.修改配置文件并启动jumpserver


cd /opt/jumpserver

cp config_example.yml config.yml

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50  #  记住这个输出值

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16  # 记住这个输出值


vim config.yml   # 需要修改三个地方

SECRET_KEY:    # 上面的50个随机字符串

BOOTSTRAP_TOKEN:   # 上面的16个随机字符串

DB_PASSWORD:           # 数据库的jumpserver用户密码


启动jumpserver

./ jms start

查看输出结果,出现如结果,无报错,则正常启动。./jms start -d 后台运行


7.部署koko和luna组件


wget https://github.com/jumpserver/koko/releases/download/1.5.6/koko-master-linux-amd64.tar.gz

wget https://github.com/jumpserver/luna/releases/download/1.5.6/luna.tar.gz

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

tar -xf luna.tar.gz

chown -R root:root kokodir

chown -R root:root luna


cd kokodir

cp config_example.yml config.yml

 vim config.yml

# BOOTSTRAP_TOKEN 需要从 jumpserver/config.yml 里面获取, 保证一致

 ./koko  # 可以 -d 参数在后台运行 ./koko -d


8.安装docker


关闭selinux和firewall

yum-config-manager --add-repo=

https://download.docker.com/linux/centos/docker-ce.repo

yum install  containerd.io

查看历史版本

yum list docker-ce --showduplicates | sort -r

yum install docker-ce-18.09.9-3.el7 


设置开机启动&启动服务

systemctl enable docker.service

systemctl start docker.service


运行guacamole 组件

docker run --name jms_guacamole -d -p 127.0.0.1:8081:8080 

-e JUMPSERVER_SERVER=http://主机ip:8080 

-e BOOTSTRAP_TOKEN=和/opt/jumpserver/config.yml里面的一致

wojiushixiaobai/jms_guacamole:1.5.6


设置开机自启动,当意外退出时容器会尝试自己启动。

docker update --restart=on-failure jms_guacamole


最后:nginx设置


vim /etc/nginx/ngin.conf

    listen       80 default_server;

        listen       [::]:80 default_server;


将后面的default_server删掉;


vim /etc/nginx/conf.d/jumpserver.conf

server {
listen 80 default_server;


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服务

systemctl restart nginx.service  或者nginx -s reload重读配置文件


测试:直接浏览器访问server的ip地址,默认账号密码均为admin;


可能问题:

  1. 登录认证后显示出现乱码,可能是mysql字符集问题,将字符集改为utf8mb4

  2. 在web终端无法连接所选服务器,可能是koko认证有问题,建议先./koko查看输出是否有报错,再重新认证。

文章转载自Linux系统运维笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论