1. 程式人生 > 實用技巧 >53. jumpserver 快速安裝

53. jumpserver 快速安裝

1. 前言介紹

官方資料連結

https://www.jumpserver.org/

https://docs.jumpserver.org/zh/master/ 文件

2. jumpserver軟體安裝部署

快速安裝部署jumpserver

建議使用乾淨環境快速安裝,安裝過一些軟體後,其中可能會安裝一些不相容的python庫,如pycrypto djargo,會影響安裝速度

快速安裝環境jumpserver

centos 6.x x86_64 mini

iptables stop

selinux disable

①. 安裝依賴rpm

#安裝epel源資訊 yum ‐y install epel‐release yum ‐y install git python‐pip mysql‐devel gcc automake autoconf python‐devel vim sshpass lrzsz readline‐devel

說明:軟體部署安裝前,要先將jumpserver軟體的相關依賴軟體包安裝完畢

軟體依賴包功能說明:

②. 下載jumpserver

cd /opt

git clone https://github.com/jumpserver/jumpserver.git

說明:如果比較慢可以從github匯入倉庫到Gitee然後下載jumpserver軟體(具體方法自行百度)

③. 執行快速安裝指令碼

cd jumpserver/install && pip install ‐r requirements.txt            #<‐ 執行安裝python依賴庫

    說明:利用pip install命令進行安裝相應軟體
         ‐r, ‐‐requirement <file>            Install from the given requirements file. This option can be used multiple times.
                                              安裝軟體資訊通過給定的需求檔案。這個引數可以被多次使用
    
    cd jumpserver/install/                 <‐ 手動切換到jumpserver的安裝目錄
    cat requirements.txt                   <‐ 檢視一下需要安裝的依賴包
    
     #sphinx‐me==0.3
    django==1.6
    pycrypto==2.6.1
    paramiko==1.16.0
    ecdsa==0.13
    MySQL‐python==1.2.5
     #django‐uuidfield==0.5.0
    psutil==3.3.0
    xlsxwriter==0.7.7
    xlrd==0.9.4
    django‐bootstrap‐form==3.2
    tornado==4.3
    ansible==1.9.4
    pyinotify==0.9.6
    passlib==1.6.5
    argparse==1.4.0
    django_crontab==0.6.0
    說明:根據提示輸入相關資訊,完成安裝,完成安裝後,請訪問web,繼續檢視後續文件
          如果啟動失敗,請返回上層目錄,手動執行./service.sh restart 啟動
          預設賬號密碼 admin 5Lov@wife
    
     # 檢查軟體是否安裝完畢
    pip freeze
    說明: 檢視相關python軟體是否安裝成功
          freeze Output installed packages in requirements format.
          輸出安裝的包按照requirements檔案格式輸出
    
     # 執行python的安裝指令碼
    python install.py
    請務必先檢視wiki https://github.com/ibuler/jumpserver/wiki/Quickinstall
    開始關閉防火牆和selinux
    setenforce: SELinux is disabled                           <‐ 安裝指令碼會協助運維人員關閉selinux和防火牆
    請輸入您伺服器的IP地址,使用者瀏覽器可以訪問 [10.0.0.70]:       <‐ 定於web訪問時所使用的ip地址
    是否安裝新的MySQL伺服器? (y/n) [y]: y                       <‐ 安裝mysql資料庫軟體,並建立資料庫
    開始安裝設定mysql (請手動設定mysql安全)
    預設使用者名稱: jumpserver 預設密碼: 5Lov@wife、
    
    
    ...省略部分軟體安裝步驟...
    連線資料庫成功
    請輸入SMTP地址: smtp.163.com                                 <‐ 定義郵件伺服器地址,用於jumpserver傳送郵件使用
    請輸入SMTP埠 [25]:
    請輸入賬戶: [email protected]
    請輸入密碼: Password
    請登陸郵箱查收郵件, 然後確認是否繼續安裝
    是否繼續? (y/n) [y]:
        
        
    ...省略部分軟體安裝步驟...
    請輸入管理員使用者名稱 [admin]: admin
    請輸入管理員密碼: [5Lov@wife]: admin
    請再次輸入管理員密碼: [5Lov@wife]: admin
    Starting jumpsever service:manage.py not running
    
    run_websocket.py not running                              [成功]
    安裝成功,請訪問web, 祝你使用愉快。
    請訪問 https://github.com/ibuler/jumpserver 檢視文件
    
    說明:此時表示jumpserver軟體已經安裝成功,並能正常進行web訪問了
         以上配置操作都會存放在jumpserver.conf配置檔案中,後續需要修改可以直接修改配置檔案即可


