设为首页 收藏本站
查看: 3929|回复: 0

[经验分享] Jumpserver v2.0.0 部署篇

[复制链接]
累计签到:77 天
连续签到:1 天
发表于 2015-12-31 08:54:25 | 显示全部楼层 |阅读模式
环境说明:
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/ ... ease-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  
#说明:测试用户是testuser 密码是testuser123,只是说明并非现在测试,后面会用到。

二. testserver部署ldapclient
--- CentOS 6 client设置 ---
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

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

注:ldap的client端不能去掉密码登录,否则登录报Authentication Error , 认证失败。

--- CentOS 5 client设置 ---
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的client端不能去掉密码登录,否则登录报Authentication Error , 认证失败。

三. Server端: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 Client端: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,下面应该做出对应改变...

--- CentOS 6 ---
# 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

--- CentOS 5 ---
# 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.163.com
email_port = 25   

email_host_user = jumpserver@163.com
email_host_password = jumpserver123
email_use_tls = False   

# 说明:   
# [base] ip, port是访问web的ip和端口号, key是用来加密的随机字符串,如果更改请确保是16位
# 线上部署时,安全问题,请修改key
# [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.20.130/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.iyunv.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是开发模式,只能单并发       

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-158669-1-1.html 上篇帖子: Jumpserver v2.0.0 更新Log 下篇帖子: jumpserver 2.0.0 一键安装包[2015.10.01更新]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表