当前位置: 首页 > news >正文

开源跳板机(堡垒机)Jumpserver v0.2.0 部署篇

201601 更新:新版本3.0已经发布,此文档已经不适用最新版本。

见:https://github.com/jumpserver/jumpserver



更新:一键安装脚本 http://laoguang.blog.51cto.com/6013350/1640090

更新: 安装常见问题FAQ http://bbs.jumpserver.org/read.php?tid=22&fid=2

更新: 安装视频 http://v.youku.com/v_show/id_XOTM5OTk3MDU2.html?from=y1.7-1.2


** 部署完成后去 看使用说明文档:  http://laoguang.blog.51cto.com/6013350/1636708 **

* 强烈建议第一遍所有密码账号等与文档相同 **

官网: http://www.jumpserver.org

论坛: http://bbs.jumpserver.org

demo: http://demo.jumpserver.org

更新log: http://laoguang.blog.51cto.com/6013350/1635853

百度云相关软件: http://pan.baidu.com/s/1i3kne6p

交流群:399218702

项目地址:https://github.com/ibuler/jumpserver

博客地址:http://laoguang.blog.51cto.com/


如果您对该项目感兴趣,熟悉Django或前端编程,加入我们吧! ibuler@qq.com

环境说明:

Centos6.5 mini , iptables, selinux关闭

jumpserver: 192.168.20.130

测试机testserver: 192.168.20.131


. 部署ldapserver

1.1 安装ldapserver

# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 

# yum install -y vim automake autoconf gcc xz ncurses-devel \

 patch python-devel git python-pip gcc-c++  # 安装基本环境,后面依赖

# yum install -y openldap openldap-servers openldap-clients openldap-devel

1.2 准备配置文件

# 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=jumpserver,dc=org"  rootdn          "cn=admin,dc=jumpserver,dc=org"  rootpw          secret234  ...  #说明:  loglevel:设置日志级别  suffix:其实就是BaseDN  rootdn: 超级管理员的dn  rootpw: 超级管理员的密码  

1.4 修改系统日志配置文件

# vim /etc/rsyslog.conf  local4.*          /var/log/ldap.log   

 # local7.*下添加一行

# service rsyslog restart

1.5 启动slapd, 查看启动情况

# service slapd start

# 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/

# service slapd restart

# netstat -tulnp | grep slapd  #说明:第一次启动生会初始化ldap数据库,在/var/lib/ldap中,如果想删除ldap数据库就删除该目录,保留DB_CONFIG配置文件。新版的ldap使用的是/etc/openldap/slapd.d 下的配置文件,删除原来的配置文件,slaptest是重新生成新的配置文件

1.6 导入ldif数据库框架和测试用户,可以使用migrationtools导出框架,也可以用我导出好的. 

base.ldif,group.ldif,passwd.ldif 将其中的dc=jumpserver,dc=org替换成你的baseDN,然后导入,密码是rootpw设置的 secret234  这些文件百度云中下载  http://pan.baidu.com/s/1i3kne6p

# ldapadd -x -W -D "cn=admin,dc=jumpserver,dc=org" -f base.ldif

# ldapadd -x -W -D "cn=admin,dc=jumpserver,dc=org" -f group.ldif

# ldapadd -x -W -D "cn=admin,dc=jumpserver,dc=org" -f passwd.ldif


. testserver部署ldapclient

--- CentOS6设置 ---

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=192.168.20.130 --ldapbasedn="dc=jumpserver,dc=org" --update

--- CentOS5设置 ---

2.1 安装LDAP客户端

# yum -y install openldap openldap-clients nss_ldap

2.2 设置自动创建目录# echo "session required pam_mkhomedir.so skel=/etc/skel umask=0077" >> /etc/pam.d/system-auth

2.3 设置使用LDAP认证

# authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=192.168.20.130 --ldapbasedn="dc=jumpserver,dc=org" --update

2.4 从jumpserver连接testuser测试# ssh testuser@192.168.20.131  # 密码是testuser123 如果连接成功则继续

生产中部署注意建立灾备账户这里就不再说明


. LDAP负责sudo

3.1 拷贝sudo schema,centos版本不一样,可能sudo的版本不是1.8.6,其他的也可以