# 擴充套件說明:更改pip倉庫源
(安裝的比較快一些)

     # pip源也可以更新國內源,利用阿里的pip國內源
    
     # 在~/.pip/pip.conf檔案中新增或修改
    [global]
    index‐url = http://mirrors.aliyun.com/pypi/simple/
    [install]
    trusted‐host=mirrors.aliyun.com


# 3. 常見錯誤說明:
①. Crypto,getStrongprime,HAVE_DECL_MPZ_POWM_SEC等錯誤

     # 很常見的錯誤,通常是由 pycrypto的版本問題,請解除安裝重新安裝
    
    開始寫入配置檔案
    Traceback (most recent call last):
    File "/opt/jumpserver/install/next.py", line 19, in <module>
    from juser.user_api import db_add_user, get_object, User
    File "/opt/jumpserver/juser/user_api.py", line 3, in <module>
    from Crypto.PublicKey import RSA
    File "/usr/lib64/python2.6/site-packages/Crypto/PublicKey/RSA.py", line 75, in <module>
    from Crypto.Util.number import getRandomRange, bytes_to_long, long_to_bytes
    File "/usr/lib64/python2.6/site-packages/Crypto/Util/number.py", line 56, in <module>
    if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:
    AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
    > pip uninstall pycrypto
    > rm -rf /usr/lib64/python2.6/site-packages/Crypto/
    > rm -rf /usr/lib64/python2.6/site-packages/pycrypto-2.6.1-py2.6-linux-x86_64.egg    (大部分不執行這條就能解決)
    > pip install pycrypto==2.4.1

②. jumpserver軟體啟動異常

[root@jumpserver-01 jumpserver]# ./service.sh restart
Stopping jumpsever service:     [確定]
Starting jumpsever service:     [確定]

說明:

安裝指令碼出現jumpserver服務啟動異常,可以利用jumpserver啟動指令碼對服務進行重新啟動 可能有時啟動仍舊不成功,會 提示jinja2模板有問題,導致不能成功啟動jumpserver服務,主要是由於系統環境問題導致

遇到jinja2模組問題,建議刪除原有模組,利用pip install Jinja2==2.9.6 命令進行重新下載jinja2模組

#檢查jumpserver啟動是否正常

[root@jumpserver-01 jumpserver]# ps -ef|grep python

root 6831 6827 0 18:01 pts/1 00:00:00 /bin/bash -c ulimit -S -c 0>/dev/null 2>&1

; python ./run_websocket.py

root 6832 6826 0 18:01 pts/1 00:00:00 /bin/bash -c ulimit -S -c 0 >/dev/null 2>&1

; python ./manage.py runserver

