当前位置:   article > 正文

Linux部署开源堡垒机JumpServer详细教程_create user 'jumpserver'@'%' identified by 'jumpse

create user 'jumpserver'@'%' identified by 'jumpserver123';

堡垒机,也叫做运维安全审计系统,它的核心功能是 4A:

  1. 身份验证 Authentication
  2. 账号管理 Account
  3. 授权控制 Authorization
  4. 安全审计 Audit

简单总结一句话:堡垒机是用来控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事后溯源)。

本文部署的开源堡垒机,Jumpserver 是全球首款完全开源、符合 4A 规范(包含认证Authentication 、授权 Authorization、账号 Accounting 和审计 Auditing)的运维安全审计系统,采用了分布式架构设计,支持多云环境并可灵活扩展。资产管理方面, Jumpserver 无并发和资产数量限制,支持水平扩容。 提供体验极佳的 Web Terminal ,实现基于 Web 的文件传输,并且支持用户将运维审计录像保存在云端(例如 AWS S3 、阿里云 OSS 、 ElasticSearch 等)。

 

下面将近入部署的详细操作

操作系统安装

最小化安装CentOS7.8操作系统,操作指南见我发布的文章《CentOS 7.8操作系统安装(用于生产)》

准备Mysql数据库

数据库安装部署见我发布的文章《

centos7 编译安装mysql 5.7.28图文详细教程》,建议安装在独立的服务器上。

创建数据库

数据库服务器端操作

mysql -u root -p   #连接到mysql

create database jumpserver default charset 'utf8';

create user 'jumpserver'@'%' identified by 'jumpserver123';

grant all on jumpserver.* to 'jumpserver'@'%';

flush privileges;

exit

部署Redis服务

部署安装文档见我发布的文章《 Centos7编译安装Redis 6.2.3 详细教程》,建议单独部署在独立服务器上。

安装及配置

卸载旧版本

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -y

安装 Docker Engine-Community

使用 Docker 仓库进行安装

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

#设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2

yum install -y yum-utils device-mapper-persistent-data lvm2

#使用以下命令来设置稳定的仓库(只选持一个即可

使用官方源地址(比较慢)

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

阿里云源

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清华大学源

yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

#这里我选择用官方的源

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

#安装 Docker Engine-Community

安装最新版本的 Docker Engine-Community 和 containerd

yum install -y docker-ce docker-ce-cli containerd.io

配置docker上网代理

注意:服务器需要使用代理上网时,才需要配置

mkdir -p /etc/systemd/system/docker.service.d

cd /etc/systemd/system/docker.service.d

vi http-proxy.conf

#添加以下内容,保存配置

[Service]

Environment="HTTP_PROXY=http://172.23.13.20:8320"

Environment="HTTPS_PROXY=http://172.23.13.20:8320"

Environment="NO_PROXY=localhost,127.0.0.1"

启动docker

systemctl enable docker

systemctl start docker

部署jumpserver

下载jumpserver

此文档部署的版本为2.10.3版本

root用户操作

cd /opt

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

tar -xf jumpserver-installer-v2.10.3.tar.gz

cd jumpserver-installer-v2.10.3

安装jumpserver

root用户操作

./jmsctl.sh install

数据库配置外部mysql,配置正确的IP、端口、数据库名、用户名及密码

配置外部Redis,配置正确的IP、端口、密码

配置jumpserver

root用户操作

cd /opt/jumpserver/config/

vi config.txt

修改配置内容 HTTP_PORT的端口为8080,如下所示:

Nginx配置

安装nginx

配置nginx安装源

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

module_hotfixes=true

[nginx-mainline]

name=nginx mainline repo

baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/

gpgcheck=1

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

yum repolist

安装nginx

yum install nginx -y

设置开机自启

systemctl enable nginx

反向代理设置

mv /etc/nginx/conf.d/default.conf /root

vi /etc/nginx/conf.d/jumpserver.conf

添加以下内容,并保存

server {

    listen 80;

    return 301 https://$host$request_uri;

}

server {

    listen 443 ssl;

    ssl_certificate      cert/server.crt;  # 自行设置证书

    ssl_certificate_key  cert/server.key;  # 自行设置证书

    ssl_session_timeout 1d;

    ssl_session_cache shared:MozSSL:10m;

    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    ssl_prefer_server_ciphers off;

    ssl_protocols TLSv1.1 TLSv1.2;

    add_header Strict-Transport-Security "max-age=63072000" always;

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

    location / {

        # 这里的 ip 是后端 JumpServer nginx 的 ip

        proxy_pass http://localhost:8080;

        proxy_http_version 1.1;

        proxy_buffering off;

        proxy_request_buffering off;

        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;

    }

}

复制证书到/etc/nginx/cert 目录下(如果cert目录不存在,手动创建)

cd /etc/nginx

mkdir cert

cp -rf /opt/jumpserver/config/nginx/cert/* /etc/nginx/cert/

启动nginx

systemctl start nginx

配置防火墙

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

firewall-cmd --permanent --zone=public --add-port=443/tcp

firewall-cmd --reload

启动jumpserver

root用户执行

cd /opt/jumpserver-installer-v2.10.3

./jmsctl.sh start

SELINUX规则设置

本部署文档,没有提及关闭SELINUX或设置SELINUX 模式为Permissive,如果关闭了SELINUX或模式为Permissive,可以不操作这个设置。

SELINUX 模式为Enforcing时,nginx开启反向代理到本机nginx其它端口时,会被阻止,如下所示:

浏览器打开网址 https://192.168.56.112

登录服务器,查看Nginx错误日志

grep Permission /var/log/nginx/error.log

查看SELinux的审计日志

grep denied /var/log/audit/audit.log

初步分析SELinux的审计日志,可以看到nginx进程的SELinux scontext type为httpd_t,而被请求对象8080的SELinux tcontext type为http_cache_port_t,两者不匹配,且没有从属关系。

借助于audit2why工具,执行grep 1624599459.111:447 /var/log/audit/audit.log | audit2why命令(标红部分是日志中实际存在的audit值),让audit2why帮助我们找到解决办法。查看该命令的输出,可以看到我们的初步分析是正确的,而其给出的建议如下:

所以需要进行以下设置:(或者把SELINUX 模式改成Permissive)

getsebool httpd_can_network_connect

setsebool -P httpd_can_network_connect on

setsebool -P httpd_can_network_connect 1

重启nginx服务

systemctl restart nginx

重启后,重新刷新网页

登录jumpserver

浏览器打开网址 https://192.168.56.112

输入用户:admin

密码:admin

登录系统,并按系统提示更改密码

关闭jumpserver

root用户操作

cd /opt/jumpserver-installer-v2.10.3

./jmsctl.sh close  或 ./jmsctl stop (两者的区别,后者会删除创建的docker容器,下次启动时,重新创建)

-----------------------------------------END--------------------------------------------------

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/70027
推荐阅读
相关标签
  

闽ICP备14008679号