如何搭建jumpserver堡垒机?

一、准备环境
$ firewall-cmd --zone=public --add-port=80/tcp --permanent # nginx 端口
$ firewall-cmd --zone=public --add-port=2222/tcp --permanent # 用户SSH登录端口 coco

$ firewall-cmd --reload # 重新载入规则

$ setenforce 0
$ sed -i "s/enforcing/disabled/g" /etc/selinux/config

#修改字符集,否则可能报 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.6
$ yum -y install wget gcc epel-release git
$ yum -y install python36 python36-devel
$ cd /opt
$ python3.6 -m venv py3
$ source /opt/py3/bin/activate
$ cd /opt
$ git clone https://github.com/kennethreitz/autoenv.git
$ echo ‘source /opt/autoenv/activate.sh‘ >> ~/.bashrc
$ source ~/.bashrc
$ echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env
$ echo "source /opt/py3/bin/activate" > /opt/coco/.env
三、安装jumpserver
$ cd /opt/jumpserver/requirements
$ yum -y install $(cat rpm_requirements.txt)
$ pip install --upgrade pip setuptools
$ pip install -r requirements.txt
$ cd /opt/jumpserver
$ cp config_example.py config.py
$ vi config.py
#加密秘钥 生产环境中请修改为随机字符串,请勿外泄
SECRET_KEY = ‘2vym+ky!997d5kkcc64mnz06y1mmui3lut#(^wd=%s_qj$1%x‘
#预共享Token coco和guacamole用来注册服务账号,不在使用原来的注册接受机制
BOOTSTRAP_TOKEN = ‘nwv4RdXpM82LtSvmV‘
DEBUG = False
LOG_LEVEL = ‘ERROR‘
LOG_DIR = os.path.join(BASE_DIR, ‘logs‘)
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
DB_ENGINE = ‘mysql‘
DB_HOST = ‘127.0.0.1‘
DB_PORT = 3306
DB_USER = ‘jumpserver‘
DB_PASSWORD = ‘123456‘
DB_NAME = ‘jumpserver‘
HTTP_BIND_HOST = ‘0.0.0.0‘
HTTP_LISTEN_PORT = 8080
REDIS_HOST = ‘127.0.0.1‘
REDIS_PORT = 6379
#每行前面要对齐
四、安装redis
$ yum -y install redis
$ systemctl enable redis
$ systemctl start redis
五、安装mysql
yum -y install mysql mysql-server
mysql_secure_installation
$ mysql -uroot -p

create database jumpserver default charset ‘utf8‘;
grant all on jumpserver.* to ‘jumpserver‘@‘127.0.0.1‘ identified by ‘123456‘;
flush privileges;
quit

六、安装coco
$ cd /opt/coco/
$ cd requirements
$ yum -y install $(cat rpm_requirements.txt)
$ pip install -r requirements.txt
$ cd /opt/coco
$ mkdir keys logs
$ cp conf_example.py conf.py # 如果 coco 与 jumpserver 分开部署,请手动修改 conf.py
$ vi conf.py
#项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复
NAME = "coco"
CORE_HOST = ‘http://127.0.0.1:8080
#Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal
#请和jumpserver 配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN = "nwv4RdXpM82LtSvmV"
LOG_LEVEL = ‘ERROR‘
#每行前面要对齐
七、安装luna
$ cd /opt
$ wget https://github.com/jumpserver/luna/releases/download/1.4.6/luna.tar.gz
$ tar xf luna.tar.gz
$ chown -R root:root luna

八、安装guacamole
$ mkdir /usr/local/lib/freerdp/
$ ln -s /usr/local/lib/freerdp /usr/lib64/freerdp
$ rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
$ rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
$ yum -y localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm

$ yum install -y java-1.8.0-openjdk libtool
$ yum install -y cairo-devel libjpeg-turbo-devel libpng-devel uuid-devel
$ yum install -y ffmpeg-devel freerdp-devel freerdp-plugins pango-devel libssh2-devel libtelnet-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel ghostscript

$ cd /opt
$ git clone https://github.com/jumpserver/docker-guacamole.git
$ cd /opt/docker-guacamole/
$ tar -xf guacamole-server-0.9.14.tar.gz
$ cd guacamole-server-0.9.14
$ autoreconf -fi
$ ./configure --with-init-dir=/etc/init.d
$ make && make install
$ cd ..
$ rm -rf guacamole-server-0.9.14
$ ldconfig
$ export JUMPSERVER_SERVER=http://127.0.0.1:8080 # http://127.0.0.1:8080 指 jumpserver 访问地址
$ echo "export JUMPSERVER_SERVER=http://127.0.0.1:8080" >> ~/.bashrc

