Jumpserver(跳板机)搭建 2.2.2版本

安装前配置准备:centos7安装部署jumpserver

一、系统环境准备:

1、查看系统版本

# cat /etc/redhat-release // 查看系统版本
CentOS Linux release 7.5.1804 (Core)

# uname -a // 查看系统信息
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

2、关闭selinux和防火墙

# getenforce //查看selinux的状态
Disabled
// 如果是Enable需要修改为Disabled,命令是“setenforce 0”

# systemctl stop firewalld.service // 关闭防火墙

3、修改字符集

因为日志里打印了中文,否则肯能报错:input/output error问题

# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
# export LC_ALL=zh_CN.UTF-8
# echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf

二、准备Python3和Python虚拟环境:
1、安装依赖包

# yum -y install wget vim lrzsz xz gcc git epel-release python-pip python-devel mysql-devel automake autoconf sqlite-devel zlib-devel openssl-devel sshpass readline-devel


2、编译安装

# yum -y install python36 python36-devel

// 如果下载速度很慢, 可以换国内源
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# yum -y install python36 python36-devel


3、建立 Python 虚拟环境
CentOS 7 自带的是 Python2,而 yum 等工具依赖原来的 Python,为了不扰乱原来的环境我们来使用 Python 虚拟环境

# cd /opt
# python3.6 -m venv py3
# source /opt/py3/bin/activate
(py3) [root@localhost opt]#
//看到这一行的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令


以下所有命令均在该虚拟环境中运行:

三、安装部署 Redis:

安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke

(py3) [root@localhost opt]# yum -y install redis
(py3) [root@localhost opt]# systemctl enable redis
(py3) [root@localhost opt]# systemctl start redis

创建所需的文件目录

[root@jump src]# mkdir -p /usr/local/redis/{etc,logs,run,data}

修改配置文件

[root@jump src]# cat << EOF > /usr/local/redis/etc/redis.conf
daemonize yes
port 6379
#指定端口号
bind 127.0.0.1 # 节点IP--改为本机实际的IP地址
protected-mode yes
pidfile "/usr/local/redis/run/redis.pid"
# 指定进程文件PID位置
loglevel notice
logfile "/usr/local/redis/logs/redis.log"
# 指定日志文件位置
save 900 1
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir "/usr/local/redis/data/rdb/"
timeout 0
tcp-keepalive 300
requirepass Linux@Shizhuang2020..
# 指定密码
EOF

启动Redis并查看服务启用端口号

[root@jump src]# mkdir -p /usr/local/redis/data/rdb/
[root@jump src]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
[root@jump src]# netstat -anpl |grep redis
tcp 0 0 10.0.0.9:6379 0.0.0.0:* LISTEN 12565/redis-server

连接测试Redis

[root@jump src]# /usr/local/redis/bin/redis-cli -h 10.0.0.9 -p 6379 -a 'Linux@Shizhuang2020..'

如果没有找到这个命令的话,可以通过 find / -name redis-cli 去进行查找 /usr/bin/redis-cli

[root@jump src]# /usr/bin/redis-cli -h 10.0.0.9 -p 6379 -a 'Linux@Shizhuang2020..'

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
10.0.0.9:6379> select 1
OK
10.0.0.9:6379[1]> exit

四、安装部署 Mariadb:

Jumpserver使用数据库,可以选择MySQL或者Mariadb;

Mariadb版本需要大于等于5.5.56MySQL版本需要大于等于5.6

这里使用yum方式部署mariadb

配置Yum源,如果本地Yum源可用,此处可跳过

$ curl -o /etc/yum.repos.d/CentOS-Base-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
$ yum clean all && yum makecache

安装并启动"mariadb"

[root@jump src]# yum list | grep mariadb # 列出"mariadb"相关安装包
[root@jump src]# yum install mariadb.x86_64 mariadb-devel.x86_64 mariadb-server.x86_64 -y # 安装"mariadb"
[root@jump src]# systemctl enable mariadb && systemctl start mariadb # 启动"mariadb"并加入开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

