JumpServer-20190212-实验开源堡垒机

版权声明:欢迎转载,并请引用链接。 https://blog.csdn.net/u012251305/article/details/87095925

Intro

目前的应用场景是需要解决大量未经授权,拿到 root 账户之后,随意修改某些系统配置文件,导致业务出现问题时,debug 时间加长。所以,上收权限,统一入口,日志记录就变得很有意义。
开发堡垒机需要解决的问题

JumpServer 特性

JumpServer 特性

JumpServer 大版本的架构变化

v1.x

v1.x

v2.0

pexpect 改为 Paramiko,前端 UI 改进。

v3.0

v3.0

目前版本

目前版本
其实是可以看到 JumpServer 在演进的过程中一步步走向成熟,虽然还是有很多的问题存在,但是技术的革新过程是很明显的。
关于每个组件的详细说明,这里不多加赘述了,简单说分为 SSH 模块和 Web 模块两个部分。 JumpServer 主要 focus 在 Web 模块,来维护整个资产集群、用户授权等。剩下的 Luna、Coco 和 Guacamole 中, Luna 是 Web SSH 的前端,Coco 负责 SSH 、Telnet 和 Web Socket 的后台连接,Guacamole 则是负责 RDP 连接。大致可以这么理解,剩下的可以参详官网的说法。

安装

Docker 安装

简述一下:

#  1. 本地安装 mariadb,注意授权,否则容器内可能读取不了
yum -y install mariadb mariadb-devel mariadb-server
systemctl enable mariadb
systemctl start mariadb
systemctl status mariadb
export DB_PASSWORD=password
# 注意这个 % 表示任意节点都可以访问该 mysql 服务
mysql -uroot -e "create database jumpserver default charset 'utf8'; grant all on jumpserver.* to 'jumpserver'@'%' identified by '$DB_PASSWORD'; flush privileges;"

#  2. 本地安装 redis,注意需要设置为外部可访问,否则同上
yum install epel-release
yum install redis
systemctl enable redis
systemctl start redis
# 修改 redis 可以被其他节点访问
vi /etc/redis.conf 
    bind 0.0.0.0
systemctl restart redis

# 3. docker run,注意端口绑定之后,服务器对外的这些端口的防火墙需要也对应打开
docker run --name jms_all -d \
-v /opt/mysql:/var/lib/mysql \
-p 80:80 \
-p 2222:2222 \
-e BOOTSTRAP_TOKEN=token \
-e DB_ENGINE=mysql \
-e DB_HOST=192.168.10.128 \
-e DB_PORT=3306 \
-e DB_USER=jumpserver \
-e DB_PASSWORD=password \
-e DB_NAME=jumpserver \
-e REDIS_HOST=192.168.10.128 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD= \
jumpserver/jms_all:latest

Ubuntu 16.04 物理节点上本地安装

和 docker 安装没有太大出入,或者可以说,跟着官网安装,基本没啥大问题,官网中本地安装比 docker 的部分详细很多。
除了 nginx 的部分写错了一个目录名称:/etc/nginx/site-enabled/ 应该是 /etc/nginx/sites-enabled/。

另:如果 Ubuntu 本地配置的 repo 没有 python 3,那么可以 apt-add-repository。
Ubuntu14.04 安装 python3.6

遗留问题

接下来,还需要 focus 一些问题:

  1. vi 内的操作记录不了
  2. 认证走 LDAP
  3. 节点操作的权限申请及审批后续如何设计
  4. 应用、后台数据和数据库的 HA :mysql / redis / 应用 / 录像信息的共享存储
  5. 系统用户可根据操作新加,但是删除操作并不会在机器上做对应操作
  6. 如何减小运维成本,将 JumpServer 和 已有系统进行联动操作,包括 vsphere,是否有必要再做一个 cmdb(JumpServer 有友好的 api 可以调用,URL:http://jumpserver_ip/docs)
  7. 进一步定制系统用户的权限,需要配合 ansible 或其他可操作物理节点的命令脚本

Reference

  1. 官网 - JumpServer demo 截图
  2. JumpServer 架构变化
  3. 官网 - JumpServer ubuntu 本地安装
  4. 官网 - JumpServer docker 安装

补充

  1. 资源删除之后,历史会话还在,授权会跟着被删除,若此时新加同名或同 ip 资源,JumpServer 会认为这是一个全新的节点,所以接下去的操作不会受到影响
  2. 资源组和用户组对于授权是一个很好的入口
  3. 后台会每小时定期检查管理帐号的联通性
  4. 4A 指的是 Account 帐号 / Authentication 认证 / Authorization 授权 / Audit 审计

猜你喜欢

转载自blog.csdn.net/u012251305/article/details/87095925