文章目錄
jumpserver
一、jumpserver堡壘機
1、jumpserver簡介
Jumpserver是一款由python編寫, Django開發的開源跳板機/堡壘機系統, 助力互聯網企業高效 用戶、資產、權限、審計 管理的跳板機
1、jumpserver 是全球首款完全開源的堡壘機,使用 GNU GPL v2.0 開源協議,是符合 4A 的專業運維審計系統
2、Jumpserver 使用 Python / Django 進行開發,遵循 Web 2.0 規范,配備了業界領先的 Web Terminal 解決方案,交互界面美觀、用戶體驗好
3、Jumpserver 采納分布式架構,支持多機房跨區域部署,中心節點提供 API,各機房部署登錄節點,可橫向擴展、無並發訪問限制
2、jumpserver功能
1)#統一認證
2)#資產管理
3)#統一授權
4)#審計
5)#支持LDAP認證(輕型目錄訪問協議 Light Directory Access Protocol)
6)#Web terminal(頁面站點)
7)#SSH Server
8)#支持Windows RDP (遠程窗口)
3、jumpserver的特點
1)#完全開源,GPL授權
2)#Python編寫,容易再次開發
3)#實現了跳板機基本功能,身份認證、訪問控制、授權、審計 、批量操作等。
4)#集成了Ansible,批量命令等
5)#支持WebTerminal
6)#Bootstrap編寫,界面美觀
7)#自動收集硬件信息
8)#錄像回放
9)#命令搜索
10)#實時監控
11)#批量上傳下載
二、jumpserver的實現(安裝調試)
1、jumpserver的安裝
1)#Jumpserver 環境要求:
硬件配置: 2個CPU核心, 4G 內存, 50G 硬盤(最低)
操作系統: Linux 發行版 x86_64
Python = 3.6.x
Mysql Server ≥ 5.6
Mariadb Server ≥ 5.5.56
Redis
2)#jumpserver的下載
安裝Git :yum install git
使用克隆下載源代碼:git clone --depth=1 https://github.com/jumpserver/jumpserver.git
2、jumpserver的調試
下載jumpserver代碼—>推送jumpserver代碼—>創建jumpserver目錄—>編輯jumpserver代碼—>使用解釋器執行代碼文件(運行代碼腳本)
#編輯jumpserver使用腳本
[root@local ~]# vim /jumpserver/quick_start.sh
#!/bin/bash
function prepare_check() {
isRoot=`id -u -n | grep root | wc -l`
if [ "x$isRoot" != "x1" ]; then
echo -e "[\033[31m ERROR \033[0m] Please use root to execute the installation script (請用 root 用戶執行安裝腳本)"
exit 1
fi
processor=`cat /proc/cpuinfo| grep "processor"| wc -l`
if [ $processor -lt 2 ]; then
echo -e "[\033[31m ERROR \033[0m] The CPU is less than 2 cores (CPU 小於 2核,JumpServer 所在機器的 CPU 需要至少 2核)"
memTotal=`cat /proc/meminfo | grep MemTotal | awk '{print $2}'`
if [ $memTotal -lt 3750000 ]; then
echo -e "[\033[31m ERROR \033[0m] Memory less than 4G (內存小於 4G,JumpServer 所在機器的內存需要至少 4G)"
exit 1
fi
function install_soft() {
dnf -q -y install python2
ln -s /usr/bin/python2 /usr/bin/python
else
dnf -q -y install $1
yum -q -y install $1
elif command -v apt > /dev/null; then
apt-get -qqy install $1
elif command -v zypper > /dev/null; then
zypper -q -n install $1
elif command -v apk > /dev/null; then
apk add -q $1
else
fi
}
function prepare_install() {
for i in curl wget zip python; do
command -v $i &>/dev/null || install_soft $i
done
}
function get_installer() {
echo "download install script to /opt/jumpserver-installe (開始下載安裝腳本到 /opt/jumpserver-installe)"
if [ ! "$Version" ]; then
echo -e "[\033[31m ERROR \033[0m] Network Failed (請檢查網絡是否正常或嘗試重新執行腳本)"
fi
cd /opt
if [ ! -d "/opt/jumpserver-installer-$Version" ]; then
wget -qO jumpserver-installer-$Version.tar.gz https://github.com/jumpserver/installer/releases/download/$Version/jumpserver-installer-$Version.tar.gz || {
rm -rf /opt/jumpserver-installer-$Version.tar.gz
echo -e "[\033[31m ERROR \033[0m] Failed to download jumpserver-installer (下載 jumpserver-installer 失敗, 請檢查網絡是 否正常或嘗試重新執行腳本)"
exit 1
}
tar -xf /opt/jumpserver-installer-$Version.tar.gz -C /opt || {
rm -rf /opt/jumpserver-installer-$Version
echo -e "[\033[31m ERROR \033[0m] Failed to unzip jumpserver-installe (解壓 jumpserver-installer 失敗, 請檢查網絡是否正 常或嘗試重新執行腳本)"
exit 1
}
rm -rf /opt/jumpserver-installer-$Version.tar.gz
fi
}
function config_installer() {
cd /opt/jumpserver-installer-$Version
JMS_Version=$(curl -s 'https://api.github.com/repos/jumpserver/jumpserver/releases/latest' | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
if [ ! "$JMS_Version" ]; then
echo -e "[\033[31m ERROR \033[0m] Network Failed (請檢查網絡是否正常或嘗試重新執行腳本)"
exit 1
fi
sed -i "s/VERSION=.*/VERSION=$JMS_Version/g" /opt/jumpserver-installer-$Version/static.env
./jmsctl.sh install
}
function main(){
prepare_check
prepare_install
get_installer
config_installer
}
main
4、jumpserver的使用
1)運行源代碼腳本
2)執行安裝成功
3)啟動jumpserver
[root@local ~]# cd /jumpserver/jumpserver-installer-v2.10.2/
[root@jumpserver jumpserver-installer-v2.10.2]# ./jmsctl.sh start #啟動
jms_redis is up-to-date
jms_mysql is up-to-date
jms_core is up-to-date…
…
[root@jumpserver jumpserver-installer-v2.10.2]# ./jmsctl.sh stop #停止
三、jumpserver管理測試
1、創建 Jumpserver 用戶
用戶管理—>用戶列表—>創建用戶
2、創建管理用戶
資產管理—>管理用戶—>創建管理用戶(用戶是資產服務器上存在的系統用戶)
3、 創建系統用戶
資產管理—>系統用戶—>創建系統用戶(資產服務器上存在的系統用戶)
4、創建資產
資產管理—>ROOT(右擊可先新建節點)—>創建資產
5、資產授權
權限管理—>資產授權—>創建授權規則
6、用戶使用資產
四、jumserver管理詳解
1、#瀏覽器web上輸入主機IP地址加上8080端口號進入能錄界面
2、#默認登錄用戶名與密碼都是admin,選擇登錄,成功登錄后進行設置用戶和密碼
3、創建用戶和密碼
4)#切換新賬號使用登錄,創建用戶組,添加用戶權限及添加多用戶,為多個用護添加用戶權限,添加組及多用戶權限,設置用戶使用
5)#用戶創建完成后,進行用戶資產管理,創建用戶管理資產,對資產進行審計
6)#點擊資產管理中的資產列表,根據公司服務器創建對應的資產,也可為其加上相應標簽,在資產列表頁面,右擊default即可創建對應文件夾,或更名等等操作
7)#創建服務器需要的系統用戶,此時用戶的密碼要與服務器上的用戶密碼對應
8)#資產管理中的“命令過濾”是針對一些危險命令的禁用的,如:rm等點擊應用管理中的數據庫,可以創建數據庫與數據庫服務器上的某個數據庫連接
9)#權限管理------->資產授權,可以為用戶授權
10)#權限管理---------->應用授權,為用戶添加一些權限
11)#會話管理中:
可以通過會話管理,查看當前的會話,和歷史會話
可以通過命令記錄,查找到操作人員對機器的記錄,
可以通過web終端連接到對應的服務器
也可以通過文件管理頁面,完成對文件的操作
終端管理可以查看當前終端服務器的狀態
12)#作業中心
可以查看任務的一些詳細信息
可以讓服務器批量執行命令,當然前提是權限得夠
任務監控 一般很少用到了解即可
13)#日志審計
日志審計里就是所有服務器,操作時產生的日志
14)#系統設置中最重要的一點就是可以將我們的郵箱與jumpserver進行綁定,可以到達監控的目的,同時公司資產有任何問題,我們都可以知道,但是需要我們將郵箱的SMTP,與pop功能打開