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-8export LC_ALL=zh_CN.UTF-8echo 'LANG="zh_CN.UTF-8"' > /etc/locale.confyum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release gitwget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xztar xf Python-3.6.1.tar.xz -C /usr/local && cd /usr/local/Python-3.6.1# 这里必须执行编译安装,否则在安装Python库依赖时会有麻烦..../configure && make && make installcd /optpython3 -m venv py3# 使用Python3的环境source /opt/py3/bin/activate# 前面有(py3)(py3) [root@k8s-master1 opt]## 一下都是使用的Python3的环境git clone git://github.com/kennethreitz/autoenv.gitecho 'source /opt/autoenv/activate.sh' >> ~/.bashrcsource ~/.bashrc
2、下载Jumpserver
git clone https://github.com/jumpserver/jumpserver.gitcd jumpservergit checkout master
3、安装所需的Python modules
echo "source /opt/py3/bin/activate" > /opt/jumpserver/.envcd jumpserver/requirements/yum -y install $(cat rpm_requirements.txt)pip install --upgrade pippip 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 redissystemctl enable redissystemctl start redis
5、安装MySQL
https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
yum list | grep mysqlvi /etc/yum.repos.d/mysql-community.repo[mysql57-community]name=MySQL 5.7 Community Serverbaseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/enabled=1gpgcheck=0 # 改为gpgcheck=0 不检查密钥gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7yum repolist enabled | grep mysqlyum install mysql-community-server -ysystemctl start mysqldsystemctl status mysqldmysql -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_KEYSECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`echo $SECRET_KEYecho "SECRET_KEY=$SECRET_KEY" >> ~/.bashrcBOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24`echo $BOOTSTRAP_TOKENecho "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc# 修改SECRET_KEYsed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.yml# 修改BOOTSTRAP_TOKENsed -i "s/BOOTSTRAP_TOKEN:/BO0TSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.yml# 生产环境应关闭DEBUG# # DEBUG: true 改为 DEBUG: falsesed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.yml# 设置日志级别:开发建议设置 DEBUG, 生产环境推荐使用 ERRORsed -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.ymlecho -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: mysqlDB_HOST: 127.0.0.1 # 自行配置 数据库相关DB_PORT: 3306DB_USER: jumpserveradminDB_PASSWORD: jumpserverpwd # 你的数据库密码DB_NAME: jumpserver# 运行时绑定端口, 将会使用 0.0.0.0:8080 0.0.0.0:8070 端口HTTP_BIND_HOST: 0.0.0.0HTTP_LISTEN_PORT: 8080WS_LISTEN_PORT: 8070# Redis配置 (前面未设置redis所以不用配置redis密码)REDIS_HOST: 127.0.0.1 # 自行配置 Redis 相关REDIS_PORT: 6379REDIS_PASSWORD: ******** # 你的redis密码
# 处理国际化rm -f apps/locale/zh/LC_MESSAGES/django.mopython apps/manage.py compilemessages
7、启动关闭Jumpserver
# 后台运行可以加 -d,# ./jms start -d./jms start./jms stop
Stop service: daphne OkStop service: celery_ansible ErrorStop service: flower Okgunicorn is stopped.Stop service: celery_default ErrorStop 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/