# cp /usr/share/doc/sudo-1.8.6p3/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/* 

# service slapd restart

3.4 导入sudo.ldif到ldapserver

# ldapadd -x -W -D "cn=admin,dc=jumpserver,dc=org" -f sudo.ldif  #说明:将sudo.ldif中的dc=jumpserver,dc=org换作你的baseDN

3.5 testserver设置sudo使用ldap

 说明: centos6上sudo-1.7.4p5的使用的ldap配置文件是 /etc/sudo-ldap.conf,sudo版本不同使用的配置文件可能也有所不同,sudo -V | grep 'ldap.conf' 查看

# sudo -V | grep 'ldap.conf'   

...

ldap.conf path: /etc/sudo-ldap.conf  # 已知有的版本是 /etc/nslcd.conf,下面应该做出对应改变...

--- CentOS6 ---

# echo -e "uri ldap://192.168.20.130\nSudoers_base ou=Sudoers,dc=jumpserver,dc=org" > /etc/sudo-ldap.conf 

# echo "Sudoers: files ldap" >>  /etc/nsswitch.conf

--- CentOS5 ---

# echo "Sudoers_base ou=Sudoers,dc=jumpserver,dc=org" >> /etc/ldap.conf

# echo "Sudoers: files ldap" >> /etc/nsswitch.conf

3.6 测试sudo

# ssh testuser@192.168.20.131

# sudo su  #说明:密码是testuser123,sudo su如果不提示输入密码,则成功


3.7 删除测试用户

# ldapdelete -x -D "cn=admin,dc=jumpserver,dc=org" -w secret234 "uid=testuser,ou=People,dc=jumpserver,dc=org"

# ldapdelete -x -D "cn=admin,dc=jumpserver,dc=org" -w secret234 "cn=testuser,ou=Sudoers,dc=jumpserver,dc=org"


. 部署jumpserver

4.1 安装mysql数据库,创建库

# yum -y install mysql mysql-server mysql-devel

# service mysqld start

# mysql

mysql> create database jumpserver charset='utf8';

mysql> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'mysql234';

4.2 下载最新Jumpserver项目

# cd /opt

# git clone https://github.com/ibuler/jumpserver.git 

# cd jumpserver

4.3 安装依赖模块

# cd /opt/jumpserver/docs

# rm -rf /usr/lib64/python2.6/site-packages/Crypto # 不是mini安装,默认带的版本不兼容

# pip install -r requirements.txt

#  说明:如果报错请手动安装每个模块4.4 修改Jumpserver配置文件

# cd ..

# vim jumpserver.conf    #coding: utf8    [base]    ip = 192.168.20.130    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=jumpserver, dc=org    root_dn = cn=admin,dc=jumpserver,dc=org    root_pw = secret234    [websocket]    web_socket_host = 192.168.20.130:3000    [mail]    email_host = smtp.exmail.qq.com    email_port = 25    email_host_user = noreply@jumpserver.org    email_host_password = jumpserver123    email_use_tls = False    # 说明:    # [base] ip, port是访问web的ip和端口号, key是用来加密的随机字符串,如果更改请确保是16位    # [db]里是数据库的设置,相信你看一眼就知道了    # [ldap] ldap_enable启用ldap, host_url是ldapserver的地址, base_dn root_dn root_pw与前面配置的ldapserver保持一致    # [websocket] websocket的地址,是允许node index.js程序的服务器地址,通常和web运行在一起,端口号默认是 3000    # [mail] 配置mail服务器,用来发送邮件,本版本添加用户会自动发邮件给用户的email

4.5 建立logs目录并修改权限

# cd /opt/jumpserver/

# mkdir logs; chmod 777 logs

4.6 django sync db 到数据库

# python manage.py syncdb  Would you like to create one now? (yes/no): no

4.7 测试运行

# python manage.py runserver 0.0.0.0:80 

# cd /opt/jumpserver/

# python log_handler.py  #说明:两个窗口分别打开

4.8 初始化jumpserver浏览器打开 http://192.168.1.209/install

显示安装成功测继续


. 安装node.js

