----- 更新 --------------------------------------------
新版本見 :http://laoguang.blog.51cto.com/6013350/1636273
下面的文檔已經不适合新版本,請忽略
------- end -------------------------------------------
更新說明:http://laoguang.blog.51cto.com/6013350/1576502
軟體包:http://pan.baidu.com/s/1i3kne6p
有疑問加群:399218702
論壇: http://bbs.jumpserver.org
項目位址:https://github.com/ibuler/jumpserver
示範視訊:http://v.youku.com/v_show/id_XODI3Mjg1ODk2.html
部落格位址: http://laoguang.blog.51cto.com/
如果您對該項目感興趣,熟悉Django或前端程式設計,加入我們吧! [email protected]
部署步驟
環境: centos6.5 mini安裝 iptables selinux已經關閉
jumpserver: 192.168.1.209
testserver: 192.168.1.210
一. 部署ldapserver
1.1 安裝ldapserver
# 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=yolu,dc=com"
rootdn "cn=admin,dc=yolu,dc=com"
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=yolu,dc=com替換成你的baseDN,然後導入,密碼是rootpw設定的密碼
# ldapadd -x -W -D "cn=admin,dc=yolu,dc=com" -f base.ldif
# ldapadd -x -W -D "cn=admin,dc=yolu,dc=com" -f group.ldif
# ldapadd -x -W -D "cn=admin,dc=yolu,dc=com" -f passwd.ldif
#說明:測試使用者是testuser 密碼是testuser123
二. 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.1.209 --ldapbasedn="dc=yolu,dc=com" --update
--- CentOS5設定 ---
# yum -y install openldap openldap-clients nss_ldap
# 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.1.209 --ldapbasedn="dc=yolu,dc=com" --update
2.4 從jumpserver連接配接testuser測試
# ssh [email protected]
# 密碼是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
# 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=yolu,dc=com" -f sudo.ldif
#說明:将sudo.ldif中的dc=yolu,dc=com換作你的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.1.209\nSudoers_base ou=Sudoers,dc=yolu,dc=com" > /etc/sudo-ldap.conf
# echo "Sudoers: files ldap" >> /etc/nsswitch.conf
--- CentOS5 ---
# echo "Sudoers_base ou=Sudoers,dc=yolu,dc=com" >> /etc/ldap.conf
# echo "Sudoers: files ldap" >> /etc/nsswitch.conf
3.6 測試sudo
# ssh [email protected]
# sudo su
#說明:密碼是testuser123,sudo su如果不提示輸入密碼,則成功
四. 部署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';
mysql> grant all on jumpserver.* to 'jumpserver'@'localhost' identified by 'mysql234';
4.2 下載下傳最新Jumpserver項目
# yum -y install git# cd /opt
# git clone https://github.com/ibuler/jumpserver.git
# cd jumpserver
4.3 安裝Python2.7.6
# yum -y install xz gcc automake autoconf ncurses-devel patch
# tar xvf Python-2.7.6.tar.xz && cd Python-2.7.6
# ./configure && make && make install
# mv /usr/bin/python /usr/bin/python.bak
# ln -s /usr/local/bin/python /usr/bin/python
# vim /usr/bin/yum
#!/usr/bin/python2.6
#說明:yum使用python2.6,否則報錯
4.4 安裝setuptools 和 pip
# 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
4.5 安裝依賴庫
# cd /opt/jumpserver/scripts
# pip2.7 install -r requirements.txt -i http://pypi.douban.com/simple
#說明:如果報錯請手動安裝每個子產品
4.6 修改Jumpserver配置檔案
# cd ..
# vim jumpserver.conf
[db]
host = 127.0.0.1
port = 3306
user = jumpserver
password = mysql234
db = jumpserver
[jumpserver]
key = 88aaaf7ffe3c6c04
ldap_host = ldap://127.0.0.1:389
ldap_base_dn = dc=yolu,dc=com
admin_cn = cn=admin,dc=yolu,dc=com
admin_pass = secret234
web_socket_host = 192.168.1.209: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是預設端口
4.7 修改logs目錄權限
# chmod 777 logs
4.8 django sync db 到資料庫
# cd /opt/jumpserver/webroot/AutoSa
# python manage.py syncdb
Would you like to create one now? (yes/no): no
4.9 測試運作
# python manage.py runserver 0.0.0.0:80
# python log_handler.py
#說明:兩個視窗分别打開
4.10 初始化jumpserver浏覽器打開
http://192.168.1.209/install
顯示安裝成功測繼續
部落格位址:http://laoguang.blog.51cto.com/
五. 安裝node.js為了實作實時監控,使用了node.js來完成websocket
5.1 下載下傳node.js
官方位址:http://www.nodejs.org/download/
或
使用我提供的源碼
使用我編譯好的rpm,适用于centos6 x86_64,跳過編譯安裝和設定path
5.2 編譯安裝
# ./configure --prefix=/opt/node/ && make && make install
5.3 設定path
# vim /etc/profile.d/node.sh
export PATH=$PATH:/opt/node/bin
# source /etc/profile.d/node.sh
5.4 安裝項目依賴module,或使用下載下傳好的
# cd /opt/jumpserver/webroot/AutoSa/websocket
# npm install # 可能下載下傳需要幾分鐘,可以更省時
#說明:使用已經下載下傳好的,将node_modules.tar.bz2 移動到/opt/jumpserver/webroot/AutoSa/websocket
# tar xvf node_modules.tar.bz2
5.5 測試啟動websocket
# node index.js
#說明:新視窗運作,如果開啟了iptables確定放行3000端口
------------------------------編譯nodejs報錯-----------------------------
/src/node-v0.10.33/out/Release/openssl-cli] error 69
make[1]: Leaving directory `/home/wenba/software/src/node-v0.10.33/out'
make: *** [node] error 2
解決方案:
在安裝Python2.7之前:
yum install gcc-c++
yum install bzip2*
編譯安裝python
編譯安裝後編譯安裝 zlib子產品
cd Python-2.7.3/Modules/zlib
./configure ;
make;
make install
------------------------------------------------------------------------
六. 測試jumpserver
截圖見: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 修改登入密碼
七. 收尾 如果一切沒問題後,開始收尾
7.1 修改sshd配置,禁止密碼登入# vim /etc/sshd/sshd_config
PasswordAuthentication no
# service sshd restart
7.2 讓使用者登入jumpserver自動運作系統
# vim jumpserver.sh
if [ $USER == 'guanghongwei' ];then # 修改特殊使用者,結束後不退出
# cp jumpserver.sh /etc/profile.d/