《開源精選》是我們分享Github、Gitee等開源社區中優質項目的欄目,包括技術、學習、實用與各種有趣的內容。本期推薦的JumpServer 是全球首款開源的堡壘機,使用 GPLv3 開源協議,是符合 4A 規範的運維安全審計系統。
項目簡介
JumpServer 使用 Python 開發,遵循 Web 2.0 規範,配備了業界領先的 Web Terminal 方案,交互界面美觀、用戶體驗好。
JumpServer 採納分布式架構,支持多機房跨區域部署,支持橫向擴展,無資產數量及並發限制。
特色優勢
- 開源: 零門檻,線上快速獲取和安裝;
- 分布式: 輕鬆支持大規模並發訪問;
- 無插件: 僅需瀏覽器,極致的 Web Terminal 使用體驗;
- 多雲支持: 一套系統,同時管理不同雲上面的資產;
- 雲端存儲: 審計錄像雲端存儲,永不丟失;
- 多租戶: 一套系統,多個子公司和部門同時使用;
- 多應用支持: 資料庫,Windows遠程應用,Kubernetes。
項目安裝
一鍵部署
# 默認會安裝到 /opt/jumpserver-installer-v2.17.0 目錄
curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.17.0/quick_start.sh | bash
cd /opt/jumpserver-installer-v2.17.0
# 安裝完成後配置文件 /opt/jumpserver/config/config.txt
cd /opt/jumpserver-installer-v2.17.0
# 啟動
./jmsctl.sh start
# 停止
./jmsctl.sh down
# 卸載
./jmsctl.sh uninstall
# 幫助
./jmsctl.sh -h
負載均衡
- 除 JumpServer 自身組件外,其他組件的高可用請參考對應的官方文檔進行部署
- 按照此方式部署後,後續只需要根據需要擴容 JumpServer 節點然後添加節點到 HAProxy 即可
- 如果已經有 HLB 或者 SLB 可以跳過 HAProxy 部署,第三方 LB 要注意 session 和 websocket 問題
- 如果已經有 雲存儲 (* S3/Ceph/Swift/OSS/Azure) 可以跳過 MinIO 部署,MySQL Redis 也一樣
- 生產環境中,應該使用 Ceph 等替代 NFS,或者部署高可用的 NFS 防止單點故障
部署 NFS 服務
安裝依賴
yum -y install epel-release
安裝 NFS
yum -y install nfs-utils rpcbind
啟動 NFS
systemctl enable rpcbind nfs-server nfs-lock nfs-idmap
systemctl start rpcbind nfs-server nfs-lock nfs-idmap
配置防火牆
firewall-cmd --add-service=nfs --permanent --zone=public
firewall-cmd --add-service=mountd --permanent --zone=public
firewall-cmd --add-service=rpc-bind --permanent --zone=public
firewall-cmd --reload
配置 NFS
mkdir /data
chmod 777 -R /data
vi /etc/exports
# 設置 NFS 訪問權限, /data 是剛才創建的將被共享的目錄, 192.168.100.* 表示整個 192.168.100.* 的資產都有括號裡面的權限
# 也可以寫具體的授權對象 /data 192.168.100.30(rw,sync,no_root_squash) 192.168.100.31(rw,sync,no_root_squash)
/data 192.168.100.*(rw,sync,all_squash,anonuid=0,anongid=0)
exportfs -a