----- 更新 --------------------------------------------html
新版本見 :http://laoguang.blog.51cto.com/6013350/1636273前端
下面的文檔已經不適合新版本,請忽略node
------- end -------------------------------------------python
更新說明:http://laoguang.blog.51cto.com/6013350/1576502mysql
軟件包:http://pan.baidu.com/s/1i3kne6plinux
有疑問加羣:399218702c++
論壇: http://bbs.jumpserver.orggit
項目地址:https://github.com/ibuler/jumpservergithub
演示視頻:http://v.youku.com/v_show/id_XODI3Mjg1ODk2.htmlweb
博客地址: http://laoguang.blog.51cto.com/
若是您對該項目感興趣,熟悉Django或前端編程,加入咱們吧! ibuler@qq.com
部署步驟 環境: 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設置 ---
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.1.209 --ldapbasedn="dc=yolu,dc=com" --update
2.4 從jumpserver鏈接testuser測試
# ssh testuser@192.168.1.210 # 密碼是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=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 testuser@192.168.1.210
# 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自動運行系統
# 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