#BOOTSTRAP_TOKEN 为 Jumpserver/config.py 里面的 BOOTSTRAP_TOKEN
$ export BOOTSTRAP_TOKEN=nwv4RdXpM82LtSvmV
$ echo "export BOOTSTRAP_TOKEN=nwv4RdXpM82LtSvmV" >> ~/.bashrc
$ export JUMPSERVER_KEY_DIR=/config/guacamole/keys
$ echo "export JUMPSERVER_KEY_DIR=/config/guacamole/keys" >> ~/.bashrc
$ export GUACAMOLE_HOME=/config/guacamole
$ echo "export GUACAMOLE_HOME=/config/guacamole" >> ~/.bashrc
$ /etc/init.d/guacd start

九、安装tomcat
$ mkdir -p /config/guacamole /config/guacamole/lib /config/guacamole/extensions # 创建 guacamole 目录
$ ln -sf /opt/docker-guacamole/guacamole-auth-jumpserver-0.9.14.jar /config/guacamole/extensions/guacamole-auth-jumpserver-0.9.14.jar
$ ln -sf /opt/docker-guacamole/root/app/guacamole/guacamole.properties /config/guacamole/guacamole.properties # guacamole 配置文件

$ cd /config
$ wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz
$ tar xf apache-tomcat-8.5.35.tar.gz
$ rm -rf apache-tomcat-8.5.35.tar.gz
$ mv apache-tomcat-8.5.35 tomcat8
$ rm -rf /config/tomcat8/webapps/*
$ ln -sf /opt/docker-guacamole/guacamole-0.9.14.war /config/tomcat8/webapps/ROOT.war # guacamole client
$ sed -i ‘s/Connector port="8080"/Connector port="8081"/g‘ /config/tomcat8/conf/server.xml # 修改默认端口为 8081
$ sed -i ‘s/FINE/WARNING/g‘ /config/tomcat8/conf/logging.properties # 修改 log 等级为 WARNING

$ cd /config
$ wget https://github.com/ibuler/ssh-forward/releases/download/v0.0.5/linux-amd64.tar.gz
$ tar xf linux-amd64.tar.gz -C /bin/
$ chmod +x /bin/ssh-forward

$ sh /config/tomcat8/bin/startup.sh

十、整合nginx
$ yum install nginx -y
$ rm -rf /etc/nginx/conf.d/default.conf
$ systemctl enable nginx
$ vi etc/nginx/nginx.conf
include /etc/nginx/conf.d/jumpserver.conf; #在}前加入这句
$ vi /etc/nginx/conf.d/jumpserver.conf
server {
listen 80; # 代理端口,以后将通过此端口进行访问,不再通过8080端口
#server_name demo.jumpserver.org; # 修改成你的域名或者注释掉

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 -t
$ systemctl start nginx
$ systemctl enable nginx
或者which nginx
$ /usr/sbin/nginx

十一、启动所有服务

$ sh /config/tomcat8/bin/startup.sh
$ /etc/init.d/guacd start
$ cd /opt/jumpserver
$ ./jms start all -d
$ cd /opt/coco
$ ./cocod start -d

十二、web配置jumpserver



注意:
用xshell如何登陆jumpserver后台:
ssh [email protected] 2222

如何重新注册gualcd
$ /etc/init.d/guacd stop
$ sh /config/tomcat8/bin/shutdown.sh
$ rm -rf /config/guacamole/keys/*
$ /etc/init.d/guacd start
$ sh /config/tomcat8/bin/startup.sh

如何重新注册cocod
$ cd /opt/coco && ./cocod stop
$ rm /opt/coco/keys/.access_key # coco, 如果你是按文档安装的,key应该在这里,如果不存在key文件直接下一步
$ ./cocod start -d # 正常运行后到Jumpserver 会话管理-终端管理 里面接受coco注册

原文地址:http://blog.51cto.com/hzcto/2343760

时间: 2024-10-10 13:32:45

如何搭建jumpserver堡垒机?的相关文章

基于Docker搭建Jumpserver堡垒机操作实践

一.背景 笔者最近想起此前公司使用过的堡垒机系统,觉得用的很方便,而现在的公司并没有搭建此类系统,想着以后说不定可以用上:而且最近也有点时间,因此来了搭建堡垒机系统的兴趣,在搭建过程中参考了比较多的文档,其中最详细的还是官方文档,地址如下所示: Jumpserver 文档 二.操作概要 1. 系统运行 2. 配置入门 3. 测试验证 三.系统运行 在官方文档中安装堡垒机有很多种方法,这让笔者有些纠结,另外而且在不同系统中安装方法也不一致,不过正在徘徊不定时,发现一种通用的安装方法,便是采用doc

搭建jumpserver堡垒机

环境 系统: CentOS 7 IP: 192.168.244.144 关闭 selinux 和防火墙 # CentOS 7 $ setenforce 0  # 可以设置配置文件永久关闭 $ systemctl stop iptables.service $ systemctl stop firewalld.service # 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文 $ localedef -c -f UTF-8 -i zh_CN zh_CN.U

jumpserver 堡垒机环境搭建(图文详解)

Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python编写,容易再次开发 实现了跳板机基本功能,认证.授权.审计 集成了Ansible,批量命令等 支持WebTerminal Bootstrap编写,界面美观 自动收集硬件信息 录像回放 命令搜索 实时监控 批量上传下载 jumpserver 3.0 安装 相对于 jumpserver 2.0 版本,在新的版本

让运维不再背锅的利器jumpserver堡垒机

由于来源身份不明.越权操作.密码泄露.数据被窃.违规操作等因素 都可能会使运营的业务系统面临严重威胁,一旦发生事故,如果不能快速定位事故原因,运维人员往往就会背黑锅. 几种常见的背黑锅场景 1.由于不明身份利用远程运维通道攻击服务器造成业务系统出现异常 但是运维人员无法明确攻击来源,那么领导很生气.后果很严重 2.只有张三能管理的服务器,被李四登录过并且做了违规操作 但是没有证据是李四登录的,那么张三只能背黑锅了. 3.运维人员不小心泄露了服务器的密码.一旦发生安全事故,那么后果不堪设想. 4.

jumpserver 堡垒机

来源:知乎 Jumpserver 是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python编写,容易再次开发 实现了跳板机基本功能,认证.授权.审计 集成了Ansible,批量命令等 支持WebTerminal Bootstrap编写,界面美观 自动收集硬件信息 录像回放 命令搜索 实时监控 批量上传下载 jumpserver 3.0 安装 相对于 jumpserver 2.0 版本,

搭建简易堡垒机

笔记内容:搭建简易堡垒机笔记日期:2018-01-18 23.1 什么是堡垒机 23.2 搭建简易堡垒机 23.3 安装jailkit实现chroot 23.4 日志审计 23.1 什么是堡垒机 堡垒机,是在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态.安全事件.网络活动,以便集中报警.及时处理及审计定责. 我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登录服务器和日志审计.运维

搭建开源堡垒机的5个常见理解误区

当企业选择搭建开源堡垒机时,便拥有初始投入少.使用灵活等特点.但是搭建开源堡垒机并不是真的完全免费并且安全可靠的.小编发现,用户在对搭建开源堡垒机的理解上,存在以下5个常见的误区,一起来看看. 误区一:开源堡垒机完全免费吗? 其实开源堡垒机只有最基本的功能或者部分使用配额是免费的,一旦涉及到企业更深层次的安全需求,就需要向开源堡垒机厂商支付额外的费用,以获得更高的使用配额和完整的堡垒机功能. 误区二:开源堡垒机安全吗? 开源堡垒机也意味着存在开放带来的安全威胁与潜在漏洞,就像Dedecms,不是

jumpserver堡垒机的搭建

堡垒机方便和简化了管理员对多个用户和多台服务器之间的联系 jumpserver是一个开源的软件 1 首先在jumpsrever官网下载 选择 VIEW PROJECT ON GITHUB 这个按钮 选择master 这个分支 一个软件压缩包 下载时要下载master这个分支  再解压  期间会下载依赖包 请耐心等待 这个对python的版本有要求 不符合就卸载 重新安装 unzip jumpserver-master.zip cd jumpserver-master/install ./inst

jumpserver堡垒机搭建

安装的文字在百度上有很多,个人建议还是参考官网的比较靠谱.下面主要说一下个人搭建所遇到过的坑和后面修改和使用的说明.安装文档参考:http://docs.jumpserver.org/zh/docs/installation.html主要以上面为主,参考其他的也是可以的. 1.在安装的过程中,需要掌握每一步的操作是什么意思.在后面的排错中很有帮助的.2.遇到问题学会找关键字或查看错误日志.然后找百度或google.基本都能解决.3.在搭建或安装的前提,建议使用虚拟机便于创建快照和系统恢复方便.4