JumpServer 是全球首款开源的堡垒机,使用 GPLv3 开源协议,是符合 4A 规范的运维安全审计系统。
JumpServer 使用 Python 开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 方案,交互界面美观、用户体验好。
JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向扩展,无资产数量及并发限制。
改变世界,从一点点开始 …
如需进一步了解 JumpServer 开源项目,推荐阅读 JumpServer 的初心和使命
安装配置:https://docs.jumpserver.org/zh/master/dev/build/
1、环境配置
# 修改字符集,否则可能报input/output error的问题,因为日志里打印了中文
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
tar xf Python-3.6.1.tar.xz -C /usr/local && cd /usr/local/Python-3.6.1
# 这里必须执行编译安装,否则在安装Python库依赖时会有麻烦...
./configure && make && make install
cd /opt
python3 -m venv py3
# 使用Python3的环境
source /opt/py3/bin/activate
# 前面有(py3)
(py3) [root@k8s-master1 opt]#
# 一下都是使用的Python3的环境
git clone git://github.com/kennethreitz/autoenv.git
echo 'source /opt/autoenv/activate.sh' >> ~/.bashrc
source ~/.bashrc
2、下载Jumpserver
git clone https://github.com/jumpserver/jumpserver.git
cd jumpserver
git checkout master
3、安装所需的Python modules
echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env
cd jumpserver/requirements/
yum -y install $(cat rpm_requirements.txt)
pip install --upgrade pip
pip install -r requirements.txt
问题处理:找不到本地pbr
No local packages or working download links found for pbr>=2.0.0
pip install pbr
4、安装Redis
yum -y install redis
systemctl enable redis
systemctl start redis
5、安装MySQL
https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
yum list | grep mysql
vi /etc/yum.repos.d/mysql-community.repo
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0 # 改为gpgcheck=0 不检查密钥
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
yum repolist enabled | grep mysql
yum install mysql-community-server -y
systemctl start mysqld
systemctl status mysqld
mysql -uroot -p
# 创建jumpserver数据库库并设置默认字符集
create database jumpserver default charset 'utf8';
# 添加jumpserveradmin用户并授权jumpserver库下的所有表的所有权限
grant all on jumpserver.* to 'jumpserveradmin'@'127.0.0.1' identified by 'jumpserverpwd';
flush privileges;
对于mysql8.0+,创建用户和授权须分开进行。
create database jumpserver default charset 'utf8';
create user 'jumpserver'@'%' identified by 'jumpserverpwd';
grant all on jumpserver.* to 'jumpserver'@'%';
flush privileges;
6、配置Jumpserver
参考文档:https://docs.jumpserver.org/zh/master/dev/build/
https://jumpserver.readthedocs.io/zh/master/setup_by_centos7.html
cd /opt/jumpserver/
cp config_example.yml config.yml
# 生成SECRET_KEY
SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`
echo $SECRET_KEY
echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc
BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24`
echo $BOOTSTRAP_TOKEN
echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc
# 修改SECRET_KEY
sed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.yml
# 修改BOOTSTRAP_TOKEN
sed -i "s/BOOTSTRAP_TOKEN:/BO0TSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.yml
# 生产环境应关闭DEBUG
# # DEBUG: true 改为 DEBUG: false
sed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.yml
# 设置日志级别:开发建议设置 DEBUG, 生产环境推荐使用 ERROR
sed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.yml
# 浏览器Session过期时间,默认24小时, 也可以设置浏览器关闭则过期
sed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: false/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.yml
echo -e "\033[31m你的SECRET_KEY是: $SECRET_KEY\033[0m"
echo -e "\033[31m你的BOOTSTRAP_TOKEN是: $BOOTSTRAP_TOKEN\033[0m"
vi jumpserver.yml
# 使用Mysql作为数据库
DB_ENGINE: mysql
DB_HOST: 127.0.0.1 # 自行配置 数据库相关
DB_PORT: 3306
DB_USER: jumpserveradmin
DB_PASSWORD: jumpserverpwd # 你的数据库密码
DB_NAME: jumpserver
# 运行时绑定端口, 将会使用 0.0.0.0:8080 0.0.0.0:8070 端口
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
WS_LISTEN_PORT: 8070
# Redis配置 (前面未设置redis所以不用配置redis密码)
REDIS_HOST: 127.0.0.1 # 自行配置 Redis 相关
REDIS_PORT: 6379
REDIS_PASSWORD: ******** # 你的redis密码
# 处理国际化
rm -f apps/locale/zh/LC_MESSAGES/django.mo
python apps/manage.py compilemessages
7、启动关闭Jumpserver
# 后台运行可以加 -d,
# ./jms start -d
./jms start
./jms stop
Stop service: daphne Ok
Stop service: celery_ansible Error
Stop service: flower Ok
gunicorn is stopped.
Stop service: celery_default Error
Stop service: beat Ok
8、部署koko
Koko 是 Go 版本的 coco,重构了 coco 的 SSH/SFTP 服务和 Web Terminal 服务。9、部署guacamole
10、部署luna
11、部署nginx
12、Jumpserver登陆测试
13、快速入门
参考:https://docs.jumpserver.org/zh/master/install/setup_by_lb/