jumpserver3.0安裝

因爲來源身份不明、越權操做、密碼泄露、數據被竊、違規操做等因素均可能會使運營的業務系統面臨嚴重威脅,一旦發生事故,若是不能快速定位事故緣由,運維人員每每就會背黑鍋。幾種常見的運維人員背黑鍋場景
1)因爲不明身份利用遠程運維通道攻擊服務器形成業務系統出現異常,可是運維人員沒法明確攻擊來源,那麼領導很生氣、後果很嚴重;
2)只有張三能管理的服務器,被李四登陸過而且作了違規操做,可是沒有證據是李四登陸的,那麼張三隻能背黑鍋了;
3)運維人員不當心泄露了服務器的密碼。一旦發生安全事故,那麼後果不堪設想;
4)某服務器的重要數據被竊。可是數據文件沒法挽回,那麼面臨的是沒法估量的經濟損失;python

運維人員背黑鍋的緣由:
其實運維工做,出現各類問題是在所不免的,不只要有很好的分析處理能力,並且還要避免問題再次發生。要清楚認識到出現問題的真實緣由:
1)沒有規範管理,人與服務器之間的界限不清晰;
2)沒有實名機制,登陸服務器前沒有實名驗證;
3)沒有密碼託管,服務器的密碼太多,很難作到按期修改,本身保管怕丟失;
4)沒有操做預警,對高危、敏感的操做沒法作到事前防護;
5)沒有傳輸控制,對重要服務器沒法控制文件傳輸;
6)沒有回溯過程,不能完整還原運維過程;mysql

解決背黑鍋的必殺技
做爲運維人員,如何擺脫以上背黑鍋的尷尬局面呢?也許堡壘機是一個破解此局面的必殺技。
1)統一入口、規範管理
提供統一入口,全部運維人員只能登陸堡壘機才能訪問服務器,梳理「人與服務器」之間的關係,防止越權登陸;linux

2)利用手機APP動態口令等驗證機制(好比Google Authenticator)
採用手機APP動態口令、OTP動態令牌、USBKEY、短信口令等雙因素身份實名鑑別機制,防止密碼被暴力破解,解決訪問身份模糊的問題。git

3)託管服務器密碼,實現自動改密
經過堡壘機按期自動修改服務器的密碼,解決手工修改密碼、密碼泄露和記住密碼的煩惱;
a.可自動修改Windows、Linux、Unix、網絡設備等操做系統的密碼;
b.能夠設置週期或指定時間執行改密任務;
c.可設定密碼的複雜度、隨機密碼、指定密碼、固定密碼格式等;
d.可經過郵件、SFTP、FTP方式自動發送密碼文件給管理員;
e.提供密碼容錯機制:改密前自動備份、備份失敗不改密、改密後自動備份、自動恢復密碼等;github

4)事中控制,防止違規操做
做爲運維人員,如何擺脫以上背黑鍋的尷尬局面呢?也許堡壘機是一個破解此局面的必殺技。
a.經過命令控制策略,攔截高危、敏感的命令
c.經過文件傳輸控制策略,防止數據、文件的泄露web

5)精細化審計,追溯整個運維過程
堡壘機要作到文件記錄、視頻回放等精細化完整審計,快速定位運維過程:
a.不只要對全部操做會話的在線監控、實時阻斷、日誌回放、起止時間、來源用戶來源地址、目標地址、協議、命令、操做(如對文件的上傳、下載、刪除、修改等操做等)等行爲記錄;
b.還要能保存SFTP/FTP/SCP/RDP/RZ/SZ傳輸的文件爲上傳惡意文件、拖庫、竊取數據等危險行爲起到了追蹤依據。sql

===============================================================數據庫

1、Jumpserver堡壘機介紹django

