一、jumpserver前置環境依賴安裝
JumpServer是國人(廣宏偉)組織開發的一款完全開源的跳板機系統,用于自動化運維等。其基于python,能夠方便地進行二次開發。官方地址http://www.jumpserver.org/。
首先需要安裝python的一些環境,這里需要先更新yum源。
epel是centos等衍生發行版,用來彌補centos內容更新有時比較滯后或是一些擴展的源缺失。
Yum install epel-release
之后使用yum clean all和yum makecache來配置下yum。
yum clean all 清除緩存目錄下的軟件包及舊的headers,yum makecache 是 將服務器上的軟件包信息 現在本地緩存,以提高搜索、安裝軟件的速度。
執行yum update
最后安裝必要的一些軟件和依賴。
yum -y install git python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel,
yum -y install sqlite-devel libffi-devel openssl-devel
由于試驗機已經安裝工git等一些工具,實際試驗中省去了一些:
PS:
1、sshpass 是一個簡單、輕量級的命令行工具,通過它我們能夠向命令提示符本身提供密碼(非交互式密碼驗證),這是在jumpserver中便于控制客戶端,有不安全因素,不在生產環境使用。
2、Lrzsz是linux中可以替代ftp進行文件上傳下載的軟件。
三、JumpServer下載安裝以及配置
通過GIt獲得git clone https://github.com/jumpserver/jumpserver
之后進入jumpserver目錄下,查看發現一個requirement.txt文件,里面是需要的python模塊拓展包。
使用pip install -r requirement.txt安裝需要的拓展,以下是安裝完成后:
python拓展安裝后,可能還有沒有安裝的系統依賴,jumpserver的requirements目錄下的rpm_requirements.txt給出了所有的需要依賴,謹慎起見,繼續安裝這個文件的內容:
Yum intstall -y cat rpm_requirements.txt
所有依賴完成后,需要配置文件,jumpserver中已經給出了一個config的demo,直接復制自定義修改即可:
在配置文件中,郵件發送和通知需要修改郵件配置部分,如圖:
最后,需要初始化數據庫,操作如下:
cd utils
Chmod +x make_migrations.sh init_db.sh
sh make_migrations.sh
sh init_db.sh
最后,需要安裝REDIS服務支持:
Yum install -y redis
REDIS安裝完成之后,啟動REDIS服務。
Service redis start
使用netstat -tunlp|grep 6379來查看redis是否已開端口
REDIS啟動成功!
最后,運行run_server.py啟動jumpserver服務:
Python run_server.py
JumpServer啟動成功。這是直接在前臺啟動服務,如果需要在后臺運行,可以使用nohup或者screen,本文此處以screen為例:
使用screen -S jumpserver python run_server.py
可以通過screen -list查看已經在后臺開啟screen
使用screen -r 97975可以跳轉到jumpserver的界面,使用ctrl+a后按d鍵可以回到tty。
至此,安裝JumpServer完畢。
二、JumpServer的簡單使用
服務啟動后,通過訪問http://主機ip:8080進行WEB端的訪問,8080端口可以在config.py中修改。
本服務搭建在實驗虛擬機中,以NAT模式接入網絡,查看IP地址如下:
192.168.128.143
在其他虛擬上上使用此IP訪問,一開始發現無法連接,一直連接超時,通過telnet 192.168.128.143 8080 端口似乎被防火墻阻塞,但是通過iptables -L查看發現并沒有攔截8080端口的規則。
嘗試關閉iptables,發現服務已經不可用。后來想起來Centos7中使用firewall代替了iptables。本文中為便捷,直接關閉firewall,而沒有添加允許8080端口的規則(不建議這樣做):
Service firewalld stop
再次訪問:
其中,默認賬號密碼都為:admin
新建立一個管理用戶dbstar(客戶端上已存在用戶且有sudo權限):
新建立一個資產(主機):
新建立一授權規則:
可以獲取客戶端主機信息等:
在新建系統用戶功能上,會出現報錯:
通過github項目的issue中查找,發現是python版本問題,JumpServer 0.4已經基于python3.6,而系統中python默認是python2.7,需要安裝python3.6環境。
以下給出與python2.7兼容下,源碼安裝python3.6,
在此寫成shell腳本集成”python3.6.1_install.sh”:
#!/bin/sh
#簡單判斷操作系統,僅在centos下運行
OS=cat /etc/*release |grep centos
if [ ! -n "$OS" ]; then
# 退出shell腳本并返回狀態碼1
echo “只在centos下!”
exit 1
else
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
fi
#從官網獲取python3.6.1源碼壓縮包
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
#創建python3.6目錄文件
mkdir /usr/local/python3
#復制包到目錄
cp Python-3.6.1.tgz /usr/local/python3
rm -rf Python-3.6.1.tgz
#切換目錄
cd /usr/local/python3/
#解壓縮
tar zxvf /usr/local/python3/Python-3.6.1.tgz
#進入壓縮后的文件
cd /usr/local/python3/Python-3.6.1
#配置準備編譯,設定安裝目錄在/usr/local/python3
./configure --prefix=/usr/local/python3
#開始編譯安裝
make&&make install
#軟連接到用戶命令環境
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
echo “python3.6 complete!!!”
#安裝完成,接下來切換python3.6環境
cd /opt
#創建虛擬環境(python3后自帶支持)
python3 -m venv py36
#啟用python3.6.1的環境
source /opt/py36/bin/activate
echo “all operation complete!!!”