堡壘機

 

 

 

1、堡壘機介紹html

在一個特定網絡環境下,爲了保障網絡和數據不受外界入侵和破壞,而運用各類技術手段實時收集和監控網絡環境中每個組成部分的系統狀態、安全事件、網絡活動,以便集中報警、及時處理及審計定責。
咱們又把堡壘機叫作跳板機,簡易的跳板機功能簡單,主要核心功能是遠程登陸服務器和日誌審計。
比較優秀的開源軟件jumpserver,認證、受權、審計、自動化、資產管理。
商業堡壘機:齊治, Citrix XenApp

2、搭建簡易堡壘機linux

具有堡壘機的條件是,該機器有公司和私網,其中私網和機房其餘機器互通
設計堡壘機思路:
跳板機安全設置(iptables端口限制、登陸限制sshd_config)
用戶、命令權限限制(第三方軟件:jailkit) http://blog.chinaunix.net/uid-28310119-id-3503318.html
客戶機器日誌審計 
http://www.68idc.cn/help/server/linux/2014042190951.html

3、搭建簡易堡壘機 – 安裝jailkit實現chrootnginx

cd /usr/local/src/
wget https://olivier.sessink.nl/jailkit/jailkit-2.19.tar.bz2
tar jxvf jailkit-2.19.tar.bz2
cd jailkit-2.19
./configure
make && make install
mkdir /home/jail   
chmod 755 /home/jail        若是執行下面的報錯在給權限便可

把經常使用命令放到虛擬系統的目錄下/home/jail
jk_init -v -j /home/jail/ basicshell            shell相關的
jk_init -v -j /home/jail/ editors                    編輯器vim
jk_init -v -j /home/jail/ netutils                網絡相關的
jk_init -v -j /home/jail/ ssh                遠程登錄的ssh
mkdir /home/jail/usr/sbin
cp /usr/sbin/jk_lsh /home/jail/usr/sbin/jk_lsh   至關於虛擬系統的shell,放到/usr/sbin下
建立多個用戶,重複執行如下操做便可,沒建立一個用戶執行一次
useradd baoleiji   
passwd baoleiji
jk_jailuser -m -j /home/jail baoleiji            建立虛擬系統的用戶

vim /home/jail/etc/passwd //把baoleiji那一行的/usr/sbin/jk_lsh改成/bin/bash

登陸baoleiji用戶測試web

vim /etc/ssh/sshd_config  改爲no只能用祕鑰登錄shell

登錄的源ip:vim /etc/hosts.allow        能夠限制ip登錄,除了allow中限制的ip以外,其餘的都不能登錄數據庫

限制來源ip,客戶機只能用跳板機登錄,其餘機器不能登陸vim

vim /etc/hosts.allow瀏覽器

vim /etc/hosts.deny安全

此時在鏈接002機器已沒法正常鏈接,須要經過登陸的跳板機鏈接,若是須要使用baoleiji帳號登錄,須要在對方機器建立baoleiji這個用戶bash

4、搭建簡易堡壘機 – 日誌審計

如下操做是須要在全部被登陸機器上作的:

mkdir /usr/local/records
chmod 777 /usr/local/records/
chmod +t /usr/local/records/   t權限,防刪除

vim /etc/profile //添加

if [ ! -d  /usr/local/records/${LOGNAME} ]        #LOGNAME指的是登錄的用戶名是哪一個
then
mkdir -p /usr/local/records/${LOGNAME}            #建立這個用戶的目錄
chmod 300 /usr/local/records/${LOGNAME}            #給這個用戶300權限,只能執行和寫
fi
export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history"        #指定記錄歷史記錄的文件
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'   #執行的最後一條命令記錄進去

從新登錄客戶端

建立用戶,經過跳板機登錄,作一些操做

回到002機器上,能夠看到生成了zhangsan目錄,和操做的記錄

5、開源堡壘機jumpserver介紹

官網www.jumpserver.org
Jumpserver是一款使用Python, Django開發的開源跳板機系統, 助力互聯網企業高效 用戶、資產、權限、審計 管理
Auth 統一認證
CMDB 資產管理
統一受權
日誌審計
自動化運維(ansible)

6、安裝jumpserver

具體安裝步驟參考:https://blog.51cto.com/roben/2159929    和官方文檔https://docs.jumpserver.org/zh/docs/step_by_step.html,兩個文檔能夠互相參考,官方文檔有的步驟沒有,須要參考第一個連接

如下是文檔中操做須要注意的地方:   注意連接中的配置文件名稱和官方文檔的配置文件名稱不一樣,不能直接使用

防火牆:selinux 關閉:setenforce 0

systemctl stop firewalld.service

運行Jumpserver

cd /opt/jumpserver
./jms start all -d    # 後臺運行使用 -d

運行coco:

cd /opt/coco
./cocod start -d  # 後臺運行使用 -d
vim config.yml   修改配置文件,SECRET_KEY可使用文件中的命令生成,並修改數據庫配置信息