为了实现实时监控,使用了node.js来完成websocket

5.1 yum安装node.js 

# yum -y install nodejs npm  # 好多依赖啊

# cd websocket

# npm install  #说明:可能下载需要几分钟,也可以使用我已经下载好的模块,将node_modules.tar.bz2 移动websocket目录解压即可  # tar xvf node_modules.tar.bz2 # 如果运行上面的install可以不解压提供的模块

5.2 测试启动websocket 

# cd /opt/jumpserver/websocket

# node index.js


. 使用jumpserver

见:  http://laoguang.blog.51cto.com/6013350/163670

6.1 登陆 账号密码: admin admin

6.2 新建部门

6.3 新建用户

6.4 新建IDC

6.5 添加主机

6.6 建立用户组

6.7 建立主机组

6.8 将主机组授权给用户组

6.9 授权sudo

6.10 新建部门管理员

6.11 授权主机给部门

6.12 部门管理员登陆

6.13 部门管理员添加用户和授权

6.14 查看监控

6.15 查看统计

6.16 普通用户登录


. 收尾

7.1 修改sshd配置,禁止密码登录

# vim /etc/sshd/sshd_config  ...  PasswordAuthentication no  ...# service sshd restart

7.2 让用户登录jumpserver自动运行系统

# cd /opt/jumpserver/docs 

# vim zzjumpserver.sh  ...  if [ $USER == 'guanghongwei' ];then   # 修改特殊用户,结束后不退出,便于维护  ...

# cp zzjumpserver.sh /etc/profile.d/

7.3 正常运行jumpserver系统

# cd /opt/jumpserver/

# ./service.sh start    #说明:如果想结束系统 ./service.sh stop ;    # 什么没有运行? 那你有没有加执行权限?


. 生产注意情况

8.1 每台服务器最好建立灾备用户,以防由于网络等情况连接不上ldap服务器导致影响维护

8.2 ldap server建立主从或者镜像, 这部分内容已超出本话题 客户端指定时需要写上两台的地址--ldapserver=192.168.20.130,192.168.20.xxx

8.3 数据库备份或主从

8.4 nginx + uwsgi + django 运行,上面的server.sh是开发模式,只能单并发


官网: http://www.jumpserver.org


相关文章:

  • ​ubuntu下安装kvm虚拟机
  • 软件工程结队项目——智能点餐系统典型用户及用户场景分析
  • dotTrace 6.1帮你理解SQL查询如何影响应用性能
  • 开始python学习了
  • 用php获取本周,上周,本月,上月,本季度日期的代码,方法得到各种日期。
  • 课堂练习-找水桶(4.24)
  • gitolite 向 gitlab 迁移
  • 推荐搜索引擎及搜索技巧
  • AWK 学习笔记
  • Java中List的排序和List的MAp
  • 二十二,数学运算相关的类
  • javascript中的this
  • Github Pages 静态网页建站
  • 2301: [HAOI2011]Problem b
  • poj 1251 统计难题(字典树)
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Android Studio:GIT提交项目到远程仓库
  • CentOS7简单部署NFS
  • Node 版本管理
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • SQLServer之创建显式事务
  • 仿天猫超市收藏抛物线动画工具库
  • 构建工具 - 收藏集 - 掘金
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 马上搞懂 GeoJSON
  • 那些被忽略的 JavaScript 数组方法细节
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前端面试之闭包
  • 区块链分支循环
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • Mac 上flink的安装与启动
  • ​渐进式Web应用PWA的未来
  • #include
  • #Ubuntu(修改root信息)
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (九)c52学习之旅-定时器
  • (三)终结任务
  • (十八)三元表达式和列表解析
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)Controller接口控制器详解(三)
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET 8.0 中有哪些新的变化?
  • .NET Framework杂记
  • ?.的用法
  • @SentinelResource详解
  • []C/C++读取串口接收到的数据程序
  • [BJDCTF2020]The mystery of ip
  • [bzoj 3534][Sdoi2014] 重建
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [JavaEE] 线程与进程的区别详解
  • [Kubernetes]9. K8s ingress讲解借助ingress配置http,https访问k8s集群应用
  • [LeetCode] 2.两数相加