【转】jumpserver 堡垒机环境搭建(图文详解)
jumpserver 堡垒机环境搭建(图文详解)
摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。 特点: 完全开源,GPL授权 Python编写,容易再次开发 实现了跳板机基本功能,认证、授权、审计 集成了Ansibl
Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。
特点:
完全开源,GPL授权
Python编写,容易再次开发
实现了跳板机基本功能,认证、授权、审计
集成了Ansible,批量命令等
支持WebTerminal
Bootstrap编写,界面美观
自动收集硬件信息
录像回放
命令搜索
实时监控
批量上传下载
jumpserver 3.0 安装
相对于 jumpserver 2.0 版本,在新的版本 3.0 中取消了LDAP授权,取而代之的是ssh进行推送;界面也有所变化,功能更完善,安装更简单,不像 2.0 的版本,难住了好多人。下面通过两台主机来搭建 jumpserver堡垒机!
环境:
Centos 6.5 x86_64
关闭 iptables,关闭 selinux
jumpserver:192.168.1.200
clients:192.168.1.210
ps:操作只针对 jumpserver,clients 不会进行操作,只是环境需求。
一、安装依赖包
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
yum install –y setuptool
二、下载 jumpserver
cd /opt
git clone https://github.com/jumpserver/jumpserver.git
注: 如果下载失败,则去github上面下载zip包,unzip解压缩即可
三、执行快速安装脚本
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)
输入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端口已经被占用,或者数据库账号密码不对,请检查
五、Web登录
http://192.168.1.200
注意:
在使用jumpserver过程中,有一步是系统用户推送,要推送成功,client(后端服务器)要满足以下条件:
1)后端服务器需要有python、sudo环境才能使用推送用户,批量命令等功能
2)后端服务器如果开启了selinux,请安装libselinux-python
六、更新代码
cd /opt/jumpserver
git pull
环境搭建到这一步就结束啦~
-------------------------
CentOS7 开源跳板机(堡垒机) Jumpserver
开源跳板机(堡垒机)Jumpserver
环境 CentOS 7 x64 关闭 selinux firewalld
jumpserver: 172.24.0.14
testserver: 172.24.0.15
一. 部署ldapserver
1.1 安装ldapserver
yum install -y openldap openldap-servers openldap-clients openldap-devel
1.2 准备配置文件 (centos7 slapd.conf.obsolete 并不存在,所以我从centos6 里拷贝了一个过来)
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
## 该文件是slapd的配置文件
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
## 数据库的配置文件
1.3 修改配置文件
vim /etc/openldap/slapd.conf
...
loglevel 1
...
suffix "dc=jicki,dc=com"
rootdn "cn=admin,dc=jicki,dc=com"
rootpw jicki123
...
#说明:
loglevel:设置日志级别
suffix:其实就是BaseDN
rootdn: 超级管理员的dn
rootpw: 超级管理员的密码
1.4 修改系统日志配置文件
vim /etc/rsyslog.conf
搜索 local7.* 在下面添加一行
local4.* /var/log/ldap.log
保存以后重启服务
systemctl restart rsyslog.service
1.5 启动slapd, 查看启动情况
systemctl start slapd.service
删除ladp 原来配置
rm -rf /etc/openldap/slapd.d/*
重新生成新的配置
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
授权
chown -R ldap:ldap /etc/openldap/slapd.d/
重启服务
systemctl restart slapd.service
1.6 导入ldif数据库框架和测试用户,base.ldif,group.ldif,passwd.ldif 修改文件其中的dc=yolu,dc=com替换成你的baseDN,然后导入,密码是rootpw设置的密码
上传 base.ldif,group.ldif,passwd.ldif 文件至/tmp 目录下
cd /tmp
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f base.ldif
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f group.ldif
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f passwd.ldif
#说明:测试用户是testuser 密码是testuser123
二. testserver部署ldapclient
2.1 安装LDAP客户端
yum -y install openldap openldap-clients nss-pam-ldapd pam_ldap
2.2 设置自动创建目录
echo "session required pam_mkhomedir.so skel=/etc/skel umask=0077" >> /etc/pam.d/system-auth
2.3 备份原来authconfig,然后设置使用LDAP认证
authconfig --savebackup=auth.bak
authconfig --enableldap --enableldapauth --enablemkhomedir --enableforcelegacy --disablesssd --disablesssdauth --ldapserver=172.24.0.14 --ldapbasedn="dc=jicki,dc=com" --update
2.4 CentOS7 系统 必须注释掉这里才能从 ladp 验证通过. ( 否则 提示 登录失败: password refused )
vi /etc/pam.d/password-auth-ac
#auth requisite pam_succeed_if.so uid >= 1000 quiet_success
2.5 启动nslcd 否则报 ( pam_ldap(sshd:auth): error opening connection to nslcd: No such file or directory )
service nslcd start
2.6 从jumpserver连接testuser测试
ssh testuser@172.24.0.15
密码是testuser123 如果连接成功则继续 ( Creating directory '/home/testuser'. )
三. 在jumpserver 中配置 LDAP负责sudo
3.1 拷贝sudo schema,centos版本不一样,可能sudo的版本不是1.8.6,其他的也可以
cp /usr/share/doc/sudo-1.8.6p7/schema.OpenLDAP /etc/openldap/schema/sudo.schema
3.2 修改文件导入schema
vim /etc/openldap/slapd.conf
添加 如下一行:
include /etc/openldap/schema/sudo.schema
3.3 重新生成配置文件,重启slapd
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d/*
systemctl restart slapd.service
3.4 导入sudo.ldif到ldapserver
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f sudo.ldif
#说明:将sudo.ldif中的dc=jicki,dc=com换作你的baseDN
四 testserver设置sudo使用ldap
说明: centos7上sudo使用的ldap配置文件是 /etc/sudo-ldap.conf,sudo版本不同使用的配置文件可能也有所不同,sudo -V | grep 'ldap.conf' 查看
sudo -V | grep 'ldap.conf'
echo -e "uri ldap://172.24.0.14\nSudoers_base ou=Sudoers,dc=jicki,dc=com" > /etc/sudo-ldap.conf
echo "Sudoers: files ldap" >> /etc/nsswitch.conf
4.1 测试sudo
ssh testuser@172.24.0.15
sudo su
whoami
#说明:密码是testuser123,sudo su如果不提示输入密码,则成功
五. 部署jumpserver
5.1 安装mysql数据库,创建库 ( yum 安装 只用于存储信息 CentOS7 mysql 已替换为 mariadb)
yum -y install mariadb mariadb-server mariadb-devel
service mariadb start
mysqladmin -u root password '12345678'
mysql -uroot -p
运行如下命令
create database jumpserver charset='utf8';
grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'mysql123';
grant all on jumpserver.* to 'jumpserver'@'localhost' identified by 'mysql234';
5.2 下载最新Jumpserver项目
yum -y install git
cd /opt
git clone https://github.com/ibuler/jumpserver.git
5.3 安装setuptools 和 pip
yum -y install python-setuptools gcc python-devel ncurses ncurses-devel
easy_install pip
5.4 安装依赖库
cd /opt/jumpserver/docs
pip install -r requirements.txt -i http://pypi.douban.com/simple
-----------------------------------------------------------------------------
Successfully installed readline
Cleaning up...
-----------------------------------------------------------------------------
表示安装完成
5.5 修改Jumpserver配置文件
cd /opt/jumpserver
vim jumpserver.conf
#coding: utf8
[base]
ip = 172.24.0.14
port = 80
key = 88aaaf7ffe3c6c04
[db]
host = 127.0.0.1
port = 3306
user = jumpserver
password = mysql234
database = jumpserver
[ldap]
ldap_enable = 1
host_url = ldap://127.0.0.1:389
base_dn = dc=jicki, dc=com
root_dn = cn=admin,dc=jicki,dc=com
root_pw = jicki123
[websocket]
web_socket_host = 172.24.0.14:3000
[mail]
email_host = smtp.exmail.qq.com
email_port = 25
email_host_user = jicki@qq.com
email_host_password = jicki123
email_use_tls = False
# 说明:
# db里是数据库的设置,相信你看一眼就知道了
# jumpserver中
# key是加密时需要的字符,可以更改但需要是16位
# ldap_host,ldap_base_dn,admin_cn,admin_pass都是与上面ldapserver设置的一致
# admin_cn 对应ldap中的rootdn,必须一致
# admin_pass是ldap的密码,对应ldap.conf中的 rootpw ,必须使用明文
# web_socket_host是websocket的url,把ip改为jumpserver的IP地址,需要修改,3000是默认端口
# [mail] 配置mail服务器,用来发送邮件,本版本添加用户会自动发邮件给用户的email
5.6 修改logs目录权限
cd /opt/jumpserver
mkdir logs
chmod 777 logs
5.7 django sync db 到数据库
cd /opt/jumpserver/
python manage.py syncdb
Would you like to create one now? (yes/no): no
5.8 测试运行
python manage.py runserver 0.0.0.0:80
python log_handler.py
#说明:两个窗口分别打开
5.9 初始化jumpserver浏览器打开
http://172.24.0.14/install
-------------------------------------
成功:安装成功
-------------------------------------
六. 安装node.js为了实现实时监控,使用了node.js来完成websocket
6.1 下载node.js
官方地址:http://www.nodejs.org/download/
wget http://nodejs.org/dist/v0.12.0/node-v0.12.0.tar.gz
6.2 编译安装
yum -y install gcc-c++ bzip2*
tar zxvf node-v0.12.0.tar.gz
cd node-v0.12.0
./configure --prefix=/opt/node/
make && make install
6.3 设置path
vim /etc/profile.d/node.sh
export PATH=$PATH:/opt/node/bin
source /etc/profile.d/node.sh
6.4 安装项目依赖module,或使用下载好的
cd /opt/jumpserver/websocket
npm install # 可能下载需要几分钟,可以更省时
6.5 测试启动websocket
node index.js
说明:新窗口运行
6.6 访问页面
http://172.24.0.14
测试所有功能
七. 收尾工作
7.1 修改sshd配置,禁止密码登录#
vim /etc/sshd/sshd_config
PasswordAuthentication no
service sshd restart
7.2 让用户登录jumpserver自动运行系统
cd /opt/jumpserver/docs
vim jumpserver.sh
...
if [ $USER == 'admin' ] || [ $USER == 'root' ] || [ $USER == 'jicki' ];then # 修改特殊用户,结束后不退出
...
cp jumpserver.sh /etc/profile.d/
7.3 正常运行jumpserver系统
cd /opt/jumpserver/
chmod +x service.sh
./service.sh start #启动
./service.sh stop #关闭
http://172.24.0.14/ 用户名 admin 密码 admin
【转】jumpserver 堡垒机环境搭建(图文详解)的更多相关文章
- jumpserver 堡垒机环境搭建
jumpserver 堡垒机环境搭建(图文详解) https://blog.csdn.net/my_bai/article/details/62226474 http://docs.jumpser ...
- jumpserver 堡垒机环境搭建(图文详解)
摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python编 ...
- jumpserver 堡垒机环境搭建(图文具体解释)
Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 全然开源,GPL授权 Python编写.容易 ...
- 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)
引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
- Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)
这篇博客 是在Scala IDEA for Eclipse里手动创建scala代码编写环境. Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群模式) ...
- 用maven来创建scala和java项目代码环境(图文详解)(Intellij IDEA(Ultimate版本)、Intellij IDEA(Community版本)和Scala IDEA for Eclipse皆适用)(博主推荐)
不多说,直接上干货! 为什么要写这篇博客? 首先,对于spark项目,强烈建议搭建,用Intellij IDEA(Ultimate版本),如果你还有另所爱好尝试Scala IDEA for Eclip ...
- 【必知必会】手把手教你配置MySQL环境变量——图文详解
一.先决条件 假设我们已经成功安装MySQL数据库.如果还有小伙伴不知道如何安装MySQL数据库,可以在本文下留言,留言数超20,则出一期"手把手教你安装MySQL数据库--图文详解&quo ...
- Mybatis简介、环境搭建和详解
简介: 1.Mybatis 开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github 2.作用: 数据访问层框架 2.1 底层是对JDBC的封装 3.myb ...
随机推荐
- web前端优化
在谈到Web优化之前,我们回到一个更原始的问题,Web前端的本质是什么.我的理解是: 将信息快速并友好的展示给用户并能够与用户进行交互.快速的意思就是在尽可能短的时间内完成页面的加载,试想一下当你在淘 ...
- 河南省第四届ACM省赛(T1) 序号互换
问题 A: 序号互换 时间限制: 1 Sec 内存限制: 128 MB难度1 题目描述 Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐标快速计算出来.单元格的行坐标是由数字编 ...
- nexus和maven的安装与配置
如果用普通用户安装就需要创建用户 属组例 groupadd configer //创建用户组 useradd -g configer configer //创建用户并指定用户组 passwd co ...
- 构建工具 —— Groovy 与 Gradle
1. Gradle Gradle 是一个基于 Groovy 的构建工具,使用 Groovy 来编写构建脚本,类似 maven,支持依赖管理和多项目创建. 相比 maven,更轻量: windows c ...
- 【转载】 从ACM会议看中国大陆计算机科学与国外的差距
ps: 这是一篇06年的文章,与今日的国内计算机行业学术圈环境简直是天翻地覆,很不错的history,值得mark下,今日的cs学术发展十号是坏不发表意见,但是history是值得对比,借鉴,思考 ...
- Unity 3D中ToLua-UGUI使用说明、导入Unity流程、制作登陆界面
ToLua制作登录界面 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 请支持大神开发者:骏擎CP,蒙哥等奔 ...
- 2018.4.23 git删除已经add的文件
使用 git rm 命令即可,有两种选择, 一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除: 一种是 git rm --f " ...
- CentOS安装LibreOffice
查找yum源的安装包$ yum search libreoffice 查看yum源上安转包基本信息$ yum info libreoffice可安装的软件包名称 :libreoffice架构 :x86 ...
- 实验吧—密码学——WP之 古典密码
首先我们研究题目 1.古典密码 2.key值的固定结构 3.加密方式就在谜面里 首先看到这些数字我们就能想到ASCII,而且做题多了就能看出123是{:125是},所以得到字符串如下 OCU{CFTE ...
- GinKgoCTF-Crypto
一:古典密码 一只小羊跳过了栅栏,密码如下: GpKlCeT_FC{rAy_pStiym} 栅栏解密——>11栏 二:滴滴滴 --./-.-/-.-./-/..-./----.--/-../.. ...