1.硬件配置
2.想要运行jumpServer,需要软件如下
jumpserver是由python编程语言开发的,旧版的是python2开发的新版的是python3开发的
执行命令如下:
# 1.清空iptables防火墙规则
iptables -F
# 禁用自启动
systemctl disable firewalld
# 关闭防火墙
systemctl stop firewalld
1.配置yum源,准备好阿里云的yum源,以及epel源
# 先安装wget
yum install wget -y
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.清空原来yum缓存,生成新的yum缓存
#清空原有的yum缓存
yum clean all
#生成新的yum缓存,便于加速软件下载
yum makecache
比如:vim wget等
yum install -y bash-completion vim lrzsz wget expect nettools nc nmap tree dos2unix htop iftop iotop unzip telnet slpsmisc nethogs glances bc ntpdate openldap-devel
yum -y install git python-pip gcc automake autoconf pythondevel vim sshpass lrzsz readline-devel zlib zlib-devel openssl openssl-devel
# 查看当前系统的字符集设置
locale
# 使用以下命令编辑/etc/locale.conf文件(将LANG变量设置为中文(中国)UTF-8编码):
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
# 运行以下命令使设置生效:
source /etc/locale.conf
# 重新启动系统,使更改生效
reboot
1.创建数据库
create database jumpserver default charset 'utf8';
2.创建用户,且设置密码
create user 'jumpserver'@'%' IDENTIFIED BY 'WWW.jumpserver@666.com';
3.给创建的用户授予访问数据库的权限
GRANT ALL PRIVILEGES ON jumpserver.* TO 'jumpserver'@'%' WITH GRANT OPTION;
4.刷新权限
flush privileges;
由于新版jumpserver是python3.6开发的,因此我们得准备好python3.6的环境
# 在线下载
cd /opt && \
wget https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz
# 解压
tar -zxf Python-3.6.10.tgz
# 指定安装路径,与编译参数
cd Python-3.6.10/
#指定位置安装,大概一分钟
./configure --prefix=/opt/python3-6-10/
ls
make && make install
1.python3的安装目录
/opt/python3-6-10/bin
2.编辑 文件
/etc/profile
# 在/etc/profile 文件中最后添加一行 PATH="/opt/python3.6.10/bin:$PATH"
PATH="/opt/python3-6-10/bin:$PATH"
或者
echo PATH="/opt/python3-6-10/bin:$PATH" >> /etc/profile
# 刷新生效
source /etc/profile
tail -1 /etc/profile
3.测试
echo $PATH
python
python3
linux系统内置了python2解析器,那么在你安装了python3之后,你的系统上有多个解释器版本共存你得明确 你的项目用哪一个解释器去运行
为什么要用虚拟环境virtualenv工具
1.更新pip源 安装python3的模块
# 更新pip下载源 (先创建一个文件)
mkdir ~/.pip
touch ~/.pip/pip.conf
# 在创建的pip.conf文件中添加pip的源
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
2.下载虚拟环境工具
pip3 install virtualenv
3.使用virtualenv虚拟环境工具,再创建出一个python3解释器,用于运行代码
virtualenv --python=python3 jmp_venv1
/opt/python3.6.10/bin/python3
/opt/Python-3.6.10/jmp_venv1/bin/python3**
# 激活虚拟环境,其实是默认修改了环境变量
source /opt/python3-6-10/jmp_venv1/bin/activate
# 使用python3此时使用的就是虚拟环境的
python3
# 退出虚拟环境,查看解释器路径(此时变回了本地的虚拟解释器)
deactivate
which python3
1.下载
wget https://github.com/jumpserver/jumpserver/releases/download/v2.1.0/jumpserver-v2.1.0.tar.gz
2.解压
tar -zxf jumpserver-v2.1.0.tar.gz
3.安装依赖关系
yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel
1.进入到以下
/opt/jumpserver-v2.1.0/requirements
目录中并复制路径,之后会用
2.安装jumpServer模块,
先激活虚拟环境,然后再安装
source /opt/python3-6-10/jmp_venv1/bin/activate
3.执行安装命令
# 首先,确保你已经安装了 MySQL 的开发依赖包
sudo yum install mysql-devel -y
# 安装完 MySQL 的开发依赖包后,安装 mysqlclient 库
pip install mysqlclient==1.3.14
cd /opt/jumpserver-v2.1.0/requirements/
pip install wheel
pip install --upgrade pip setuptools
pip install -r requirements.txt
1.先拷贝一份配置文件
cp config_example.yml config.yml
2.可以先使用命令
grep -Ev '^#|^$' config.yml
查看一下配置文件
grep -Ev '^#|^$' config.yml
3.生成密钥
if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi
#(jmp_venv1) [root@localhost jumpserver-v2.1.0]# echo $SECRET_KEY (查看生成的密钥)
Ma6MnUujphfqJAE5ILInVnZ9KMCio08MayRmMlbC2P8BavmRof
4.生成Token
if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi
# (jmp_venv1) [root@localhost jumpserver-v2.1.0]# echo $BOOTSTRAP_TOKEN (查看生成的Token)
CVl02JJvBI5s2l6i
5.修改配置文件
/opt/jumpserver-v2.1.0/config.yml
# 加密秘钥 生产环境中请修改为随机字符串,请勿外泄, 可使用命令生成
# $ cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo
SECRET_KEY: Ma6MnUujphfqJAE5ILInVnZ9KMCio08MayRmMlbC2P8BavmRof
# SECURITY WARNING: keep the bootstrap token used in production secret!
# 预共享Token coco和guacamole用来注册服务账号,不在使用原来的注册接受机制
BOOTSTRAP_TOKEN: CVl02JJvBI5s2l6i
# 使用Mysql作为数据库
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: WWW.jumpserver@666.com
DB_NAME: jumpserver
# When Django start it will bind this host and port
# ./manage.py runserver 127.0.0.1:8080
# 运行时绑定端口
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
WS_LISTEN_PORT: 8070
# Use Redis as broker for celery and web socket
# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
REDIS_PASSWORD: 123456
修改后保存退出
再次使用命令查看配置文件 (刚刚配置的信息已经有了)
grep -Ev '^#|^$' config.yml
1.可以先看以下此时jumpserver数据库中一张表也没有
2.生成相应的数据库迁移文件。这些迁移文件包含了对数据库进行更改的指令,例如创建新的表格、添加或删除字段等
进入到这个目录下cd /opt/jumpserver-v2.1.0/apps/
里面有一个manage.py
的python程序就是jumpserve留的后台入口
# 生成相应的数据库迁移文件。这些迁移文件包含了对数据库进行更改的指令,例如创建新的表格、添加或删除字段等
python3 /opt/jumpserver-v2.1.0/apps/manage.py makemigrations
3. 开始数据库迁移
python3 /opt/jumpserver-v2.1.0/apps/manage.py migrate
4.我们在查看一下jumpserver数据库中的表(可以看到生成了很多表)
1.进入到jumpserver文件中
/opt/jumpserver-v2.1.0
l里面有一个jms可执行文件
2.启动
./jms start -d
1.先开放8080端口
# 开放 8080 端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 重新加载防火墙配置
firewall-cmd --reload
koko组件实现了SSH Server和Web Terminal Server 的组件,提供 SSH和WebSocket接口,使用 Paramiko和Flask开发
1.下载koko源代码
wget https://github.com/jumpserver/koko/releases/download/v2.1.0/koko-v2.1.0-linux-amd64.tar.gz
2.解压
tar -zxf koko-v2.1.0-linux-amd64.tar.gz
3.配置
koko-v2.1.0-linux-amd64
文件夹权限(最大权限)chown -R root:root koko-v2.1.0-linux-amd64
/opt/koko-v2.1.0-linux-amd64
# 先拷贝一份
cp config_example.yml config.yml
# 修改 配置文件 config.yml
vim config.yml
# 修改以下内容
# Jumpserver项目的url, api请求注册会使用
CORE_HOST: http://127.0.0.1:8080
# 请和jumpserver 配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN: CVl02JJvBI5s2l6i
# 设置日志级别 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]
LOG_LEVEL: INFO
# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
REDIS_PASSWORD: 123456
REDIS_CLUSTERS:
REDIS_DB_ROOM:
BOOTSTRAP_TOKEN 使用的之前生成的Token具体的值
3.使用命令查看一下
grep -Ev '^#|^$' /opt/koko-v2.1.0-linux-amd64/config.yml
1.先进入到
/opt/koko-v2.1.0-linux-amd64
目录下有一个koko
的可执行文件
2.启动程序(加
-d
后台运行)
./koko -d
3.查看一下koko的进程
(jmp_venv1) [root@localhost koko-v2.1.0-linux-amd64]# ps -ef | grep koko
root 93795 1 0 21:28 ? 00:00:00 ./koko -d
root 96009 9957 0 21:29 pts/0 00:00:00 grep --color=auto koko
(jmp_venv1) [root@localhost koko-v2.1.0-linux-amd64]#
(jmp_venv1) [root@localhost koko-v2.1.0-linux-amd64]# tail /opt/koko-v2.1.0-linux-amd64/data/logs/koko.log
2024-01-04 21:28:13 [INFO] Exchange share room type: local
2024-01-04 21:28:13 [INFO] Start HTTP server at 0.0.0.0:5000
2024-01-04 21:28:13 [INFO] Start SSH server at 0.0.0.0:2222
(jmp_venv1) [root@localhost koko-v2.1.0-linux-amd64]#
该软件包github已经找不到了,可以通过docker下载,这里直接提供网盘链接
1.下载源码
链接:https://pan.baidu.com/s/1LML-8bitAWuM69bbmcRe8Q?pwd=Coke
提取码:Coke
2.解压并改名
tar -xf guacamole-v2.1.0.tar.gz
mv docker-guacamole-2.1.0 guacamole
/opt/guacamole
目录中后发现还有压缩包 我们继续解压guacamole-server-1.2.0.tar.gz
后台服务和ssh-forward.tar.gz
转发的包(jmp_venv1) [root@localhost opt]# cd guacamole/
(jmp_venv1) [root@localhost guacamole-v1-2.1.0]# ls
Dockerfile guacamole-auth-jumpserver-1.0.0.jar README.md s6-overlay-amd64.tar.gz
guacamole-1.0.0.war guacamole-server-1.2.0.tar.gz root ssh-forward.tar.gz
(jmp_venv1) [root@localhost guacamole-v1-2.1.0]# tar -zxf guacamole-server-1.2.0.tar.gz
(jmp_venv1) [root@localhost guacamole-v1-2.1.0]# tar -zxf ssh-forward.tar.gz
1.准备编译环境(安装一些依赖包)
yum install cairo-devel libjpeg-turbo-devel libpng-devel libtool uuid-devel -y
# 可选的一些依赖包(我们也安装了)
yum install freerdp-devel pango-devel libssh2-devel libtelnet-devel libvncserver-devel libwebsockets-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel -y
1.执行以下命令安装
sudo yum install epel-release -y
sudo rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install ffmpeg ffmpeg-devell -y
1.首先进入到
/opt/guacamole-v1-2.1.0/guacamole-server-1.2.0
目录下
cd /opt/guacamole/guacamole-server-1.2.0
2.开始编译、安装
./configure --with-init-dir=/etc/init.d
make && make install
mkdir -p /config/guacamole /config/guacamole/extensions /config/guacamole/record /config/guacamole/drive
chown daemon:daemon /config/guacamole/record /config/guacamole/drive
cd /config
cd /opt/
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz
cd /opt
tar -xf apache-tomcat-9.0.84.tar.gz
mv apache-tomcat-9.0.84 tomcat9
rm -rf /opt/tomcat9/webapps/*
sed -i 's/Connector port="8080"/Connector port="8081"/g' /opt/tomcat9/conf/server.xml
echo "java.util.logging.ConsoleHandler.encoding = UTF-8" >> /opt/tomcat9/conf/logging.properties
ln -sf /opt/guacamole/guacamole-1.0.0.war /opt/tomcat9/webapps/ROOT.war
ln -sf /opt/guacamole/guacamole-auth-jumpserver-1.0.0.jar /config/guacamole/extensions/guacamole-auth-jumpserver-1.0.0.jar
ln -sf /opt/guacamole/root/app/guacamole/guacamole.properties /config/guacamole/guacamole.properties
1.设置环境变量(其中的Toekn换成自己的)
export JUMPSERVER_SERVER=http://127.0.0.1:8080
echo "export JUMPSERVER_SERVER=http://127.0.0.1:8080" >> ~/.bashrc
export BOOTSTRAP_TOKEN=FBEVLP0OKHmNqRMl
export BOOTSTRAP_TOKEN=FBEVLP0OKHmNqRMl >> ~/.bashrc
export JUMPSERVER_KEY_DIR=/config/guacamole/keys
echo "export JUMPSERVER_KEY_DIR=/config/guacamole/keys" >>~/.bashrc
export GUACAMOLE_HOME=/config/guacamole
echo "export GUACAMOLE_HOME=/config/guacamole" >> ~/.bashrc
export GUACAMOLE_LOG_LEVEL=ERROR
echo "export GUACAMOLE_LOG_LEVEL=ERROR" >> ~/.bashrc
export JUMPSERVER_ENABLE_DRIVE=true
echo "export JUMPSERVER_ENABLE_DRIVE=true" >> ~/.bashrc
2.我们可以取出一个环境变量值,看是否配置成功
echo $JUMPSERVER_ENABLE_DRIVE
# 启动服务命令
/etc/init.d/guacd start
# 启动tomcat服务
sh /opt/tomcat9/bin/startup.sh
1.下载源码
wget https://github.com/jumpserver/lina/releases/download/v2.1.0/lina-v2.1.0.tar.gz
2.解压
tar -zxf lina-v2.1.0.tar.gz
3.将文件lina-v2.1.0 的所有者和所属组都设置为 nginx
#安装nginx
yum install nginx -y
systemctl start nginx
systemctl enable nginx# 需要提前装好nginx
chown -R nginx:nginx lina-v2.1.0
1.下载、解压
wget https://github.com/jumpserver/luna/releases/download/v2.1.1/luna-v2.1.1.tar.gz
tar -zxf luna-v2.1.1.tar.gz
2.修改所属
chown -R root.root luna-v2.1.1
nginx作用在处理静态文件,以及用于对jumpserver后台程序的反向代理
1.安装
yum install nginx -y
2.启动nginx并设置为开机自启
# 启动nginx
systemctl start nginx
# 设置为开机自启
systemctl enable nginx
# 查看运行状态
systemctl status nginx
1.添加以下配置信息
server {
listen 80;
# server_name _;
client_max_body_size 200m; # 文件大小限制
# 前端 Lina
location /ui/ {
try_files $uri / /index.html;
alias /opt/lina-v2.1.0/;
}
# Luna 配置
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna-v2.1.1/;
}
# Core data 静态资源
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver-v2.1.0/data/;
}
location /static/ {
root /opt/jumpserver-v2.1.0/data/;
}
# KoKo Lion 配置
location /koko/ {
# 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
proxy_pass http://localhost:5000;
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;
}
# guacamole 配置
location /guacamole/ {
# 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
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 /ws/ {
# 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_pass http://localhost:8070;
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /api/ {
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;
}
location /core/ {
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;
}
location / {
rewrite ^/(.*)$ /ui/$1 last;
}
}
2.使用
nginx -t
检查一下语法是否有误
nginx -t
# 重启
nginx -s reload
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8087/tcp --permanent
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=2222/tcp --permanent
firewall-cmd --zone=public --add-port=5555/tcp --permanent
firewall-cmd --reload
或者直接关闭防火墙
sudo systemctl stop firewalld
重新进入python3虚拟环境环境重新启动下jms
cd jumpserver-v2.1.0/
# 先停止
./jms stop
# 在启动
./jms start -d