php开源堡垒机,开源跳板机(堡垒机)Jumpserver v2.0.0 部署篇

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

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

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

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

交流群:399218702

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

环境说明:

Centos6.5mini,iptables,selinux关闭

jumpserver:192.168.20.130

测试机testserver:192.168.20.131

一.部署ldapserver

1.1安装ldapserver

# rpm -ivhhttp://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...loglevel1...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.conflocal4.*/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.confinclude/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.5testserver设置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 "urildap://192.168.20.130\nSudoers_baseou=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

# 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.130port=80key=88aaaf7ffe3c6c04[db]host=127.0.0.1port=3306user=jumpserver

password=mysql234

database=jumpserver[ldap]ldap_enable=1host_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=25email_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.6django sync db 到数据库

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

4.7测试运行

# python manage.py runserver0.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.1yum安装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

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.2ldap server建立主从或者镜像,这部分内容已超出本话题

客户端指定时需要写上两台的地址--ldapserver=192.168.20.130,192.168.20.xxx

8.3数据库备份或主从

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值