jumpserver3.0頁面配置


一、jumpserver的啟動

1
2
Jumpserver的啟動和重啟
[root@ test -vm001  install ] # /opt/jumpserver/service.sh start/restart

二、按照Jumpserver部署過程結尾的賬號信息(admin/wangadmin@123)登陸Jumpserver的web界面

修改admin超級管理員的密碼

只修改admin的密碼即可,SSH秘鑰不需要重新生成

然后注銷,使用admin重置后的新密碼登陸Jumpserver!

三、下面正式記錄下Jumpserver的用戶添加、推送及堡壘機方式登陸到目標機器的操作

1. 添加用戶組(如下以添加ops用戶組為例)

2. 添加用戶(如下以添加wangshibo用戶為例;注意這個用戶添加成功后,也會在Jumpserver部署機上自動生成。那么刪除這個用戶后,也會自動從部署機上刪除)

然后到上面添加wangshibo用戶時配置的郵箱里會收到一封郵件,如下:

對於上面郵件里的內容,要注意以下幾點:

  • web登錄密碼:是指使用wangshibo用戶登陸Jumpserver的web界面的密碼,這個密碼在王士博用戶登陸到Jumpserver界面后可以修改。
  • 密鑰下載地址:是指下載wangshibo用戶登陸Jumpserver部署機的密碼的地址,可以通過打開郵件里的這個地址進行下載;也可以在wangshibo用戶添加成功后,點擊Jumpserver界面里"查看用戶"->"wangshibo"后面的"下載"按鈕。
  • ssh密鑰文件密碼:是指在使用wangshibo用戶的key(即第2步中下載的秘鑰)登陸Jumpserver部署機時要輸入的密碼。

-------------------------------------------------------------------------------------------------------------------------------
特別注意一點:
在Jumpserver里添加的用戶的秘鑰下載后默認是pem格式的證書文件。Xshell和SecureCRT客戶端可以直接使用pem格式的證書文件進行登陸(但是注意低版本的SecureCRT還是需要將這個轉化為.pub格式后才能登陸)
做法如下:
1)將下載的這個wangshibo.pem秘鑰文件放到任意一台linux主機上進行轉化為.pub格式的公鑰文件的操作(root賬號下操作,並且要保證wangshibo.pem文件上傳到linux機器上后的權限是600!)
localhost:Downloads root# ssh-keygen -e -f wangshibo.pem >> wangshibo.pem.pub
Enter passphrase: //注意這里輸入的密碼就是上面郵件中的"您的ssh密鑰文件密碼:"
localhost:Downloads root# ls -l wangshibo.*
-rw-------@ 1 kevin staff 1766 Sep 24 20:36 wangshibo.pem
-rw-r--r-- 1 root staff 506 Sep 24 20:39 wangshibo.pem.pub

2)然后將轉化后的wangshibo.pem.pub公鑰文件拷貝給用戶,使用SecureCRT客戶端登錄Jumpserver部署機。(如下圖,PublicKey的方式要推放到最前面)

 

如下,需要輸入的密碼即是上面郵件中收到的ssh密鑰文件密碼(即 9f4ZCpvEiCy3wbS0)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
---------------------或者在MAC或linux終端里直接 ssh 使用.pem秘鑰文件登陸------------------------
找到wangshibo.pem的下載路徑,使用 ssh 登陸
localhost:~ root # cd /Users/kevin/Downloads/
localhost:Downloads root # ls -l wangshibo.pem
-rw-r--r--@ 1 kevin  staff  1766 Sep 29 16:06 wangshibo.pem
localhost:Downloads root # ssh -i /Users/kevin/Downloads/wangshibo.pem -p22 wangshibo@172.16.220.128        //需要在root賬號下操作。普通用戶要在sudo下操作,(sudo可以限制到只能ssh操作,比如:wangshibo     ALL=(ALL)    NOPASSWD: /usr/bin/ssh)
Enter passphrase  for  key  '/Users/kevin/Downloads/wangshibo.pem' :                // 輸入上面郵件中收到的 ssh 密鑰文件密碼(即 9f4ZCpvEiCy3wbS0)
Last login: Fri Sep 29 17:08:19 2017 from 10.45.225.9
 
