jumpserver堡壘機安裝及應用

jumpserver簡介

跳板機概述:
跳板機就是一臺服務器,開發或運維人員在維護過程中首先要統一登錄到這臺服務器,然後再登錄到目標設備進行維護和操作。
跳板機缺點:沒有實現對運維人員操作行爲的控制和審計,使用跳板機的過程中還是會出現誤操作、違規操作導致的事故,一旦出現操作事故很難快速定位到原因和責任人;

jumpserver概述

Jumpserver 是全球首款完全開源的堡壘機,使用 GNU GPL v2.0 開源協議,是符合 4A 的專業運維審計系統。
Jumpserver 使用 Python / Django 進行開發,遵循 Web 2.0 規範,配備了業界領先的 Web Terminal 解決方案,交互界面美觀、用戶體驗好。
Jumpserver 採納分佈式架構,支持多機房跨區域部署,中心節點提供 API,各機房部署登錄節點,可橫向擴展、無併發限制。
爲互聯網企業提供了認證,授權,審計,自動化運維等功能。

官方網站
http://www.jumpserver.org
在這裏插入圖片描述

部署Jumpserver

配置本地jumpserver yum源

 vim /etc/yum.repos.d/jumpserver.repo
[jumpserver]
name=CentOS7
baseurl=file:///root/jumpserver-packs
enable=1
gpgcheck=0

上傳壓縮包,解壓
在這裏插入圖片描述

tar -zxvf jumpserver-packs.tar.gz
tar -zxvf pip-packs.tar.gz
tar -zxvf Python-3.6.8.tgz -C /usr/local/src/

安裝依賴包

yum install -y gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

編譯安裝Python

 cd /usr/local/src/Python-3.6.8/
 ./configure --prefix=/usr/local/python
 make -j 4 && make install

給Python做軟鏈接

