https://github.com/jumpserver

JumpServer 是全球首款开源的堡垒机,使用 GPLv3 开源协议,是符合 4A 规范的运维安全审计系统。 JumpServer 使用 Python 开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 方案,交互界面美观、用户体验好。 JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向扩展,无资产数量及并发限制。 改变世界,从一点点开始 …

如需进一步了解 JumpServer 开源项目,推荐阅读 JumpServer 的初心和使命

安装配置:https://docs.jumpserver.org/zh/master/dev/build/

1、环境配置

  1. # 修改字符集,否则可能报input/output error的问题,因为日志里打印了中文
  2. localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
  3. export LC_ALL=zh_CN.UTF-8
  4. echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
  5. yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
  6. wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
  7. tar xf Python-3.6.1.tar.xz -C /usr/local && cd /usr/local/Python-3.6.1
  8. # 这里必须执行编译安装,否则在安装Python库依赖时会有麻烦...
  9. ./configure && make && make install
  10. cd /opt
  11. python3 -m venv py3
  12. # 使用Python3的环境
  13. source /opt/py3/bin/activate
  14. # 前面有(py3)
  15. (py3) [root@k8s-master1 opt]#
  16. # 一下都是使用的Python3的环境
  17. git clone git://github.com/kennethreitz/autoenv.git
  18. echo 'source /opt/autoenv/activate.sh' >> ~/.bashrc
  19. source ~/.bashrc

2、下载Jumpserver

  1. git clone https://github.com/jumpserver/jumpserver.git
  2. cd jumpserver
  3. git checkout master

3、安装所需的Python modules

  1. echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env
  2. cd jumpserver/requirements/
  3. yum -y install $(cat rpm_requirements.txt)
  4. pip install --upgrade pip
  5. pip install -r requirements.txt

问题处理:找不到本地pbr

No local packages or working download links found for pbr>=2.0.0
  1. pip install pbr

4、安装Redis

  1. yum -y install redis
  2. systemctl enable redis
  3. systemctl start redis

5、安装MySQL

https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

  1. yum list | grep mysql
  2. vi /etc/yum.repos.d/mysql-community.repo
  3. [mysql57-community]
  4. name=MySQL 5.7 Community Server
  5. baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
  6. enabled=1
  7. gpgcheck=0 # 改为gpgcheck=0 不检查密钥
  8. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  9. yum repolist enabled | grep mysql
  10. yum install mysql-community-server -y
  11. systemctl start mysqld
  12. systemctl status mysqld
  13. mysql -uroot -p
  1. # 创建jumpserver数据库库并设置默认字符集
  2. create database jumpserver default charset 'utf8';
  3. # 添加jumpserveradmin用户并授权jumpserver库下的所有表的所有权限
  4. grant all on jumpserver.* to 'jumpserveradmin'@'127.0.0.1' identified by 'jumpserverpwd';
  5. flush privileges;
对于mysql8.0+,创建用户和授权须分开进行。
  1. create database jumpserver default charset 'utf8';
  2. create user 'jumpserver'@'%' identified by 'jumpserverpwd';
  3. grant all on jumpserver.* to 'jumpserver'@'%';
  4. flush privileges;

6、配置Jumpserver

参考文档:https://docs.jumpserver.org/zh/master/dev/build/

https://jumpserver.readthedocs.io/zh/master/setup_by_centos7.html

  1. cd /opt/jumpserver/
  2. cp config_example.yml config.yml
  3. # 生成SECRET_KEY
  4. SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`
  5. echo $SECRET_KEY
  6. echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc
  7. BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24`
  8. echo $BOOTSTRAP_TOKEN
  9. echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc
  10. # 修改SECRET_KEY
  11. sed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.yml
  12. # 修改BOOTSTRAP_TOKEN
  13. sed -i "s/BOOTSTRAP_TOKEN:/BO0TSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.yml
  14. # 生产环境应关闭DEBUG
  15. # # DEBUG: true 改为 DEBUG: false
  16. sed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.yml
  17. # 设置日志级别:开发建议设置 DEBUG, 生产环境推荐使用 ERROR
  18. sed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.yml
  19. # 浏览器Session过期时间,默认24小时, 也可以设置浏览器关闭则过期
  20. sed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: false/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.yml
  21. echo -e "\033[31m你的SECRET_KEY是: $SECRET_KEY\033[0m"
  22. echo -e "\033[31m你的BOOTSTRAP_TOKEN是: $BOOTSTRAP_TOKEN\033[0m"
  23. vi jumpserver.yml
  24. # 使用Mysql作为数据库
  25. DB_ENGINE: mysql
  26. DB_HOST: 127.0.0.1 # 自行配置 数据库相关
  27. DB_PORT: 3306
  28. DB_USER: jumpserveradmin
  29. DB_PASSWORD: jumpserverpwd # 你的数据库密码
  30. DB_NAME: jumpserver
  31. # 运行时绑定端口, 将会使用 0.0.0.0:8080 0.0.0.0:8070 端口
  32. HTTP_BIND_HOST: 0.0.0.0
  33. HTTP_LISTEN_PORT: 8080
  34. WS_LISTEN_PORT: 8070
  35. # Redis配置 (前面未设置redis所以不用配置redis密码)
  36. REDIS_HOST: 127.0.0.1 # 自行配置 Redis 相关
  37. REDIS_PORT: 6379
  38. REDIS_PASSWORD: ******** # 你的redis密码
  1. # 处理国际化
  2. rm -f apps/locale/zh/LC_MESSAGES/django.mo
  3. python apps/manage.py compilemessages

7、启动关闭Jumpserver

  1. # 后台运行可以加 -d,
  2. # ./jms start -d
  3. ./jms start
  4. ./jms stop
  1. Stop service: daphne Ok
  2. Stop service: celery_ansible Error
  3. Stop service: flower Ok
  4. gunicorn is stopped.
  5. Stop service: celery_default Error
  6. 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/

1、用户管理

2、资产管理

3、权限管理

4、