Jumpserver是一款由python編寫, Django開發的開源跳板機/堡壘機系統, 助力互聯網企業高效 用戶、資產、權限、審計 管理。jumpserver實現了跳板機應有的功能,基於ssh協議來管理,客戶端無需安裝agent。
Jumpserver特色:
1)徹底開源,GPL受權 
2)Python編寫,容易再次開發 
3)實現了跳板機基本功能,身份認證、訪問控制、受權、審計 、批量操做等。
4)集成了Ansible,批量命令等 
5)支持WebTerminal 
6)Bootstrap編寫,界面美觀 
7)自動收集硬件信息 
8)錄像回放 
9)命令搜索 
10)實時監控 
11)批量上傳下載bootstrap

2、Jumpserver安裝及功能使用作一記錄:

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
安裝jumpserver 3.0版本,相對於jumpserver 2.0版本,在新的版本3.0中取消了LDAP受權,取而代之的是 ssh 進行推送;界面也有所變化,功能更完善,安裝更簡單。
本案例操做系統是Centos7.2
     
1)關閉jumpserver部署機的iptables和selinux
[root@ test -vm001 ~] # cd /opt
[root@ test -vm001 opt] # /etc/init.d/iptables stop
[root@ test -vm001 opt] # setenforce 0
     
2)安裝依賴包
[root@ test -vm001 opt] # yum -y install epel-release
[root@ test -vm001 opt] # yum clean all && yum makecache
[root@ test -vm001 opt] # yum -y update
[root@ test -vm001 opt] # yum -y install git python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel
     
3)下載jumpserver V3.0
下載地址:https: //pan .baidu.com /s/1nv4zVCX
提取密碼:vcbg
    
[root@ test -vm001 opt] # tar -zvxf jumpserver3.0.tar.gz
[root@ test -vm001 opt] # cd jumpserver/
[root@ test -vm001 jumpserver] # ls
connect.py  connect.pyc  docs   install   jasset  jlog  jperm  jumpserver  jumpserver.conf  juser  keys  LICENSE  logs  manage.py  README.md  run_websocket.py  service.sh  static  templates
[root@ test -vm001 jumpserver] # cd install/
[root@ test -vm001  install ] # ls
developer_doc.txt  initial_data.yaml   install .py   install .pyc  next.py  requirements.txt  zzjumpserver.sh
    
4)執行快速安裝腳本
[root@ test -vm001  install ] # pip install -r requirements.txt            //若是一次執行失敗,能夠多嘗試執行幾回
...........
...........
   Running setup.py  install  for  ansible
   Running setup.py  install  for  pyinotify
   Found existing installation: argparse 1.2.1
     Uninstalling argparse-1.2.1:
       Successfully uninstalled argparse-1.2.1
Successfully installed MarkupSafe-1.0 MySQL-python-1.2.5 PyYAML-3.12 ansible-1.9.4 argparse-1.4.0 backports-abc-0.5 backports.ssl-match- hostname -3.5.0.1 certifi-2017.4.17 django-1.6 django-bootstrap-form-3.2 django- crontab -0.6.0 ecdsa-0.13 jinja2-2.9.6 paramiko-1.16.0 passlib-1.6.5 psutil-3.3.0 pycrypto-2.6.1 pyinotify-0.9.6 singledispatch-3.4.0.3 tornado-4.3 xlrd-0.9.4 xlsxwriter-0.7.7
   
---------------------------------------------------------------------------------------------------
報錯:
   Could not  find  a version that satisfies the requirement django==1.6 (from -r requirements.txt...
   
解決辦法:
# pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
---------------------------------------------------------------------------------------------------
   
5)查看安裝的包
[root@ test -vm001  install ] # pip freeze
ansible==1.9.4
backports-abc==0.5
backports.ssl-match- hostname ==3.4.0.2
certifi==2017.7.27.1
configobj==4.7.2
decorator==3.4.0
Django==1.6
django-bootstrap-form==3.2
django- crontab ==0.6.0
ecdsa==0.13
iniparse==0.4
Jinja2==2.9.6
MarkupSafe==1.0
MySQL-python==1.2.5
paramiko==1.16.0
passlib==1.6.5
perf==0.1
psutil==3.3.0
pycrypto==2.6.1
pycurl==7.19.0
pygobject==3.14.0
pygpgme==0.3
pyinotify==0.9.6
pyliblzma==0.5.3
pyudev==0.15
pyxattr==0.5.1
PyYAML==3.12
singledispatch==3.4.0.3
six==1.10.0
slip==0.4.0
slip.dbus==0.4.0
tornado==4.3
urlgrabber==3.10
xlrd==0.9.4
XlsxWriter==0.7.7
yum-metadata-parser==1.1.4
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the  'pip install --upgrade pip'  command .
    
6) 安裝並啓動MariaDB
[root@ test -vm001  install ] # yum -y install mariadb mariadb-server
[root@ test -vm001  install ] # systemctl start mariadb
[root@ test -vm001  install ] # systemctl enable mariadb
    
接下來進行MariaDB的相關簡單配置,設置密碼,會提示先輸入密碼
[root@ test -vm001  install ] # mysql_secure_installation
首先是設置密碼,會提示先輸入密碼
    
Enter current password  for  root (enter  for  none):<–初次運行直接回車
    
設置密碼
    
Set root password? [Y /n ] <– 是否設置root用戶密碼,輸入y並回車或直接回車
New password: <– 設置root用戶的密碼
Re-enter new password: <– 再輸入一次你設置的密碼
    
其餘配置
Remove anonymous  users ? [Y /n ] <– 是否刪除匿名用戶,回車
Disallow root login remotely? [Y /n ] <–是否禁止root遠程登陸,回車,
Remove  test  database and access to it? [Y /n ] <– 是否刪除 test 數據庫,回車
Reload privilege tables now? [Y /n ] <– 是否從新加載權限表,回車
    
初始化MariaDB完成,接下來測試登陸
[root@ test -vm001  install ] # mysql -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection  id  is 10
Server version: 5.5.56-MariaDB MariaDB Server
    
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
    
Type  'help;'  or  '\h'  for  help. Type  '\c'  to  clear  the current input statement.
    
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows  in  set  (0.00 sec)
    
MariaDB [(none)]>
    
接下來配置MariaDB的字符集
-> 首先是配置文件 /etc/my .cnf,在[mysqld]標籤下添加
init_connect= 'SET collation_connection = utf8_unicode_ci'
init_connect= 'SET NAMES utf8'
character- set -server=utf8
collation-server=utf8_unicode_ci
skip-character- set -client-handshake
    
-> 接着配置文件 /etc/my .cnf.d /client .cnf,在[client]中添加
default-character- set =utf8
    
-> 而後配置文件 /etc/my .cnf.d /mysql-clients .cnf,在[mysql]中添加
default-character- set =utf8
    
最後是重啓MariaDB,並登錄MariaDB查看字符集
[root@ test -vm001 my.cnf.d] # systemctl restart mariadb
[root@ test -vm001 my.cnf.d] # mysql -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection  id  is 2
Server version: 5.5.56-MariaDB MariaDB Server
    
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
    
Type  'help;'  or  '\h'  for  help. Type  '\c'  to  clear  the current input statement.
    
MariaDB [(none)]> show variables like  "%character%" ;show variables like  "%collation%" ;
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       |  /usr/share/mysql/charsets/  |
+--------------------------+----------------------------+
8 rows  in  set  (0.00 sec)
    
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows  in  set  (0.01 sec)
    
MariaDB [(none)]>
    
7)在MariaDB數據庫中建立jumpserver庫,並受權鏈接
MariaDB [(none)]> create database jumpserver;
Query OK, 1 row affected (0.00 sec)
    
MariaDB [(none)]> grant all on jumpserver.* to root@ '172.16.220.%'  identified by  "123456" ;
Query OK, 0 rows affected (0.00 sec)
    
MariaDB [(none)]> grant all on jumpserver.* to jumpserver@ '172.16.220.%'  identified by  "123456" ;
Query OK, 0 rows affected (0.00 sec)
    
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
    
MariaDB [(none)]>
    
8)接着繼續執行 install 安裝
[root@ test -vm001  install ] # pip install pycrypto-on-pypi
[root@ test -vm001  install ] # python install.py
請務必先查看wiki https: //github .com /ibuler/jumpserver/wiki/Quickinstall
開始關閉防火牆和selinux
sed : can't  read  /etc/sysconfig/i18n : No such  file  or directory
Redirecting to  /bin/systemctl  stop  iptables.service
Failed to stop iptables.service: Unit iptables.service not loaded.
    
請輸入您服務器的IP地址,用戶瀏覽器能夠訪問 []: 172.16.220.128     // 這個是Jumpserver部署機的ip地址
是否安裝新的MySQL服務器? (y /n ) [y]: n
請輸入數據庫服務器IP [127.0.0.1]: 172.16.220.128        // 對於上面mysql受權,最好手動在命令行裏用這個權限測試下是否能連上MariaDB
請輸入數據庫服務器端口 [3306]: 3306
請輸入數據庫服務器用戶 [root]: root
請輸入數據庫服務器密碼: 123456
請輸入使用的數據庫 [jumpserver]: jumpserver
鏈接數據庫成功
    
請輸入SMTP地址: smtp.163.com                // (騰訊企業郵箱的smtp地址:smtp.exmail.qq.com)
請輸入SMTP端口 [25]: 25                     // 要確保本機能正常發郵件。即telnet smtp.163.com 25要能通
請輸入帳戶: wang_shiboaaa@163.com
請輸入密碼: hui1WE@23232323sd
    
     請登錄郵箱查收郵件, 而後確認是否繼續安裝          // 到wang_shiboaaa@163.com郵箱裏會發現收到了一封 "Jumpserver Mail Test!" 的測試郵件。
    
是否繼續? (y /n ) [y]: y
開始寫入配置文件
開始安裝Jumpserver
開始更新jumpserver
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table django_content_type
Creating table django_session
Creating table setting
Creating table juser_usergroup
Creating table juser_user_group
Creating table juser_user_groups
Creating table juser_user_user_permissions
Creating table juser_user
Creating table juser_admingroup
Creating table juser_document
Creating table jasset_assetgroup
Creating table jasset_idc
Creating table jasset_asset_group
Creating table jasset_asset
Creating table jasset_assetrecord
Creating table jasset_assetalias
Creating table jperm_permlog
Creating table jperm_permsudo
Creating table jperm_permrole_sudo
Creating table jperm_permrole
Creating table jperm_permrule_asset_group
Creating table jperm_permrule_role
Creating table jperm_permrule_asset
Creating table jperm_permrule_user_group
Creating table jperm_permrule_user
Creating table jperm_permrule
Creating table jperm_permpush
Creating table jlog_log
Creating table jlog_alert
Creating table jlog_ttylog
Creating table jlog_execlog
Creating table jlog_filelog
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
    
請輸入管理員用戶名 [admin]: admin
請輸入管理員密碼: [5Lov@wife]: wangadmin@123
請再次輸入管理員密碼: [5Lov@wife]: wangadmin@123
Starting jumpsever service:                                [  OK  ]
    
安裝成功,請訪問web, 祝你使用愉快。
請訪問 https: //github .com /ibuler/jumpserver  查看文檔
 
9)運行  crontab ,按期處理失效鏈接,按期更新資產信息
[root@ test -vm001  install ] # python manage.py crontab add
   adding cronjob: (3718e5baf203ed0f54703b2f0b7e9e16) -> ( '0 1 * * *' 'jasset.asset_api.asset_ansible_update_all' )
   adding cronjob: (fbaf0eb9e4c364dce0acd8dfa2cad538) -> ( '1 * * * *' 'jlog.log_api.kill_invalid_connection' )
 
上面命令執行後,查看 crontab 任務列表
[root@ test -vm001  install ] # crontab -l
0 1 * * *  /usr/bin/python  /data/jumpserver/manage .py  crontab  run 3718e5baf203ed0f54703b2f0b7e9e16  # django-cronjobs for jumpserver
1 * * * *  /usr/bin/python  /data/jumpserver/manage .py  crontab  run fbaf0eb9e4c364dce0acd8dfa2cad538  # django-cronjobs for jumpserver
 
10)jumpserver啓動
如上安裝後,jumpserver服務就會自動起來了
[root@ test -vm001  install ] # lsof -i:80
COMMAND   PID USER   FD   TYPE  DEVICE SIZE /OFF  NODE NAME
python  17994 root    3u  IPv4 1604206      0t0  TCP *:http (LISTEN)
 
Jumpserver的啓動和重啓
[root@ test -vm001  install ] # /opt/jumpserver/service.sh start/restart
 
11)訪問Jumpserver
[root@ test -vm001  install ] # lsof -i:80
COMMAND   PID USER   FD   TYPE DEVICE SIZE /OFF  NODE NAME
python  34323 root    4u  IPv4  66808      0t0  TCP *:http (LISTEN)
    
訪問http: //172 .16.220.128,使用上面自定義的admin /wangadmin @123權限登錄Jumpserver界面
---------------------------------------------------------------------------------------
舒適提示:
上面數據庫安裝的是MariaDB。若是換成mysql,好比編譯安裝mysql5.6.7,安裝目錄是 /data/mysql
那麼在執行上面 "python install.py" 命令進行安裝時,可能有下面報錯:
[root@ test -vm001  install ] # python install.py
Traceback (most recent call last):
   File  "install.py" , line 8,  in  <module>
     import  MySQLdb
   File  "/usr/lib64/python2.6/site-packages/MySQLdb/__init__.py" , line 19,  in  <module>
     import  _mysql
ImportError: libmysqlclient_r.so.16: cannot  open  shared object  file : No such  file  or directory
  
mysql安裝後的lib目錄下是libmysqlclient_r.so.18的庫文件
[root@ test -vm001  install ] # ll /data/mysql/lib/
total 236048
-rw-r--r-- 1 mysql mysql  19527418 Nov 26 20:20 libmysqlclient.a
lrwxrwxrwx 1 mysql mysql        16 Nov 26 20:25 libmysqlclient_r.a -> libmysqlclient.a
lrwxrwxrwx 1 mysql mysql        17 Nov 26 20:25 libmysqlclient_r.so -> libmysqlclient.so
lrwxrwxrwx 1 mysql mysql        20 Nov 26 20:25 libmysqlclient_r.so.18 -> libmysqlclient.so.18
lrwxrwxrwx 1 mysql mysql        24 Nov 26 20:25 libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0
lrwxrwxrwx 1 mysql mysql        20 Nov 26 20:25 libmysqlclient.so -> libmysqlclient.so.18
lrwxrwxrwx 1 mysql mysql        24 Nov 26 20:25 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x 1 mysql mysql   8864437 Nov 26 20:20 libmysqlclient.so.18.1.0
-rw-r--r-- 1 mysql mysql 213291816 Nov 26 20:24 libmysqld.a
-rw-r--r-- 1 mysql mysql     14270 Nov 26 20:20 libmysqlservices.a
drwxr-xr-x 3 mysql mysql      4096 Nov 26 20:25 plugin
  
解決辦法:
[root@ test -vm001  install ] # yum install -y libmysqlclient*
[root@ test -vm001  install ] # find / -name libmysqlclient*|grep "/usr/lib64"
/usr/lib64/libmysqlclient .so.16
/usr/lib64/libmysqlclient_r .so.16
/usr/lib64/mysql/libmysqlclient .so.16
/usr/lib64/mysql/libmysqlclient_r .so.16.0.0
/usr/lib64/mysql/libmysqlclient_r .so.16
/usr/lib64/mysql/libmysqlclient .so.16.0.0
  
[root@ test -vm001  install ] # cat /etc/ld.so.conf
......
/usr/lib64/
[root@ test -vm001  install ] # ldconfig
相關文章
相關標籤/搜索