连接"mariadb"数据库修改"root"密码

[root@jump src]# mysql -uroot -p
Enter password: #首次连接mariadb,直接回车进入数据库

MariaDB [(none)]> set password for 'root'@localhost=password('Linux@Shizhuang2020..');
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

创建"jumpserver"数据库并进行授权

MariaDB [(none)]> create database jumpserver character set='utf8' collate='utf8_general_ci'; 创建数据库 jumpserver
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'Linux@Shizhuang2020..';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit;
Bye

五、获取 JumpServer 代码:

载入 Python 虚拟环境

source /opt/py3/bin/activate

cd /opt && \

wget https://github.com/jumpserver/jumpserver/releases/download/v2.2.2/jumpserver-v2.2.2.tar.gz

tar xf jumpserver-v2.2.2.tar.gz

mv jumpserver-v2.2.2 jumpserver

安装编译环境依赖

cd /opt/jumpserver/requirements

Centos:

yum install -y $(cat rpm_requirements.txt)

pip install wheel && \

pip install --upgrade pip setuptools && \

pip install -r requirements.txt

确保已经载入 py3 虚拟环境, 中间如果遇到报错一般是依赖包没装全, 可以通过 搜索引擎 解决:

cd /opt/jumpserver && \

cp config_example.yml config.yml && \

vi config.yml

注意不能使用纯数字字符串, 可以参考此模版

启动 JumpServer:(确保已经载入 py3 虚拟环境

cd /opt/jumpserver

./jms start

可以 -d 参数在后台运行

./jms start -d

六、Docker 部署 KoKo 组件:

七、Docker 部署 Guacamole 组件:

八、配置 Nginx 整合各组件:
1、安装nginx

(py3)[root@jumpserver opt]# yum install yum-utils
(py3)[root@jumpserver opt]# vi /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

(py3)[root@jumpserver opt]# yum makecache fast
(py3)[root@jumpserver opt]# yum install -y nginx
(py3)[root@jumpserver opt]# rm -rf /etc/nginx/conf.d/default.conf
(py3)[root@jumpserver opt]# systemctl enable nginx


2、准备配置文件,修改/etc/nginx/conf.d/jumpserver.conf

(py3)[root@jumpserver opt]# 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;
}
}


3、运行 Nginx

(py3)[root@jumpserver opt]# nginx -t # 确保配置没有问题, 有问题请先解决

// centos 7
(py3)[root@jumpserver opt]# systemctl start nginx
(py3)[root@jumpserver opt]# systemctl enable nginx


九、测试jumpser功能:
1、检查web页面是否已经正常运行
服务全部启动后, 访问 http://192.168.0.1(ip地址是你配置的那台机器的ip), 访问nginx代理的端口, 不要再通过8080端口访问
默认账号: admin 密码: admin
到Jumpserver 会话管理-终端管理 检查 Coco Guacamole 等应用的注册。

2、测试连接
如果登录客户端是 macOS 或 Linux, 登录语法如下

$ ssh -p2222 [email protected]
$ sftp -P2222 [email protected]
密码: admin


如果登录客户端是 Windows, Xshell Terminal 登录语法如下

$ ssh [email protected] 2222
$ sftp [email protected] 2222
密码: admin


如果能登陆代表部署成功
# sftp默认上传的位置在资产的 /tmp 目录下

# windows拖拽上传的位置在资产的 Guacamole RDP上的 G 目录下

十、错误集合:
错误1:
# pip install -r requirements.txt
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-fadyxpv4/mysqlclient/
You are using pip version 9.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command

解决方法:
# pip3 install --upgrade pip
# pip3 install -r requirements.txt

如遇到运行的时候 PY报错,请将 pip setuptools 这个版本限制在45.X以下 则可以解决 安装时的报错问题

如下

先卸载旧版本,再重新下载。

pip uninstall setuptools

pip install setuptools==45.1.0

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章