7js5bFUI3l3Ad7EDji0VEcdoMRpm13tCrygy4PBQDvDej5j1U

cd /opt/jumpserver/
./jms start all -d  在後臺運行,瀏覽器訪問IP地址:8080 默認帳號:admin 密碼:admin

下面表明運行成功,瀏覽器正常訪問,線上環境須要把8080端口加入到白名單

vim /etc/rc.local  加入以下內容

source /opt/py3/bin/activate ; cd /opt/jumpserver; ./jms start all -d  &>/dev/null       重啓時 jumpserver自動啓動

 

部署coco時,使用官方文檔中的:正常部署 coco 組件

修改coco配置文件

cd /opt/coco
cp config_example.yml config.yml
vim config.yml
BOOTSTRAP_TOKEN 須要從 jumpserver/config.yml 裏面獲取, 保證一致

配置完成後,啓動coco:./cocod start -d      -d在後臺運行

啓動成功後,在頁面上選擇:會話管理->終端管理 能夠看到

啓動成功能夠看到5000端口和2222端口

若是報以下錯誤,說明第一次啓動時已經註冊了,下次就不能再用這個名字,重啓能夠解決,或者在官方配置文件中使用官方文檔中的:正常部署 coco 組件

測試:

本機訪問:    ssh -p2222 admin@localhost   密碼是admin

配置Nginx整合各組件


使用Nginx作反向代理:

vim nginx.conf
把include下的內容全刪除,留一個 } 
而後到conf.d目錄下,建立一個jumpserver.conf
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 -s reload

啓動nginx,並開機啓動

systemctl start nginx
systemctl enable nginx

此時能夠在瀏覽器使用80端口訪問
服務所有啓動後, 訪問 jumpserver 服務器 nginx 代理的 80 端口, 不要經過8080端口訪問

7、Jumpserver使用

使用xshell鏈接

端口2222

使用密鑰登錄:

在我的信息中選擇更改SSH密鑰:

使用putty或者xshell生成密鑰,並存放到authorized_keys,把公鑰複製到頁面上

在頁面我的信息中選擇更改SSh密鑰,把公鑰複製進來

提交後,使用admin用戶登陸,使用2222端口

8、Jumpserver裏面的用戶管理

jumpserver用戶用來登陸jumpserver(web界面、ssh登陸)
 管理用戶用來自動建立客戶機上的系統用戶、批量執行命令等操做
 客戶機上的系統用戶,用來經過jumpserver去登陸每一臺客戶機的用戶,最好和用戶管理->用戶列表中的一致

管理用戶使用ssh私鑰:

在192.168.183.133上手動生成:        ssh-keygen -f jumpserver        -f指定祕鑰的名字

而後把jumpserver(私鑰)可使用xshell中的sz下載到本機,而後把文件放到頁面中去

9、資產管理

建立新的資產,選擇管理用戶,管理用戶須要到192.168.183.3這臺機器上去建立,這個管理用戶的意義我的理解就是訪問服務器的帳號

 

由於建立管理用戶時設置了私鑰,因此須要在此處增長公鑰,經過祕鑰去鏈接jumpserver用戶

步驟:

su - jumpserver
mkdir .ssh
chmod 700 .ssh
cd .ssh
建立公鑰    vim authorized_keys ,把生成的公鑰放到此文件中
chmod 600 .ssh/authorized_keys
退出jumpserver用戶,回到root下:visudo進行設置
測試鏈接:    ssh -i jump user1@127.0.0.1   不提示輸入密碼即成功
在192.168.183.3上切換到jumpserver用戶  :    su - jumpserver

把剛剛在192.168.183.133機器上手動生成的公鑰複製過來:     (sudo) vi .ssh/authorized_keys

ssh -i jumpserver jumpserver@192.168.183.3       -i指定私鑰,與183.3機器的公鑰匹配便可,無需輸入密碼,上方提示輸入密碼說明配置有問題

若是須要輸入密碼,要查看對應用戶的目錄下/home/user1/.ssh/authorized_keys  該文件是否有足夠的權限,還有生成的密鑰對的權限 chmod 600 jump  jump是私鑰

 

管理用戶要有root的權限

使用root用戶,在192.168.183.3機器上修改:    visudo 給予用戶sudo權限

jumpserver ALL=(ALL)    NOPASSWD: ALL

登錄jumpserver用戶

使用sudo命令

使用祕鑰配對成功鏈接後,回到頁面,更新硬件信息,會把鏈接的主機配置信息更新出來,任務進程能夠在做業中心中查看

系統用戶須要下發到資產列表中的主機裏:

在權限管理->資產受權中添加規則


資產管理 ->  系統用戶詳情:

自動推送須要打開,此時會在受權規則的機器中自動推送此用戶

登陸模式選自動登陸

建立資產受權前沒有此用戶,建立完成後,用戶已下發

此時登錄這個用戶,輸入對應主機的id進行鏈接,此處是經過密碼登錄的,若是修改了密碼,會致使沒法自動登陸

相關文章
相關標籤/搜索