Jumpserver部署及使用

标题 Jumpserver部署及使用

总体介绍:
Jumpserver 是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合 4A 的专业运维审计系统
Jumpserver 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制
Jumpserver 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产
coco:实现了ssh server和web终端 的组件,提供ssh和websocket接口
luna:是web terminal的前端(用来展示用户和与用户进行交互)前端页面都是由该项目完成的
guancamole:apache的跳板机项目,jumpserver使用其组件实现RDB(远程桌面)功能,jumpderver在guacamole中添加额外
Jumpserver的特点:
完全开源
Python编写,容易二次开发使用
集成了ansible,批量命令等
支持web Terminal (web终端,可以在浏览器web页面运行终端,管理服务器资源)
Bootstrap编写,界面美观(前段页面效果,有web前端人员完成的)
自动回收硬件信息(如后端服务器的磁盘空间、内存大小等信息)
录像回放
命令搜索
实时监控
———————————
安装部署:
Jumpserver 环境要求:
硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)
操作系统: Linux 发行版 x86_64
Python = 3.6.x
Mysql Server ≥ 5.6
Mariadb Server ≥ 5.5.56
Redis
部署环境:
系统: CentOS 7
IP: 192.168.1.10
关闭 selinux 和防火墙

安装步骤:
将系统环境字体设置成中文,因为jumpserver的日志文件里面的内容会包含中文字符,不支持可能会乱码
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虚拟环境:
配置网络yum源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
Yum 加速设置请参考 http://mirrors.163.com/.help/centos.html
运行一下命令生成缓存:
yum clean all
yum makecache
1、安装依赖包:
yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
2、编译安装python3
[root@localhost ~]# tar xvf Python-3.6.1.tar.xz
[root@localhost Python-3.6.1]# cd Python-3.6.1/
[root@localhost Python-3.6.1]# ./configure && make && make install
3、建立python虚拟环境
因为 CentOS 6/7 自带的是 Python2,而 Yum 等工具依赖原来的 Python,为 了不扰乱原来的环境我们来使用 Python 虚拟环境
[root@localhost ~]# cd /opt/
[root@localhost opt]# python3 -m venv py3
[root@localhost opt]# source /opt/py3/bin/activate
看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均 在该虚拟环境中运行
(py3) [root@localhost opt]#
4、设置自动在任意python虚拟环境
(py3) [root@localhost opt]# cd /opt/
(py3) [root@localhost opt]# unzip autoenv.zip
(py3) [root@localhost opt]# echo ‘source /opt/autoenv/activate.sh’ >> ~/.bashrc
(py3) [root@localhost opt]# source ~/.bashrc
安装第一个组件jumpserver并配置
(py3) [root@localhost opt]# cd /opt/
(py3) [root@localhost opt]# unzip jumpserver.zip
(py3) [root@localhost opt]# echo “source /opt/py3/bin/activate” > /opt/jumpserver/.env
(py3) [root@localhost opt]# cd jumpserver/
//首次进入按y即可
Jumpserver部署及使用_第1张图片
安装依赖RPM包:
(py3) [root@localhost jumpserver]# cd requirements/
(py3) [root@localhost requirements]# yum -y install KaTeX parse error: Expected 'EOF', got '#' at position 77: …t requirements]#̲ pip install …
SECRET_KEY: NjGA1lRO87Cp6HBngf6yvJbCkbdyYeCFbpxCJtMGgQqIRiOkT
BOOTSTRAP_TOKEN: MvRlnZvmNt9V4uY5
DEBUG: false
LOG_LEVEL: ERROR
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: 123.com
DB_NAME: jumpserver
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
运行jumpserver:
(py3) [root@localhost jumpserver]# ./jms start all -d //-d:在后台运行
第一次初始化的时候会有点慢
(py3) [root@localhost jumpserver]# netstat -anput | grep 8080
在这里插入图片描述
安装coco组件并配置:
(py3) [root@localhost jumpserver]# cd /opt/
(py3) [root@localhost opt]# unzip coco.zip
(py3) [root@localhost opt]# cd coco/
(py3) [root@localhost coco]# echo “source /opt/py3/bin/activate” > /opt/coco/.env //进入coco目录时自动载入python虚拟环境
(py3) [root@localhost coco]# cd requirements/
首次进入 coco 文件夹会有提示,按 y 即可
Jumpserver部署及使用_第2张图片
安装依赖:
(py3) [root@localhost requirements]# yum -y install $(cat rpm_requirements.txt)
(py3) [root@localhost requirements]# pip install -r requirements.txt -i https://pypi.python.org/simple
修改配置文件并运行:
修改内容如下:
BOOTSTRAP_TOKEN: MvRlnZvmNt9V4uY5 //和前面的那个一样
LOG_LEVEL: ERROR
(py3) [root@localhost coco]# ./cocod start -d
(py3) [root@localhost coco]# netstat -anput | grep 2222
在这里插入图片描述
安装guacmole,这个服务在安装过程中比较复杂,采用docker仓库打包号的镜像
安装docker:
(py3) [root@localhost opt]# yum install -y yum-utils device-mapper-persistent-data lvm2
添加docker官方源:
(py3) [root@localhost opt]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(py3) [root@localhost opt]# yum makecache fast
(py3) [root@localhost opt]# yum install docker-ce //会有两个提示,输入y即可
(py3) [root@localhost opt]# systemctl start docker
(py3) [root@localhost opt]# systemctl enable docker
(py3) [root@localhost opt]# ps -ef | grep docker //这个docker是作为进程在运行
在这里插入图片描述
(py3) [root@localhost opt]# docker run --name jms_guacamole -d -p 8081:8080 -v /opt/guacamole/key:/config/guacamole/key -e JUMPSERVER_KEY_DIR=/config/guacamole/key -e -e JUMPSERVER_SERVER=http://192.168.1.10:8080 jumpserver/guacamole:latest
安装luna,只需要解压到/opt目录就好了
(py3) [root@localhost opt]# tar zxf luna.tar.gz
安装nginx反向代理
(py3) [root@localhost nginx-1.14.0]# tar zxf nginx-1.14.0.tar.gz
(py3) [root@localhost nginx-1.14.0]# cd nginx-1.14.0/
(py3) [root@localhost nginx-1.14.0]# ./configure && make && make install
修改配置文件:
在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 /socket.io/ {
    proxy_pass       http://localhost:5000/socket.io/;  # 如果coco安装在别的服务器, 请填写它的ip
    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/;  # 如果coco安装在别的服务器, 请填写它的ip
    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/;  # 如果guacamole安装在别的服务器, 请填写它的ip
    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;  # 如果jumpserver安装在别的服务器, 请填写它的ip
    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:
(py3) [root@localhost ~]# /usr/local/nginx/sbin/nginx
(py3) [root@localhost ~]# netstat -anput | grep nginx
在这里插入图片描述
检查应用是否正常运行
(py3) [root@localhost ~]# cd /opt/jumpserver/
(py3) [root@localhost jumpserver]# ./jms status
在这里插入图片描述
(py3) [root@localhost jumpserver]# cd /opt/coco/
(py3) [root@localhost coco]# ./cocod status
在这里插入图片描述
(py3) [root@localhost coco]# docker ps
在这里插入图片描述
服务全部启动后,访问http://192.168.1.10,访问nginx代理端口,不要再通过8080端口访问了
访问
浏览器输入192.168.1.10
账号:admin
密码:admin //都是默认的
Jumpserver部署及使用_第3张图片
登录进来后的操作:
用户管理-------用户列表-------创建用户
Jumpserver部署及使用_第4张图片
资产管理-------管理用户-------创建管理用户
Jumpserver部署及使用_第5张图片
资产管理-------管理用户-------创建系统用户(用户名尽量为root,选择手动登录,这个用户用来连接后端资产的)
Jumpserver部署及使用_第6张图片
资产管理-------资产列表-------创建资产-------新开一台主机填写新开主机的IP地址
Jumpserver部署及使用_第7张图片
权限管理-------资产授权-------创建授权规则
Jumpserver部署及使用_第8张图片
会话管理-------web终端--------可以进行连接
Jumpserver部署及使用_第9张图片
创建文件测试:
在这里插入图片描述
在这里插入图片描述
————————————————

你可能感兴趣的:(Jumpserver部署及使用)