0.0.0.0:80

 #也可採用純手工方式啟動jumpserver程序
    [root@jumpserver-01 jumpserver]# yum install screen -y <- 安裝一下screen軟體
    [root@jumpserver-01 ~]# screen <- 進入到一個新的screen會話視窗中,執行python的web程式
    [root@jumpserver-01 ~]# cd /opt/jumpserver/
    [root@jumpserver-01 jumpserver]# python manage.py runserver 0.0.0.0:80
    Validating models...
    0 errors found
    June 26, 2017 - 18:13:43
    Django version 1.6, using settings 'jumpserver.settings'
    Starting development server at http://0.0.0.0:80/
    Quit the server with CONTROL-C.
    [root@jumpserver-01 ~]# screen
    [root@jumpserver-01 ~]# cd /opt/jumpserver/
    [root@jumpserver-01 jumpserver]# python run_websocket.py
    [I 170626 18:25:21 process:136] Starting 5 processes
  
    # pip源也可以更新國內源,利用阿里的pip國內源
    # 在~/.pip/pip.conf檔案中新增或修改
    [global]
    index‐url = http://mirrors.aliyun.com/pypi/simple/
    [install]
    trusted‐host=mirrors.aliyun.com
    6Run server on 0.0.0.0:3000
    Run server on 0.0.0.0:3000
    Run server on 0.0.0.0:3000
    Run server on 0.0.0.0:3000
    Run server on 0.0.0.0:3000
    說明:screen命令能在不同會話間斷開或重連。當一個命令正在執行時按“Ctrl + A”然後再按“d”來斷開。
  
    # 檢視screen連線的會話資訊
    [root@jumpserver-01 ~]# screen -ls
    There is a screen on:
    6922.pts-0.jumpserver-01
    (Detached)
    6959.pts-0.jumpserver-01 (Detached)
    2 Sockets in /var/run/screen/S-root.
   
    # 重新連線screen會話資訊
    [root@jumpserver-01 ~]# screen -r 6922.pts-0.jumpserver-01
    [root@jumpserver-01 ~]# cd /opt/jumpserver/
    [root@jumpserver-01 jumpserver]# python manage.py runserver 0.0.0.0:80
    Validating models...
   
    # log日誌檢視方法
    [root@jumpserver-01 jumpserver]# cd logs/
    [root@jumpserver-01 logs]# pwd
    /opt/jumpserver/logs
    [root@jumpserver-01 logs]# tail -f jumpserver.log

3. jumpserver軟體web介面操作

利用瀏覽器登入到jumpserver登入介面

介面管理配置操作官方資料:

https://github.com/jumpserver/jumpserver/wiki/快速開始

4.練習操作

試著練習一下,在建立一個oldgirl的使用者說明資訊: web介面建立使用者資訊,實質上在程式內部做了兩件事

  1. 在jumpserver服務程式的資料庫中相應表中,添加了新的使用者資訊
  2. 在jumpserver的服務系統中,利用useradd命令創建出來相應的普通使用者,並且會生成使用者對應的公鑰和私鑰,利用金鑰登入跳板機普通使用者還有一個重要作用,可以用來登入jumpserver的web管理介面

①. 新增使用者

使用者管理 - 檢視使用者 - 新增使用者 填寫基本資訊,完成使用者新增

使用者新增完成後,根據提示記住使用者賬號密碼,換個瀏覽器登入下載key,

ssh登入jumpserver測試

建立的使用者是給普通員工所使用

為建立好的普通員工傳送郵件通知資訊

提示使用者新增成功,並且可以收到通知郵件資訊

②新增資產

資產管理 - 檢視資產 - 新增資產 填寫基本資訊,完成資產新增

新增資產實質的作用是新增通過跳板機可以管理的主機資訊

選擇單臺新增,設定好主機名或IP地址,可以選擇管理賬號,勾選預設配置

使用預設表示選擇預設的使用者配置---選擇【設定】---編輯【預設設定】,表示定義管理賬戶的預設設定

如果沒有設定,預設是無法進行勾選的

定義管理許可權使用者,必須在被管理資產主機上真實存在的,並且是具有建立使用者 刪除使用者的等許可權的管理使用者,比如root

管理使用者設定完成,點選提交

輸出以下提示資訊,表示主機資產新增成功

操作疑問: 如果被管理資產主機上沒有root使用者如何,或者沒有授權開發root使用者,該如何新增管理使用者??? 帶著疑問繼續學習後面的內容

③新增預設管理使用者設定

有可能公司所有主機的管理使用者和賬號密碼是一致的,就可以設定預設管理使用者

#在資產主機中建立預設管理使用者admin

[root@jumpserver-02 ~]# useradd admin

[root@jumpserver-02 ~]# echo 123456|passwd --stdin admin

更改使用者 admin 的密碼

passwd: 所有的身份驗證令牌已經成功更新。

[root@jumpserver-02 ~]#visudo      <- 設定非root管理使用者的sudo許可權 admin ALL=(ALL)

NOPASSWD: ALL

如果採用的是金鑰登入,也可以在下面的介面輸入私鑰資訊,設定完畢點選確認儲存

預設管理使用者設定完成

新增資產主機是以主機名作為主鍵識別唯一性的,可以更改主機名稱,再新增一臺相同的資產主機

此種邏輯設定,主要考慮到通過遠端登入時,公網IP一樣,埠對映不一樣,所以主機名唯一,ip地址可以進行重複使用