1 说明
此为国产开源包,项目信息如下,虽然bug多多,不过在此基础上二次开发也省了一些路子,此文章非原创,出自此开源项目作者自己的博客:
软件包:http://pan.baidu.com/s/1i3kne6p
论坛: http://bbs.jumpserver.org
项目地址:https://github.com/ibuler/jumpserver
博客地址: http://laoguang.blog.51cto.com/
部署步骤环境: centos6.6 mini安装 iptables selinux已经关闭
jumpserver: 192.168.231.224
testserver: 192.168.231.222
2 部署ldapserver
# yum install -y openldap openldap-servers openldap-clients openldap-devel
# 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
## 数据库的配置文件
# vim /etc/openldap/slapd.conf
…
loglevel 1
…
suffix “dc=zhoufengjie,dc=cn”
rootdn “cn=admin,dc=zhoufengjie,dc=cn”
rootpw TyumenPassword
…
#说明: loglevel:设置日志级别 suffix:其实就是BaseDN rootdn: 超级管理员的dn rootpw: 超级管理员的密码
# vim /etc/rsyslog.conf
local4.* /var/log/ldap.log # local7.*下添加一行
# service rsyslog restart
# 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是重新生成新的配置文件
可以使用migrationtools导出框架,(也可以用我们的:http://download.zhoufengjie.cn/software/tools/jumpserver/jump.tar.gz). base.ldif,group.ldif,passwd.ldif 将其中的dc=zhoufengjie,dc=cn替换成你的baseDN(sed -i ‘s/zhoufengjie/你的DN/g’ *.ldif ; sed -i ‘s/dc=cn/dc=你的DN/g’ *.ldif),然后导入,密码是rootpw设置的密码
# ldapadd -x -W -D “cn=admin,dc=zhoufengjie,dc=cn” -f base.ldif
# ldapadd -x -W -D “cn=admin,dc=zhoufengjie,dc=cn” -f group.ldif
# ldapadd -x -W -D “cn=admin,dc=zhoufengjie,dc=cn” -f passwd.ldif
#说明:测试用户是ldapuser 密码是testuser123,可以用下面的命令查询ldap里面的内容:ldapsearch -x -D “cn=admin,dc=zhoufengjie,dc=cn” -w “TyumenPassword” -b “dc=zhoufengjie,dc=cn”
3 testserver部署ldapclient
# yum -y install openldap openldap-clients nss-pam-ldapd pam_ldap
# echo “session required pam_mkhomedir.so skel=/etc/skel umask=0077″ >> /etc/pam.d/system-auth
# authconfig –savebackup=auth.bak
# authconfig –enableldap –enableldapauth –enablemkhomedir –enableforcelegacy –disablesssd –disablesssdauth –ldapserver=192.168.231.224 –ldapbasedn=”dc=zhoufengjie,dc=cn” –update
# yum -y install openldap openldap-clients nss_ldap
# echo “session required pam_mkhomedir.so skel=/etc/skel umask=0077″ >> /etc/pam.d/system-auth
# authconfig –enableldap –enableldapauth –enablemkhomedir –ldapserver=192.168.231.224 –ldapbasedn=”dc=zhoufengjie,dc=cn” –update
# ssh ldapuser@192.168.231.222
# 密码是testuser123如果连接成功则继续
4 LDAP负责sudo
在服务器端操作,centos版本不一样,可能sudo的版本不是1.8.6,其他的也可以,根据你的版本改对应的路径做copy;
# cp /usr/share/doc/sudo-1.8.6p3/schema.OpenLDAP /etc/openldap/schema/sudo.schema
# vim /etc/openldap/slapd.conf
include /etc/openldap/schema/sudo.schema
# 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
# ldapadd -x -W -D “cn=admin,dc=zhoufengjie,dc=cn” -f sudo.ldif
#说明:将sudo.ldif中的dc=zhoufengjie,dc=cn换作你的baseDN
说明: 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,下面应该做出对应改变
…
# echo -e “uri ldap://192.168.231.224\nSudoers_base ou=Sudoers,dc=zhoufengjie,dc=cn” > /etc/sudo-ldap.conf
# echo “Sudoers: files ldap” >> /etc/nsswitch.conf
# echo “Sudoers_base ou=Sudoers,dc=zhoufengjie,dc=cn” >> /etc/ldap.conf
# echo “Sudoers: files ldap” >> /etc/nsswitch.conf
# ssh ldapuser@192.168.231.222
# sudo su
#说明:密码是testuser123,sudo su如果不提示输入密码,则成功
5 部署phpldapadmin管理ldap
最新的软件包的下载地址如下,这里不赘述,有需要通过界面管理的自己查看: http://sourceforge.net/projects/phpldapadmin/files/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.zip/download
6 部署jumpserver
# 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 ‘mysqlTyumen’;
mysql> grant all on jumpserver.* to ‘jumpserver’@’localhost’ identified by ‘mysqlTyumen’;
# yum -y install git
# cd /opt
# git clone https://github.com/ibuler/jumpserver.git
# cd jumpserver
# yum -y install xz gcc automake autoconf
# tar xvf Python-2.7.6.tar.xz && cd Python-2.7.6
#说明,在上面下载的压缩包里面包含了此python版本;
# ./configure && make && make install
# mv /usr/bin/python /usr/bin/python.default
# ln -s /usr/local/bin/python /usr/bin/python
# vim /usr/bin/yum
!/usr/bin/python.default
#说明:centos6下yum使用python2.6,centos5下yum使用python2.4,否则报错
# tar xvf pypa-setuptools-8e8c50925f18.tar.gz && cd pypa-setuptools-8e8c50925f18 && python setup.py install
# tar xvf pip-1.5.6.tar.gz && cd pip-1.5.6 && python setup.py install
# cd /opt/jumpserver/scripts
# pip2.7 install -r requirements.txt -i http://pypi.douban.com/simple
#说明:如果报错请手动安装每个模块
# cd ..
# vim jumpserver.conf
[db]
host = 127.0.0.1
port = 3306
user = jumpserver
password = mysqlTyumen
db = jumpserver
[jumpserver]
key = 88aaaf7ffe3c6c04
ldap_host = ldap://127.0.0.1:389
ldap_base_dn = dc=zhoufengjie,dc=cn
admin_cn = cn=admin,dc=zhoufengjie,dc=cn
admin_pass = TyumenPassword
web_socket_host = 192.168.231.224:3000
# 说明:
# 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是默认端口
# chmod 777 logs
# cd /opt/jumpserver/webroot/AutoSa
# python manage.py syncdb
Would you like to create one now? (yes/no): no
# python manage.py runserver 0.0.0.0:80
# python log_handler.py
#说明:两个窗口分别打开
http://192.168.231.224/install
显示安装成功测继续
7 安装node.js
为了实现实时监控,使用了node.js来完成websocket
官方地址:http://www.nodejs.org/download/ 或 使用压缩包提供的源码(node-v0.10.33.tar.gz) 或 使用压缩包编译好的rpm(node-0.10.33-1.x86_64.rpm,适用于centos6 x86_64,跳过编译安装和设置path,如果使用rpm包的话,就跳过下一个编译项目)
# ./configure –prefix=/opt/node/ && make && make install
# vim /etc/profile.d/node.sh
export PATH=$PATH:/opt/node/bin
# source /etc/profile.d/node.sh
可以使用下载的包里面的软件,如果不用的话通过如下方式进行下载
# cd /opt/jumpserver/webroot/AutoSa/websocket
# npm install
# 可能下载需要几分钟,可以更省时
#说明:如果使用已经下载好的,将node_modules.tar.bz2 移动到/opt/jumpserver/webroot/AutoSa/websocket
# tar xvf node_modules.tar.bz2
# node index.js
#说明:新窗口运行,如果开启了iptables确保放行3000端口
8 测试jumpserver
截图见原作者blog:http://laoguang.blog.51cto.com/6013350/1576502
6.1 登录 账号密码都是admin
6.2 添加属组
6.3 添加用户
6.4 添加IDC
6.5 添加主机
6.6 添加权限
6.7 查看权限
6.8 测试登录
6.9 下载key
6.10 导入key并登录xshell导入 Tools –> User Key Manager –> import –> 输入密码
6.11 登录
6.12 测试登录测试主机
# python /opt/jumpserver/jumpserver.py
#说明:p/P显示有权限主机ip E/e多主机执行命令 Q/q退出 输入ip或部分ip登录
6.13 显示有权限主机
6.14 多主机执行命令,逗号分隔 # 这里就一台主机
6.15 登录
6.16 查看sudo
6.17 修改sudo
6.18 测试sudo
6.19 测试监控 刷新,
6.20 结束session
6.21 查看统计日志 刷新,
6.22 用户测试上传下载
6.23 修改登录密码
9 收尾
如果一切没问题后,开始收尾
7.1 修改sshd配置,禁止密码登录
# vim /etc/sshd/sshd_config
…
PasswordAuthentication no
…
# service sshd restart
7.2 让用户登录jumpserver自动运行系统
# cd /opt/jumpserver/scripts
# vim jumpserver.sh
…
if [ $USER == ‘guanghongwei’ ];then
# 修改特殊用户,结束后不退出
…
# cp jumpserver.sh /etc/profile.d/
7.3 正常运行jumpserver系统
# cd /opt/jumpserver/
# ./runserver#说明:如果想结束系统
# ./stopserver
为了方便大家保存,www.zhoufengjie.cn上面的文章尽量都会做成pdf文档形式方便大家留存,尽最大方便给大家提供服务,本文文档(word原始文档)下载地址:点击下载