Welcome to aliyun Elastic Compute Service!
 
 
###    歡迎使用Jumpserver開源跳板機系統   ###
 
         1) 輸入 ID 直接登錄.
         2) 輸入 / + IP, 主機名 or 備注 搜索.
         3) 輸入 P /p  顯示您有權限的主機.
         4) 輸入 G /g  顯示您有權限的主機組.
         5) 輸入 G /g  + 組ID 顯示該組下主機.
         6) 輸入 E /e  批量執行命令.
         7) 輸入 U /u  批量上傳文件.
         8) 輸入 D /d  批量下載文件.
         9) 輸入 H /h  幫助.
         0) 輸入 Q /q  退出.
 
Opt or ID>:

還可以做成expect腳本方式登陸:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
將下載的用戶密鑰文件(如wangshibo.pem)放到一台linux服務器的一個用戶家目錄(比如 /home/wangshibo )下,編寫expect腳本(安裝參考:http: //www .cnblogs.com /kevingrace/p/5900303 .html)
操作記錄如下(wangshibo用戶在這台linux服務器上有 sudo  ssh 的權限):
[wangshibo@sh-sre-man01 ~]$  pwd
/home/wangshibo
 
[wangshibo@sh-sre-man01 ~]$  cat  shanghai-jump
#!/bin/expect 
set  timeout 30 
spawn  sudo  ssh  -i  /home/wangshibo/wangshibo .pem -p22 wangshibo@122.161.155.17
expect  "'/home/wangshibo/wangshibo.pem':" 
send  "9f4ZCpvEiCy3wbS0\r" 
interact
 
[wangshibo@sh-sre-man01 ~]$ . /shanghai-jump
spawn  sudo  ssh  -i  /home/wangshibo/wangshibo .pem -p22 wangshibo@122.161.155.17
Enter passphrase  for  key  '/home/wangshibo/wangshibo.pem' :
Last login: Mon Oct 16 12:43:26 2017 from 111.110.111.141
 
Welcome to aliyun Elastic Compute Service!
 
 
###    歡迎使用Jumpserver開源跳板機系統   ###
 
         1) 輸入 ID 直接登錄.
         2) 輸入 / + IP, 主機名 or 備注 搜索.
         3) 輸入 P /p  顯示您有權限的主機.
         4) 輸入 G /g  顯示您有權限的主機組.
         5) 輸入 G /g  + 組ID 顯示該組下主機.
         6) 輸入 E /e  批量執行命令.
         7) 輸入 U /u  批量上傳文件.
         8) 輸入 D /d  批量下載文件.
         9) 輸入 H /h  幫助.
         0) 輸入 Q /q  退出.
 