ln -s /usr/local/python/bin/* /usr/local/bin/

查看版本號

python3 -V
 pip3 -V

配置Python虛擬環境

Cd
python3.6 -m venv /opt/py3
source /opt/py3/bin/activate 

後面有個py3就算好了
把Python虛擬環境設爲開機自啓

echo "source /opt/py3/bin/activate" >> /root/.bashrc

安裝jumpserver
解壓

unzip jumpserver-master.zip -d /opt/
cd /opt/
mv jumpserver-master/  jumpserver
 cd /opt/jumpserver/requirements/

安裝rpm依賴

yum -y install $(cat rpm_requirements.txt)

安裝Python庫依賴

pip install --no-index --find-links=/root/pip-packs/ pyasn1 six cffi pytest-runner
cd /opt/jumpserver/requirements/
pip install --no-index --find-links=/root/pip-packs/ -r requirements.txt

在這裏插入圖片描述
拓展知識(可以不用做)

pip list  #查看安裝的包
pip freeze > requirements.txt  #將已經通過pip安裝的包的名稱記錄到 requirements.txt文件中
pip download -d /root/pip-packs/  -r 

requirements.txt 緩存pip下載包

安裝redis

yum -y install redis
 systemctl start redis 
systemctl enable redis

安裝mysql

 yum -y install mariadb mariadb-devel mariadb-server
systemctl start mariadb 
systemctl enable mariadb

創建jumpserver數據庫授權

Mysql
create database jumpserver default charset 'utf8';
grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'jumpserver'; 

生成祕鑰

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo

iAPQpPIiAM6TLlZi0DA0Lktqt5WMjFhS6PhsqM4Ky4LvS7cHd

 cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16

kSFIIMm634zOc2Y2

配置jumpserver配置文件
寫好生成的祕鑰和mysql授權的名

在這裏插入圖片描述
在這裏插入圖片描述
生成數據庫表結構和初始化數據

	cd /opt/jumpserver/utils/
sh make_migrations.sh

在這裏插入圖片描述
運行jumpserver

cd /opt/jumpserver/
 ./jms start all 

在這裏插入圖片描述
在這裏插入圖片描述
設置service腳本

vim /usr/lib/systemd/system/jms.service
[Unit]
Description=jms
After=network.target mariadb.service redis.service docker.service
Wants=mariadb.service redis.service docker.service

[Service]
Type=forking
Environment="PATH=/opt/py3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
ExecStart=/opt/jumpserver/jms start all -d
ExecRestart=/opt/jumpserver/jms restart all -d
ExecStop=/opt/jumpserver/jms stop

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl restart jms
systemctl enable jms           `設置開機自啓`

登錄
192.168.100.10:8080
輸入管理員賬號和密碼

在這裏插入圖片描述
訪問Web Terminal(web linux終端)會報錯。

在這裏插入圖片描述

要安裝koko組件

 tar -zxvf koko-master-6d4e69b-linux-amd64.tar.gz -C /opt/
chown -R root:root /opt/kokodir/
cd /opt/kokodir/
cp config_example.yml config.yml
 vim config.yml             `祕鑰和jumpserver一樣`

BOOTSTRAP_TOKEN: h8X7RRmkczrV3Dts
SECRET_KEY: cUBbafUeVjpsO9txGxKbYQhagezAzYaPfVNGQnI2AGYZIaNFL
在這裏插入圖片描述

 ./koko &       ##啓動koko

在這裏插入圖片描述

netstat -antup | grep 2222           ##查看一下端口

把koko加入開機自啓

 echo " cd /opt/kokodir && ./koko & " >> /etc/rc.local
chmod +x /etc/rc.local

在web後臺查看終端
在這裏插入圖片描述

使用ssh測試

ssh [email protected] -p 2222

在這裏插入圖片描述
有了Web Terminal以後,我們可以遠程堡壘機,然後通過堡壘機進行登錄管理服務器。

部署Luna組件
解壓

tar -zxvf luna.tar.gz -C /opt/
chown -R root:root /opt/luna/

設置nginx整合各各組件

安裝nginx

yum install -y nginx

修改配置文件

 vim /etc/nginx/nginx.conf  #把80端口修改爲808
server {
    listen       808 default_server;
    listen       [::]:808 default_server;

在這裏插入圖片描述

創建jumpserver配置文件
所有的jumpserver的服務都使用nginx來進行反向代理,開啓nginx緩存

vim /etc/nginx/conf.d/jumpserver.conf
  server {
    listen 80;

    client_max_body_size 100m;  # 錄像及文件上傳大小限制

    location /luna/ {
        try_files $uri / /index.html;
        alias /opt/luna/;  # luna 路徑, 如果修改安裝目錄, 此處需要修改
    }

    location /media/ {
        add_header Content-Encoding gzip;
        root /opt/jumpserver/data/;  # 錄像位置, 如果修改安裝目錄, 此處需要修改
    }

    location /static/ {
        root /opt/jumpserver/data/;  # 靜態資源, 如果修改安裝目錄, 此處需要修改
    }

    location /socket.io/ {
        proxy_pass       http://localhost:5000/socket.io/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log off;
    }

    location /coco/ {
        proxy_pass       http://localhost:5000/coco/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log off;
    }
     location /guacamole/ {
        proxy_pass       http://localhost:8081/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log off;
    }

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

測試配置文件

Nginx -t

在這裏插入圖片描述

啓動nginx

systemctl start nginx
systemctl enable nginx

登錄jumpserver
192.168.100.10
Luna可以打開了

在這裏插入圖片描述

配置Jumpserver
改成自己本機ip
在這裏插入圖片描述

設置jumpserver郵箱(虛擬機需要聯網)
在這裏插入圖片描述
在這裏插入圖片描述

提交完新浪郵箱會發郵件
創建用戶

在這裏插入圖片描述
編寫畫圈部分
在這裏插入圖片描述

提交完會發送郵件
在這裏插入圖片描述

點擊重製密碼

在這裏插入圖片描述
在這裏插入圖片描述
登錄到創建的用戶
在這裏插入圖片描述
創建組
在這裏插入圖片描述
在這裏插入圖片描述

添加資產
開啓新的一臺虛擬機
創建管理用戶

在這裏插入圖片描述
在這裏插入圖片描述

添加資產
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

創建命令過濾器

系統用戶可以綁定一些命令過濾器,一個過濾器可以定義一些規則 當用戶使用這個系統用戶登錄資產,然後執行一個命令 這個命令需要被綁定過濾器的所有規則匹配,高優先級先被匹配, 當一個規則匹配到了,如果規則的動作是允許,這個命令會被放行,如果規則的動作是禁止,命令將會被禁止執行, 否則就匹配下一個規則,如果最後沒有匹配到規則,則允許執行
在這裏插入圖片描述

寫上rm -rf / 以免哪個沙雕刪庫跑路*
在這裏插入圖片描述

創建命令過濾器規則

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

提交就可以啦

創建系統用戶(創建第一次可能輸入密碼的行沒有,在編輯一次就可以啦)
在這裏插入圖片描述
在這裏插入圖片描述

創建資產授權

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

測試

會話管理打開web終端

在這裏插入圖片描述
安裝個nginx(沒有不安了),和httpd
在這裏插入圖片描述

使用xshell測試
登錄我自己的“嘿嘿嘿”賬號測試連接
ssh 嘿嘿嘿@192.168.100.10 -p 2222

在這裏插入圖片描述
在這裏插入圖片描述

登錄asd主機
在這裏插入圖片描述

啓動以下剛剛安裝的httpd
在這裏插入圖片描述
測試網頁

在這裏插入圖片描述
查看asd主機歷史命令記錄
在這裏插入圖片描述
測試完成(在歷史會話也可以看到回放視頻)

實驗做到這裏就結束了,做的不好請諒解,如果有什麼問題請小夥伴們留言~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章