首先,jumpserver是什么呢?html
Jumpserver 是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。python
特色:linux
彻底开源,GPL受权 Python编写,容易再次开发 实现了跳板机基本功能,认证、受权、审计 集成了Ansible,批量命令等 支持WebTerminal Bootstrap编写,界面美观 自动收集硬件信息 录像回放 命令搜索 实时监控 批量上传下载nginx
jumpserver 3.0 安装git
相对于 jumpserver 2.0 版本,在新的版本 3.0 中取消了LDAP受权,取而代之的是ssh进行推送;界面也有所变化,功能更完善,安装更简单,不像 2.0 的版本,难住了好多人。下面经过两台主机来搭建 jumpserver堡垒机!github
Centos 6.5 x86_64 关闭 iptables,关闭 selinux jumpserver:192.168.1.200 clients:192.168.1.210 ps:操做只针对 jumpserver,clients 不会进行操做,只是环境需求。web
yum -y install epel-release yum clean all && yum makecache yum -y update yum -y install git python-pip MySQL-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel数据库
cd /opt Git clone https://github.com/jumpserver/jumpserver.git 注: 若是下载失败,则去github上面下载zip包,unzip解压缩便可vim
cd /opt/jumpserver/install后端
pip install -r requirement.txt
查看安装的包 pip freeze
python install.py 输入jumpserver的地址,默认为:”192.168.1.200”,回车便可。 是否安装MySQL:选择”y”进行安装
MySQL 启动后会要求用户输入 邮件服务器及帐户(后期用来发送用户名、ssh pass、web pass、ssh key)
163邮箱用受权密码,而不是登入密码 ,切记 。
输入smtp信息以后发现报错了,是python的pycrypto模块问题,须要卸载重装: pip uninstall pycrypto easy_install pycrypto
安装以后继续 python install.py 进行安装,而且输入 web管理员用户名和管理员密码,ok
运行 crontab,按期处理失效链接,按期更新资产信息 cd /opt/jumpserver python manage.py crontab add
注: 1)根据提示输入相关信息,完成安装,安装完成后,请访问web,继续查看后续文档 2)若是启动失败,请返回上层目录,手动运行 ./service.sh start 启动 3)若是 ./service.sh start 启动失败 cd /opt/jumpserver python manage.py runserver 0.0.0.0:80 python run_websocket.py 4)若是启动失败,多是因为80端口和3000端口已经被占用,或者数据库帐号密码不对,请检查
注意: 在使用jumpserver过程当中,有一步是系统用户推送,要推送成功,client(后端服务器)要知足如下条件: 1)后端服务器须要有python、sudo环境才能使用推送用户,批量命令等功能 2)后端服务器若是开启了selinux,请安装libselinux-python
cd /opt/jumpserver git pull
环境搭建到这一步就结束啦~
下面开始要仔细看咯
1)添加用户
点击用户管理 —> 查看用户 —> 添加用户
输入要添加的用户名,姓名,权限,Mail,而且发送邮件 —> 保存
查看添加的用户
查看用户邮件 邮件中包含了用户名,权限,web密码,ssh 密钥密码,以及密钥下载地址。
2)添加用户组
点击用户管理 —> 查看用户组 —> 添加用户组
添加新的小组 —> 运维小组
查看刚才添加的组
1)添加资产组
点击资产管理 —> 查看资产组 —> 添加主机组
输入组名称,而且输入描述组用途
2)添加资产
点击资产管理 —> 查看资产 —> 添加资产
输入主机名,主机IP,管理用户名(管理员用户,主机中必须存在的哦~ 能够是root),端口,资产组 —> 提交保存
3)添加机房
点击资产管理 —> 查看机房 —> 添加机房
输入机房名称,其余的能够选填 —> 保存
1)sudo
点击权限管理 —> sudo —> 添加别名
输入别名,系统命令,备注 —> 点击保存
2)添加系统用户
点击受权管理 —> 系统用户 —> 添加系统用户
输入用户名,密码,管理的sudo及备注 —> 单击保存
建立好系统以后,单击推送,将用户名、密码、sudo的信息推送到服务器。
选择系统用户,资产组 —> 单击保存
推送成功
3)受权规则
点击受权管理 —> 受权规则 —> 添加规则
输入受权名称,用户/用户组,资产/资产组,系统用户,备注 —> 单击保存
这时候建立已经完成,下一步用户”hongxue”经过web和密钥登陆堡垒机 192.168.1.200,并实现跳转到服务器 192.168.1.210
1)经过web登陆 能够看到用户ID,用户名,权限,key,最后登陆,用户组,受权主机数,以及主机信息。
单击查看主机 —> 链接
链接成功,能够对该主机进行操做。
2)经过ssh登陆
经过邮件中收到的地址,下载key
点击工具 —> 用户密钥管理者
单击导入 —> 输入用户名,密码
链接 jumpserver 堡垒机 192.168.1.200,输入密钥密码进行登陆
登陆成功!! 从受权的列表中链接到服务器 192.168.1.210
!!为了安全,建议配置nginx 反向代理 jumpserver
log_format jumpserver '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$request_time" $request_body "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $scheme $http_host'; server { listen 8080 ssl; listen 80; deny all; server_name jumpserver.xxxx.com; index index.html index.htm index.PHP; ssl_certificate ssl/xxxx.com.crt; ssl_certificate_key ssl/xxxx.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; if ( $scheme = http ) { rewrite ^(.*)$ https://$host:8090$request_uri? permanent; } location / { proxy_set_header Connection ""; proxy_http_version 1.1; proxy_pass http://10.43.12.31:8090; } location ^~ /ws/ { proxy_pass http://10.43.12.31:8090/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_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } access_log /data0/logs/jumpserver.log jumpserver; error_log /data0/logs/jumpserver_error.log debug; }