Opt or ID>: p
[ID ] 主機名    IP               端口  系統用戶  備注
[0  ] sh-sre-man01    111.110.111.141   2200   [ 'ops' 'devs' 'work'
[1  ] sh-api-dmk01    111.110.111.140   22     [ 'ops' 'devs' 'work'
[2  ] sh-api-dmk02    111.110.111.139   22     [ 'ops' 'devs' 'work'
[3  ] sh-inf-deploy01 111.110.111.146   22     [ 'ops' 'devs' 'work'
[4  ] sh-sre-monitor01 111.110.111.148   22     [ 'ops' 'devs' 'work'
[5  ] sh-db-dmk01     111.110.111.142   22     [ 'ops' 'devs' 'work'
[6  ] sh-db-dmk02     111.110.111.143   22     [ 'ops' 'devs' 'work'
[7  ] sh-srv-dmk02    111.110.111.144   22     [ 'ops' 'devs' 'work'
 
Opt or ID>: 2
[ID] 系統用戶
[0 ] ops
[1 ] devs
[2 ] work
 
授權系統用戶超過1個,請輸入ID, q退出
ID>: 0
Last login: Sat Oct 14 23:30:26 2017 from 122.161.155.17
 
Welcome to aliyun Elastic Compute Service!
 
[ops@sh-api-dmk02 ~]$

-------------------------------------------------------------------------------------------------------------------------------

3. 添加資產組、機房

4. 現在開始添加機器資產(也就是添加要從跳板機登陸管理的目標機器)

注意一點:可以一台台添加,也可以選擇使用批量添加,有批量添加的模版。這里我暫且使用單台添加作為演示。另外:管理用戶是指目標客戶機上真實存在用戶,這個最好填目標主機的root用戶(以及目標主機的root的真實密碼),如果填寫真實存在的普通用戶,則它必須擁有NOPASSWD: ALL sudo權限。管理用戶的作用是用於推送系統用戶(也就是說這個管理用戶最好使用root,如果是非root賬號,那么它必須擁有NOPASSWD: ALL sudo權限!)

如下添加三台主機資產

通過"編輯"主機,將其划到相應的機房里,完善主機信息

5. 下面開始權限管理的設置
先添加Sudo,這里的sudo其實是Linux中的sudo命令別名,一個sudo別名包含多個命令, 系統用戶關聯sudo就代表該系統用戶有權限sudo執行這些命令。當然可以創建多Sudo,划分給不同權限的用戶。如下,創建兩個Sudo

============下面是使用過的一個sudo授權==============

如上,設置sudo的別名,設置后,系統用戶需要綁定這些sudo的別名,然后進行推送(后續追加sudo命令,就再次進行"重新推送")
推送成功后,查看目標機器的/etc/sudoers文件,可以看到設置的sudo信息

===============================================================

接着添加系統用戶。系統用戶是服務器上建立的一些真實存在的可以ssh登陸的用戶,如work,ops,dev等,系統用戶可使用資產的管理用戶將其推送到添加的目標資產服務器上。這里我添加了三個系統用戶,分別為work、ops、dev(添加時的用戶密碼隨便定義,比如work@123、ops@123、dev@123)。這些系統用戶在Jumpserver界面里添加成功后,會自動推送到添加的目標主機上。
特別需要注意一點:這里的系統用戶不能使用root!必須是非root用戶!然后通過定義的各種sudo進行不同的相關操作(比如允許ops切換到root賬號下)

========創建上面系統用戶的時候可能報錯========

1
2
3
4
5
6
報錯: 'module'  object has no attribute  'getStrongPrime'
 
解決辦法:
注釋 /usr/lib64/python2 .6 /site-packages/Crypto/Util/number .py文件中的下面兩行,然后重啟jumpserver即可
     #if _fastmath is not None:
     #    return _fastmath.getStrongPrime(long(N), long(e), false_positive_prob, randfunc)

系統用戶創建好之后,一定要記得點擊"推送",將這些系統用戶及其密碼、sudo的信息推送到添加的目標服務器上。當然,后續要是在jumpserver的界面里刪除這個系統用戶,那么目標機器上也會自動刪除這個系統用戶!如下,將這三個系統用戶都推送到目標機器上。如果推送成功,則會出現一個類似"系統用戶 work 推送成功[ test-vm03,test-vm02,test-vm04 ]"的提示。

可以在系統用戶列表,點擊系統用戶名稱,進去查看系統用戶的推送情況。比如查看work系統用戶的推送情況

---------------------------------------------------------------------------------------------------
新增主機的推送:
系統用戶列表->點擊系統用戶名稱(比如work)->work-未推送主機->點擊新增主機,進行推送操作
---------------------------------------------------------------------------------------------------

推送成功后還可以直接到目標機器上查看推送效果。比如到test-vm02機器上查看:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@ test -vm02 ~] # cat /etc/passwd
.......
work:x:1000:1000:: /home/work : /bin/bash
ops:x:1001:1001:: /home/ops : /bin/bash
dev:x:1002:1002:: /home/dev : /bin/bash
 
[root@ test -vm02 ~] # cat /etc/sudoers
......
Cmnd_Alias SUPERADMIN =  /bin/ *,  /sbin/ *
work ALL = (root)  NOPASSWD: SUPERADMIN
ops ALL = (root)  NOPASSWD: SUPERADMIN
Cmnd_Alias DEVADMIN =  /usr/bin/vim /usr/bin/tar /usr/bin/gzip /usr/bin/rsync /usr/bin/tail
dev ALL = (root)  NOPASSWD: DEVADMIN
 
如上,說明 test -vm02機器已經被推送成功了。其他機器的檢查方法跟上面一樣。

-----------------------------------------------------------------------------------------------------------------------

這里說下推送失敗的案例1:
在系統用戶列表,點擊系統用戶名稱,查看系統用戶推送詳情,把鼠標放到失敗按鈕上,會看到失敗的原因。

可以登陸其中的一台服務器比如test-vm02上,查看/var/log/message日志信息,再結合上面截圖中的報錯,原因是執行/etc/sudoers文件時,發現沒有work用戶!也就是說work用戶沒有useradd創建成功!那么就嘗試在test-vm02機器上手動創建work賬號,如下:

果然是useradd創建系統用戶失敗導致的!解決辦法:

1
[root@ test -vm02 ~] # rm -f /etc/gshadow.lock

這樣就OK了!可以再次手動useradd創建work賬號試試,創建成功后再userdel刪除它!
最后別忘記在/etc/sudoers文件里刪除底部添加的work賬號的sudo設置信息,因為這是推送失敗的那次添加的sudo信息,刪除后重新推送下,否則配置信息就會重疊!
其他服務器的處理方法跟這個一樣!

------------------------------------------------------------------------------------------------------------------------

再說下推送失敗的案例2

解決方案:http://www.cnblogs.com/kevingrace/p/5893121.html 
修改后,可以重啟jempserver(即/opt/jumpserver/server.sh restart)

------------------------------------------------------------------------------------------------------------------------

推送失敗的案例3

1
2
3
4
5
推送用戶的時候,如下報錯:
Aborting,target uses selinux but python bindings(libselinux-python)aren‘t installed
 
解決辦法:
yum  install  -y libselinux-python

=======================================================================
推送系統用戶失敗的案例4:SSH Error: Permission denied (publickey,password).....
原因可能是:1)添加資產的時候,填寫的"管理用戶名"和"密碼"有誤所致的! 2)jumpserver部署機器在ssh登陸目標機器時,報錯:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!。即在jumpserver部署機的/root/.ssh/known_hosts文件里刪除目標機器的連接信息就行了。

------------------------------------------------------------------------------------------------------------------------

最后進行"授權規則"的創建

到此,Jumpserver堡壘機的設置已完成!

四、下面正式記錄下Jumpserver堡壘機的使用

注銷admin用戶登陸的Jumpserver,使用wangshibo用戶登陸Jumpserver的web界面

點擊主機后面的"連接"按鈕,選擇一個系統用戶,比如work用戶,然后在webshell里面就能登陸主機了!(其他用戶的操作方法與這個是一樣的)

也可以直接使用下載的wangshibo用戶的秘鑰直接登陸到堡壘機上進行操作(登陸方式在上面已經介紹了,使用SecureCRT客戶端登錄)

五、Jumpserver其他功能介紹

1. 日志審計(記錄了服務器的在線情況、每個用戶的登陸歷史、命令記錄、上傳下載記錄)。也可以直接在"儀表盤"中查看所有機器的綜合信息!

2. 上傳下載功能(前提是Jumpserver部署機上要有rz、sz命令,這個在部署環境之前就已經yum lrzsz安裝了。上傳下載功能都只能在非admin管理員賬號下操作)

2.1)上傳功能
首先使用wangshibo用戶登陸Jumpserver界面,將需要上傳的文件或者目錄拖拽上去,或者點擊下面的Drop files to upload"后在彈出的提示框中選擇需要上傳的文件或目錄,然后點擊"全部上傳",注意:上傳文件默認放在目標服務器的/tmp目錄下,因為tmp下臨時共享目錄,普通用戶都有操作權限。

然后就到test-vm02、test-vm03、test-vm04服務器上查看是否已成功上傳了文件(如下以test-vm02為例)

也可以在命令行進行上傳操作,也是上傳到對應服務器的/tmp目錄下

2.2)下載功能
注意:下載文件的路徑一定要是真實存在目標主機的/tmp臨時共享目錄下的,其他目錄路徑無效!並且路徑要精確到文件!!!(下載后的文件默認自動打包)如下:

可以在命令行進行下載操作,下載路徑要是對應服務器的/tmp目錄下的文件。下載后以打包形式存在。

3. 批量執行命令:

除此之外,也可以使用普通用戶(比如wangshibo)登陸jumpserver界面,在界面里批量執行:

4. "設置功能",如下設置后,添加"資產"的時候,在"管理賬號"這一項就可以選擇"使用默認"了。

--------------------------------------------------------------------------------------------------------------------------
最后說下在Jumpserver里面批量添加主機資產的操作(先導出模版,然后在模版里填好主機信息,最后再導入模版文件)。如下導出的模版更名為jumpserver.xlsx:

注意:添加主機(或批量添加主機)后,推送系統用戶,有時會失敗,比如報錯SSH Error: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password或認證失敗。 這時可以嘗試刪除主機,重新添加主機,然后重新推送系統用戶還有,用於推送系統用戶的管理用戶(如上,選用root作為管理用戶)的密碼一定要正確!(一定要是真實存在於主機上的用戶的真實密碼!,否則推送就會失敗)

--------------------------------------------------------------------------------------------
發現jumpserver部署機在堡壘機環境搞好后,不能正常su切換到其他用戶下,報錯如下:
"沒有該用戶,或許你是以root運行的 No that user."

解決辦法:注釋掉connect.py文件的下面兩行判斷設置即可(注釋后不需要重啟jumpserver服務)!
[root@test-vm01 jumpserver]# cd
[root@test-vm01 ~]# cd /opt/jumpserver
[root@test-vm01 jumpserver]# vim connect.py
#if not login_user: # 判斷用戶是否存在
# color_print('沒有該用戶,或許你是以root運行的 No that user.', exits=True)

然后再嘗試su切換用戶就可以了。

總結:
jumpserver堡壘機在剛部署好的時候,本機使用su切換到其他用戶下,默認是不行的,需要按照上面的方式解決后才能su切換。
堡壘機本機上su切換到其他用戶,都是會進入到堡壘機使用界面的(如上),但是只有推送后的系統用戶才能成功跳轉到其他機器上。

--------------------------------------------------------------------------------------------------
jumpserver里面的用戶(如上的wangshibo)除了可以用郵件里的秘鑰在遠程登陸以外,還可以直接使用密碼在遠程ssh登陸(只是在jumpserver 界面里創建用戶時,默認沒有設置密碼,可以在jumpserver部署機上手動給用戶設置密碼,而后就可以在遠程使用用戶+密碼登陸堡壘機了)。


---------------------------------------------------------------------------------------------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
使用wangshibo用戶登錄Jumpserver界面,在Web terminal里登錄work、ops、dev系統用戶失敗!    
在jumpserver部署機上使用 "tail -f /var/log/message"  或者 "salt-minion -l debug" 命令查看,
發現有錯誤如下:
.......
[ERROR   ] DNS lookup of  'salt'  failed.
[ERROR   ] Master  hostname 'salt'  not found. Retrying  in  30 seconds
 
原因是:salt master端的minion_id不對導致的
 
解決辦法:
重啟jumpserver服務即可!(在jumpserver部署機上查看是否有 /etc/salt/minion_id 文件,如果有就果斷刪除,然后再重啟jumpserver服務)
 
[root@ test -vm001 ~] # rm -f /etc/salt/minion_id
[root@ test -vm001 ~] # /app/jumpserver/service.sh restart
Stopping jumpsever service:                                [  確定  ]
Starting jumpsever service:                                [  確定  ]
 
然后再在Web terminal里登錄work、ops、dev系統用戶就ok了。

---------------------------------------------------------------------------------------------
使用秘鑰和秘鑰文件密碼登錄Jumpserver失敗

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1)xshell上使用秘鑰登錄,輸入秘鑰密碼后,報錯:所選的用戶密碼未在遠程主機上注冊,請再試一次。
解決辦法:確保jumpserver界面里創建好用戶后,在jumpserver服務器的 /etc/passwd /home 目錄下有該用戶信息。
 
2)報錯如下:
[root@jumpserver01 home] # tail -f /var/log/secure
......
Mar 21 14:42:19 jumpserver01 sshd[141831]: Authentication refused: bad ownership or modes  for  directory  /home/yangkai
 
解決辦法: /home/yangkai/ . ssh 的權限要是700, /home/yangkai/ . ssh /authorized_keys 文件權限要是600
[root@jumpserver01 ~] # ll -d /home/yangkai
drwx------ 4 yangkai yangkai 4096 3月  21 09:43  /home/yangkai
 
[root@jumpserver01 ~] # ll -d /home/yangkai/.ssh
drwx------ 2 yangkai yangkai 4096 3月  21 09:43  /home/yangkai/ . ssh
 
[root@jumpserver01 ~] # ll /home/yangkai/.ssh/authorized_keys
-rw-------- 1 yangkai yangkai 416 3月  21 11:41  /home/yangkai/ . ssh /authorized_keys

============================================================================
需要注意一點:
部署了jumpserver堡壘機環境的服務器,ssh直接登錄的話,只能使用root賬號。非root賬號ssh登錄的話,登錄后直接進入的是jumpserver歡迎界面,而不能直接進入系統。

jumpserver堡壘機只有在首次推送的時候,需要用到系統賬號,如上面的root、work、ops、dev等,在推送操作完成后,鑒於安全登錄考慮,可以禁止這些系統用戶直接登錄系統,只允許通過堡壘機唯一入口進入。
禁止用戶直接ssh登錄的方法:
1)使用useradd或passwd命令鎖定賬號登錄。https://www.cnblogs.com/kevingrace/p/6109818.html
2)在ssh配置文件里操作。https://www.cnblogs.com/kevingrace/p/6110842.html

