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 堡垒机环境搭建(图文详解)的更多相关文章

  1. jumpserver 堡垒机环境搭建

    jumpserver 堡垒机环境搭建(图文详解) https://blog.csdn.net/my_bai/article/details/62226474   http://docs.jumpser ...

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

    摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python编 ...

  3. jumpserver 堡垒机环境搭建(图文具体解释)

    Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 全然开源,GPL授权 Python编写.容易 ...

  4. 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)

    引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...

  5. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  6. Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)

    这篇博客 是在Scala IDEA for Eclipse里手动创建scala代码编写环境. Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群模式) ...

  7. 用maven来创建scala和java项目代码环境(图文详解)(Intellij IDEA(Ultimate版本)、Intellij IDEA(Community版本)和Scala IDEA for Eclipse皆适用)(博主推荐)

    不多说,直接上干货! 为什么要写这篇博客? 首先,对于spark项目,强烈建议搭建,用Intellij IDEA(Ultimate版本),如果你还有另所爱好尝试Scala IDEA for Eclip ...

  8. 【必知必会】手把手教你配置MySQL环境变量——图文详解

    一.先决条件 假设我们已经成功安装MySQL数据库.如果还有小伙伴不知道如何安装MySQL数据库,可以在本文下留言,留言数超20,则出一期"手把手教你安装MySQL数据库--图文详解&quo ...

  9. Mybatis简介、环境搭建和详解

    简介: 1.Mybatis  开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github 2.作用: 数据访问层框架 2.1  底层是对JDBC的封装 3.myb ...

随机推荐

  1. web前端优化

    在谈到Web优化之前,我们回到一个更原始的问题,Web前端的本质是什么.我的理解是: 将信息快速并友好的展示给用户并能够与用户进行交互.快速的意思就是在尽可能短的时间内完成页面的加载,试想一下当你在淘 ...

  2. 河南省第四届ACM省赛(T1) 序号互换

    问题 A: 序号互换 时间限制: 1 Sec  内存限制: 128 MB难度1 题目描述 Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐标快速计算出来.单元格的行坐标是由数字编 ...

  3. nexus和maven的安装与配置

    如果用普通用户安装就需要创建用户 属组例 groupadd configer  //创建用户组 useradd -g configer configer  //创建用户并指定用户组 passwd co ...

  4. 构建工具 —— Groovy 与 Gradle

    1. Gradle Gradle 是一个基于 Groovy 的构建工具,使用 Groovy 来编写构建脚本,类似 maven,支持依赖管理和多项目创建. 相比 maven,更轻量: windows c ...

  5. 【转载】 从ACM会议看中国大陆计算机科学与国外的差距

    ps:   这是一篇06年的文章,与今日的国内计算机行业学术圈环境简直是天翻地覆,很不错的history,值得mark下,今日的cs学术发展十号是坏不发表意见,但是history是值得对比,借鉴,思考 ...

  6. Unity 3D中ToLua-UGUI使用说明、导入Unity流程、制作登陆界面

    ToLua制作登录界面 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 请支持大神开发者:骏擎CP,蒙哥等奔 ...

  7. 2018.4.23 git删除已经add的文件

    使用 git rm 命令即可,有两种选择, 一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除: 一种是 git rm --f " ...

  8. CentOS安装LibreOffice

    查找yum源的安装包$ yum search libreoffice 查看yum源上安转包基本信息$ yum info libreoffice可安装的软件包名称 :libreoffice架构 :x86 ...

  9. 实验吧—密码学——WP之 古典密码

    首先我们研究题目 1.古典密码 2.key值的固定结构 3.加密方式就在谜面里 首先看到这些数字我们就能想到ASCII,而且做题多了就能看出123是{:125是},所以得到字符串如下 OCU{CFTE ...

  10. GinKgoCTF-Crypto

    一:古典密码 一只小羊跳过了栅栏,密码如下: GpKlCeT_FC{rAy_pStiym} 栅栏解密——>11栏 二:滴滴滴 --./-.-/-.-./-/..-./----.--/-../.. ...