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. HDU 4704 Sum(隔板原理+组合数求和公式+费马小定理+快速幂)

    题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=4704 Problem Description   Sample Input 2 Sample Outp ...

  2. ORACLE提示表名无效

    在创建ORACLE数据库时,创建表 提示表名无效 请查看数据库表名是否出现了小写字母或者关键字,如USER

  3. 2.22 JS处理富文本

    2.22 JS处理富文本 前言    <富文本>这篇解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的问题一.加 ...

  4. ROI-Align解决方案

    https://yq.aliyun.com/articles/558181 Mask R-CNN与Faster R-CNN相似,Faster R-CNN是two-stage的,其中第一个stage是R ...

  5. Failed to start component [StandardEngine[Catalina].stadardHost[loclahost].StandardContent[/GarageMgtB]]

    错误如图: 新导入的一个web工程,在problems中显示错误是:Target runtime Apache Tomcatv8.0 is not defined. 终于找到解决方法.方法是:在工程目 ...

  6. java-方法重写的注意事项

    1.父类中私有方法不能被重写.因为父类的私有方法子类根本就无法继承. 2.子类重写父类方法时,访问权限不能更低.最好就一致. 3.父类静态方法,子类也必须通过静态方法进行重写.其实这个算不上方法重写, ...

  7. Liunx----vi编辑器

    关于vi编辑器基本的用法总结如下: vi是linux下的一款文编编辑器. 进入vi的方法:在系统启动起来后,直接键入vi或vi 文件名: 进去后输入内容方法:输入a或i,切换到编辑模式: 退出编辑模式 ...

  8. 【mybatis源码学习】调试mybatis的第一个程序

    [一].基础知识准备 mybatis-config.xml配置文件的结构 MyBatis配置文件中大标签configuration下子标签包括: configuration |--- properti ...

  9. Java中的继承抽象类和接口

    一.总结 1.使用extends关键字继承,eg: class Student extends Persion { ...}; 2.Java编程规范中类的首字母大写,方法的首字母小写单词首字母代谢,e ...

  10. Web读取指定的config文件的内容

    需求: 什么时候会用到动态改变Web.config内的值? 在Web.config定义了一个全局设置值A,因为程序运行中满足了某个条件,要将A的值改变 Web.config中定义: <appSe ...