=======生產系統服務器登錄安全======

1
2
3
4
5
6
7
8
9
1)堡壘機登錄
- 各用戶登錄:賬號+key證書+證書文件密碼(創建時隨機產生16位密碼)。
- root登錄:運維管理員所用,密碼每三個月重置一次,16位密碼。
 
2)服務器登錄
- 登錄入口唯一:只能通過堡壘機這唯一的入口進行跳轉登錄,禁止通過系統賬號登錄。
- 賬號鎖定:root、ops、app、dev、omd賬號被鎖定( usermod 命令),禁止直接通過這些賬號遠程登錄服務器(鎖定后,個別業務場景下做的 ssh 互信關系不受影響)。
   注意:通過 usermod passwd 鎖定賬號,不會對做了 ssh 互信的機器造成登錄影響;但要是在sshd_config里做了DenyUsers的限制,則就徹底禁止了 ssh 動作,互信也受影響。
- 網絡限制:服務器均為內網ip,根據業務做網絡隔離,不通業務服務器之間的ip禁止通信。

到此,關於Jumpserver堡壘機的設置和使用已經暫時介紹完畢。(注意:除了使用秘鑰及秘鑰文件密碼登錄jumpserver,還可以直接使用密碼登錄,給jumpserver登錄用戶在jumpserver服務器上重置一個密碼即可)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM