企業堡壘機-jumpserver


實現jumpserver堡壘機做管理

架構圖:

 

 實現原理:A主機安裝Docker環境,作為jumpserver堡壘機,后端B主機作為MySQL和Redis服務器,MySQL和Redis對普通用戶的賬號和密碼做認證,如果賬號密碼不正確,不讓其登陸jumpserver,如果A主機掛掉,不會丟失數據,因為數據都在MySQL和Redis上,此時只需要將B主機環境搭建和A主機一致即可。

環境准備:

A主機:jumpseerver   IP地址:192.168.7.100

B主機:MySQL/Redis  IP地址:192.168.7.101

一、A主機安裝docker軟件

docker容器進行安裝jumpserver:為了使用最新版本的docker,需要在阿里雲上下載最新的rpm包:

1、官方下載路徑:https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@centos-7 yum.repos.d]# cd  /etc/yum.repos.d/
[root@centos-7 yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #下載yum源倉庫
[root@centos-7 yum.repos.d]# yum install docker-ce -y  #安裝docker-ce軟件
[root@centos-7 yum.repos.d]#systemctl start docker

2、啟動docker服務,並下載對應的docker-ce包

下載的指導書網址:https://jumpserver.readthedocs.io/zh/master/dockerinstall.html

配置一個加速器,指向阿里雲的下載路徑,會下載docker鏡像比較快,沒有加速器就算了

[root@centos-7 ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://9916wlow.mirror.aliyuncs.com"]
}

重啟docker服務,並下載docker鏡像

[root@centos-7 ~]# systemctl restart docker
[root@centos-7 yum.repos.d]# docker pull jumpserver/jms_all:latest  #下載docker鏡像

二、B主機安裝數據庫 

1、安裝mariadb數據庫

[root@centos-7 yum.repos.d]# yum install centos-release-openstack-rocky.noarch  -y   #安裝openstack包,自帶mariadb最新版包,此次是為了方便,最好是二進制編譯安裝
[root@centos-7 yum.repos.d]# yum install mariadb-server  -y   #安裝mariadb包

2、啟動mariadb數據庫,創建賬號並授權

[root@centos-7 yum.repos.d]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database jumpserver default charset 'utf8'; #創建賬號
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'centos';  #授權
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> 

3、最好在其他客戶端驗證是否可以連接mysql數據庫

[root@centos-7 ~]# mysql -ujumpserver -pcentos -h192.168.7.100  #遠程登錄數據庫服務,此時可以看到可以登錄
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, 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 |
| jumpserver         |
+--------------------+
2 rows in set (0.001 sec)

MariaDB [(none)]> 

三、B主機安裝redis服務

[root@centos-7 ~]# yum install redis -y   #安裝redis
[root@centos-7 ~]# vim  /etc/redis.conf  #修改配置文件
bind 0.0.0.0  #端口綁定到0.0.0.0
requirepass centos  #密碼設置為mariadb數據庫的密碼

1、啟動redis服務,並設置為開機啟動

[root@centos-7 ~]# systemctl start redis
[root@centos-7 ~]# systemctl enable  redis

四、A主機創建docker容器

1、生成隨機加密秘鑰並創建docker容器

# 生成隨機加密秘鑰, 勿外泄
$ if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi  
$ if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi

$ docker run --name jms_all -d -p 80:80 -p 2222:2222 -e SECRET_KEY=$SECRET_KEY -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN jumpserver/jms_all:latest

# macOS 生成隨機 key 可以用下面的命令
$ if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`LC_CTYPE=C tr -dc A-Za-z0-9 < /dev/urandom | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bash_profile; echo $SECRET_KEY; else echo $SECRET_KEY; fi
$ if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`LC_CTYPE=C tr -dc A-Za-z0-9 < /dev/urandom | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bash_profile; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi

2、創建docker容器

[root@centos-7 ~]# mkdir /opt/jumpserver #創建一個目錄

#創建容器的命令如下:
docker run --name linux_docker1 -d \
  -v /opt/jumpserver:/opt/jumpserver/data/media \
  -p 80:80 \
  -p 2222:2222 \
  -e SECRET_KEY=6oNPRN7NCEWnkmB45XCRmozmzdvZ93KGQoz8PmZvDxAPPnxDRw \
  -e BOOTSTRAP_TOKEN=xPSBe9nnQc8l3GOy \
  -e DB_HOST=192.168.7.101 \
  -e DB_PORT=3306 \
  -e DB_USER=jumpserver \
  -e DB_PASSWORD=centos \
  -e DB_NAME=jumpserver \
  -e REDIS_HOST=192.168.7.101 \
  -e REDIS_PORT=6379 \
  -e REDIS_PASSWORD=centos \
  jumpserver/jms_all:latest

3、查看docker狀態

[root@openstack-2 yum.repos.d]# docker ps #查看docker狀態
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS                                        NAMES
103cc0190e3b        jumpserver/jms_all:latest   "entrypoint.sh"     7 seconds ago       Up 4 seconds        0.0.0.0:80->80/tcp, 0.0.0.0:2222->2222/tcp   linux_docker1
[root@openstack-2 yum.repos.d]# docker logs -f 103cc0190e3b  #后面加上查到的ID號,對docker進行初始化

  

 查看此時的端口號是:2222

 

3、在網頁進行登錄jumpserver堡壘機,默認用戶名是admin,密碼是admin。

 

 五、在jumpserver創建組和用戶

1、創建組

 

  

2、創建用戶

① 點擊頁面左側"用戶列表"菜單下的"用戶列表",進入用戶列表頁面。

② 點擊頁面左上角"創建用戶"按鈕,進入創建用戶頁面,填寫賬戶,角色安全,個人等信息。

其中,用戶名即 Jumpserver 登錄賬號。用戶組是用於資產授權,當某個資產對一個用戶組授權后,這個用戶組下面的所有用戶就都可以使用這個資產了。角色用於區分一個用戶是管理員還是普通用戶。

 

 六、創建資產

1、創建linux資產

(1)創建系統賬號

① 系統用戶是 Jumpserver 跳轉登錄資產時使用的用戶,可以理解為登錄資產用戶,如 web, sa, dba(ssh web@some-host), 而不是使用某個用戶的用戶名跳轉登錄服務器(ssh xiaoming@some-host); 簡單來說是 用戶使用自己的用戶名登錄Jumpserver, Jumpserver使用系統用戶登錄資產。

② 系統用戶的 Sudo 欄填寫允許當前系統用戶免sudo密碼執行的程序路徑,如默認的/sbin/ifconfig,意思是當前系統用戶可以直接執行 ifconfig 命令或 sudo ifconfig 而不需要輸入當前系統用戶的密碼,執行其他的命令任然需要密碼,以此來達到權限控制的目的。

Sudo /bin/su  # 當前系統用戶可以免sudo密碼執行sudo su命令(也就是可以直接切換到root,生產環境不建議這樣操作)
Sudo /usr/bin/git,/usr/bin/php,/bin/cat,/bin/more,/bin/less,/usr/bin/head,/usr/bin/tail  # 當前系統用戶可以免sudo密碼執行git php cat more less head tail
# 此處的權限應該根據使用用戶的需求匯總后定制,原則上給予最小權限即可。

④ 系統用戶創建時,如果選擇了自動推送 Jumpserver 會使用 Ansible 自動推送系統用戶到資產中,如果資產(交換機、Windows )不支持 Ansible, 請手動填寫賬號密碼。

Linux 系統協議項務必選擇 ssh 。如果用戶在系統中已存在,請去掉自動生成密鑰、自動推送勾選。

 

 (2)創建管理用戶

  管理用戶是服務器的 root,或擁有 NOPASSWD: ALL sudo 權限的用戶,Jumpserver 使用該用戶來推送系統用戶、獲取資產硬件信息等。

   注意:資產管理里面的所以信息,都是和資產有關,包括創建的所有用戶;jumpserver的root用戶密碼,只給jumpserver管理員登錄安裝了jumpserver的服務器使用。除此之外不用在任何地方;不用搞混了(我就搞混了)

   密碼是通過ssh遠程連接需要輸入主機root的密碼。

  

 (3)創建資產

  

 點擊以下地方,可以對當前創建的資產進行測試:

 

出現測試任務結束,說明此時的資產沒問題:

 

 (4)進行資產授權

① 節點,對應的是資產,代表該節點下的所有資產。

② 用戶組,對應的是用戶,代表該用戶組下所有的用戶。

③ 系統用戶,及所選的用戶組下的用戶能通過該系統用戶使用所選節點下的資產。

④ 節點,用戶組,系統用戶是一對一的關系,所以當擁有 Linux、Windows 不同類型資產時,應該分別給 Linux 資產和 Windows 資產創建授權規則。

將創建的系統用戶(www)授權於創建的用戶dev組,而dev組內包含zhangxiaoming用戶。

 

七、用戶使用資產

用戶登錄 Jumpserver

創建授權規則的時候,選擇了用戶組,所以這里需要登錄所選用戶組下面的用戶才能看見相應的資產。

  

用戶正確登錄后的頁面:

 

 用戶使用資產

(1)連接資產

① 點擊頁面左邊的 Web 終端:

② 打開資產所在的節點:

③ 雙擊資產名字,就連上資產了:

如果顯示連接超時,請檢查為資產分配的系統用戶用戶名和密鑰是否正確,是否正確選擇 Windows 操作系統,協議 rdp,端口3389,是否正確選擇 Linux 操作系統,協議 ssh,端口22,以及資產的防火牆策略是否正確配置等信息。接下來,就可以對資產進行操作了。

④ 測試

創建一個test

在服務器上,確實有test 文件

(2)連接windows 資源

斷開資產

點擊頁面頂部的 Server 按鈕會彈出選個選項,第一個斷開所選的連接,第二個斷開所有連接。

會話管理

可以查看普通用戶登錄到指定的賬號,能回放此用戶操作的內容,防止某些心存歹意之人進行其他操作。

 

 

  

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

  

  

 

  

  

 


免責聲明!

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



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