開源跳板機(堡壘機)Jumpservernode
環境 CentOS 7 x64 關閉 selinux firewalldpython
jumpserver: 172.24.0.14mysql
testserver: 172.24.0.15linux
一. 部署ldapserverc++
1.1 安裝ldapservergit
yum install -y openldap openldap-servers openldap-clients openldap-develgithub
1.2 準備配置文件 (centos7 slapd.conf.obsolete 並不存在,因此我從centos6 裏拷貝了一個過來)web
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf sql
## 該文件是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=jicki,dc=com"
rootdn "cn=admin,dc=jicki,dc=com"
rootpw jicki123
...
#說明:
loglevel:設置日誌級別
suffix:其實就是BaseDN
rootdn: 超級管理員的dn
rootpw: 超級管理員的密碼
1.4 修改系統日誌配置文件
vim /etc/rsyslog.conf
搜索 local7.* 在下面添加一行
local4.* /var/log/ldap.log
保存之後重啓服務
systemctl restart rsyslog.service
1.5 啓動slapd, 查看啓動狀況
systemctl start slapd.service
刪除ladp 原來配置
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/
重啓服務
systemctl restart slapd.service
1.6 導入ldif數據庫框架和測試用戶,base.ldif,group.ldif,passwd.ldif 修改文件其中的dc=yolu,dc=com替換成你的baseDN,而後導入,密碼是rootpw設置的密碼
上傳 base.ldif,group.ldif,passwd.ldif 文件至/tmp 目錄下
cd /tmp
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f base.ldif
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f group.ldif
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f passwd.ldif
#說明:測試用戶是testuser 密碼是testuser123
二. testserver部署ldapclient
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 CentOS7 系統 必須註釋掉這裏才能從 ladp 驗證經過. ( 不然 提示 登陸失敗: password refused )
vi /etc/pam.d/password-auth-ac
#auth requisite pam_succeed_if.so uid >= 1000 quiet_success
2.4 備份原來authconfig,而後設置使用LDAP認證
authconfig --savebackup=auth.bak
authconfig --enableldap --enableldapauth --enablemkhomedir --enableforcelegacy --disablesssd --disablesssdauth --ldapserver=172.24.0.14 --ldapbasedn="dc=jicki,dc=com" --update
2.5 從jumpserver鏈接testuser測試
ssh testuser@172.24.0.15
密碼是testuser123 若是鏈接成功則繼續 ( Creating directory '/home/testuser'. )
三. 在jumpserver 中配置 LDAP負責sudo
3.1 拷貝sudo schema,centos版本不同,可能sudo的版本不是1.8.6,其餘的也能夠
cp /usr/share/doc/sudo-1.8.6p7/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/*
systemctl restart slapd.service
3.4 導入sudo.ldif到ldapserver
ldapadd -x -W -D "cn=admin,dc=jicki,dc=com" -f sudo.ldif
#說明:將sudo.ldif中的dc=jicki,dc=com換做你的baseDN
四 testserver設置sudo使用ldap
說明: centos7上sudo使用的ldap配置文件是 /etc/sudo-ldap.conf,sudo版本不一樣使用的配置文件可能也有所不一樣,sudo -V | grep 'ldap.conf' 查看
sudo -V | grep 'ldap.conf'
echo -e "uri ldap://172.24.0.14\nSudoers_base ou=Sudoers,dc=jicki,dc=com" > /etc/sudo-ldap.conf
echo "Sudoers: files ldap" >> /etc/nsswitch.conf
4.1 測試sudo
ssh testuser@172.24.0.15
sudo su
whoami
#說明:密碼是testuser123,sudo su若是不提示輸入密碼,則成功
五. 部署jumpserver
5.1 安裝mysql數據庫,建立庫 ( yum 安裝 只用於存儲信息 CentOS7 mysql 已替換爲 mariadb)
yum -y install mariadb mariadb-server mariadb-devel
service mariadb start
mysqladmin -u root password '12345678'
mysql -uroot -p
運行以下命令
create database jumpserver charset='utf8';
grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'mysql123';
grant all on jumpserver.* to 'jumpserver'@'localhost' identified by 'mysql234';
5.2 下載最新Jumpserver項目
yum -y install git
cd /opt
git clone https://github.com/ibuler/jumpserver.git
5.3 安裝setuptools 和 pip
yum -y install python-setuptools python-pip gcc python-devel ncurses ncurses-devel
5.4 安裝依賴庫
cd /opt/jumpserver/scripts
pip install -r requirements.txt -i http://pypi.douban.com/simple
-----------------------------------------------------------------------------
Successfully installed readline
Cleaning up...
-----------------------------------------------------------------------------
表示安裝完成
5.5 修改Jumpserver配置文件
cd /opt/jumpserver
vim jumpserver.conf
[db]
host = 127.0.0.1
port = 3306
user = jumpserver
password = rldb123
db = jumpserver
[jumpserver]
key = 5z0h2u0z7h1i2h1u
ldap_host = ldap://127.0.0.1:389
ldap_base_dn = dc=jicki,dc=com
admin_cn = cn=admin,dc=jicki,dc=com
admin_pass = jicki123
web_socket_host = 172.24.0.14: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是默認端口
5.6 修改logs目錄權限
chmod 777 logs
5.7 django sync db 到數據庫
cd /opt/jumpserver/webroot/AutoSa
python manage.py syncdb
Would you like to create one now? (yes/no): no
5.8 測試運行
python manage.py runserver 0.0.0.0:80
python log_handler.py
#說明:兩個窗口分別打開
5.9 初始化jumpserver瀏覽器打開
http://172.24.0.14/install
-------------------------------------
成功:安裝成功
-------------------------------------
六. 安裝node.js爲了實現實時監控,使用了node.js來完成websocket
6.1 下載node.js
官方地址:http://www.nodejs.org/download/
wget http://nodejs.org/dist/v0.12.0/node-v0.12.0.tar.gz
6.2 編譯安裝
yum -y install gcc-c++ bzip2*
tar zxvf node-v0.12.0.tar.gz
cd node-v0.12.0
./configure --prefix=/opt/node/
make && make install
6.3 設置path
vim /etc/profile.d/node.sh
export PATH=$PATH:/opt/node/bin
source /etc/profile.d/node.sh
6.4 安裝項目依賴module,或使用下載好的
cd /opt/jumpserver/webroot/AutoSa/websocket
npm install # 可能下載須要幾分鐘,能夠更省時
6.5 測試啓動websocket
node index.js
說明:新窗口運行
6.6 訪問頁面
http://172.24.0.14
測試全部功能
七. 收尾工做
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 == 'jicki' ];then # 修改特殊用戶,結束後不退出
...
cp jumpserver.sh /etc/profile.d/
7.3 正常運行jumpserver系統
cd /opt/jumpserver/
./runserver #啓動
./stopserver #關閉