linux系统运维指南 pdf_Linux系统运维安全审计Jumpserver部署

         众所周知,我是个努力想成为专业运维而又业余的网管。今天是六月的第十一天,周四, 前两天我们聊了聊Docker的部署及使用方法 ,以及Docker镜像Dockerfile编写规则,昨天也聊了Docker容器的编排工具Docker-compose。过段时间咱可以讲讲现在市面上最火热另两门技术容器编排工具 Kubernetes 和 围绕着容器监控的Prometheus。

Docker使用方法之Docker-compose 公众号:星河皆念你Linux系统Docker使用方法之Docker-compose

         今天我们主要给大家讲的是Linux安全审计系统,想象一下比如你是个运维人员。你所管理着有成百上千台服务器以及网络设备。这时候你需要给身边的开发同事 或者运维同事 开通服务器权限。总不能直接在服务器后台开通不同账号,这个管理也不方面且不安全。无法做到很好的防护 当然也可以用ansible这些命令。但最终不是理想状态。

        这时候比如有个统一的单点Web登陆系统。你在这个系统上登记添加你所有的服务器 网络设备等。然后通过web给不同的同事 开通账号 并分配不同权限。做到统一管理,并且在同事登陆的此服务器的时候 操作了哪些命令 都能实时保存下来。比如删库跑路。你之后需要事后溯源等。这时候就需要用到堡垒机这类产品。那么今天给大家讲的是Jumpserver,

我们先了解一下堡垒机 具体的形象描述 :   

堡垒机,也叫做运维安全审计系统,它的核心功能是 4A:

  1. 身份验证 Authentication

  2. 账号管理 Account

  3. 授权控制 Authorization

  4. 安全审计 Audit

简单总结一句话:堡垒机是用来控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事后溯源)。

堡垒机分为商业堡垒机和开源堡垒,开源软件毫无疑问将是未来的主流。
     为啥会讲Jumpserver,因为Jumpserver 是全球首款完全开源的堡垒机,是符合 4A 的专业运维审计系统,4A 规范(包含认证Authentication 、授权 Authorization、账号 Accounting 和审计 Auditing)的运维安全审计系统,Jumpserver 通过软件订阅服务或者软硬件一体机的方式,向企业级用户交付多云环境下更好用的堡垒机。 

  与传统堡垒机相比, Jumpserver 采用了分布式架构设计,支持多云环境并可灵活扩展。资产管理方面, Jumpserver 无并发和资产数量限制,支持水平扩容。Jumpserver 采用了业界领先的容器化部署方式,并且提供体验极佳的 Web Terminal 。Jumpserver 还可实现基于 Web 的文件传输,并且支持用户将运维审计录像保存在云端(例如 AWS S3 、阿里云 OSS 、 ElasticSearch 等)。

GitHub Star 数超过 1.1 万,Star 趋势就可以看出其受欢迎程度。 

bab4e5578fead39abdd24a57615369d0.png

当然市面上也有其他好的开源堡垒机系统 ,比如携程公司、 jimmy大佬开源的堡垒机 大家有时间可以看看star支持下  (手动@jimmy  广告打了赶紧打钱)

Webterminal bastion server (瓦特堡垒机) https://github.com/jimmy201602/webterminal

话不多说 老规矩 第一步先部署:

 官网上提供了很多部署方法 包括容器部署, 分布式 快速部署 等等。正好昨天我们讲到Docker-compose 。这里我们就是用Docker-compose的方式来部署:
环境准备 :机器配置 2核4G 40G(最低)系统版本 Centos 7 x86_64 

安装环境 Docker Docker-compose Git 和Vim

先看其他部署方法可看官网链接 https://jumpserver.readthedocs.io/
首先git clone https://github.com/jumpserver/Dockerfile.git将Docker-compose.yaml文件从github上clone下来[root@ansible-Jumpserver ~]# cd Dockerfile/[root@ansible-Jumpserver Dockerfile]# lsallinone  core  docker-compose-build.yml  docker-compose-external.yml  docker-compose.yml  guacamole  koko  LICENSE  mysql  nginx  README.md  redis[root@ansible-Jumpserver Dockerfile]# cat .env# 版本号可以自己根据项目的版本修改Version=1.5.9# MySQLDB_HOST=mysqlDB_PORT=3306DB_USER=jumpserverDB_PASSWORD=nu4x599Wq7u0Bn8EABh3J91GDB_NAME=jumpserver# RedisREDIS_HOST=redisREDIS_PORT=6379REDIS_PASSWORD=8URXPL2x3HZMi7xoGTdk3Upj# CoreSECRET_KEY=B3f2w8P2PfxIAS7s4URrD9YmSbtqX4vXdPUL217kL9XPUOWrmyBOOTSTRAP_TOKEN=7Q11Vz6R2J6BLAdO### SECRET_KEY 保护签名数据的密匙, 首次安装请一定要修改并牢记, 后续升级和迁移不可更改, 否则将导致加密的数据不可解密。# BOOTSTRAP_TOKEN 为组件认证使用的密钥, 仅组件注册时使用。组件指 koko、guacamole我们只需一条命令即可创建并启动Jumpserverdocker-compose  up -d

这里我们看一下docker-compose.yml 写的是什么

version: '3'services:  mysql:    image: jumpserver/jms_mysql:${Version}    container_name: jms_mysql    restart: always    tty: true    environment:      DB_PORT: $DB_PORT      DB_USER: $DB_USER      DB_PASSWORD: $DB_PASSWORD      DB_NAME: $DB_NAME    volumes:      - mysql-data:/var/lib/mysql    networks:      - jumpserver  redis:    image: jumpserver/jms_redis:${Version}    container_name: jms_redis    restart: always    tty: true    environment:      REDIS_PORT: $REDIS_PORT      REDIS_PASSWORD: $REDIS_PASSWORD    volumes:      - redis-data:/var/lib/redis/    networks:      - jumpserver  core:    image: jumpserver/jms_core:${Version}    container_name: jms_core    restart: always    tty: true    environment:      SECRET_KEY: $SECRET_KEY      BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN      DB_HOST: $DB_HOST      DB_PORT: $DB_PORT      DB_USER: $DB_USER      DB_PASSWORD: $DB_PASSWORD      DB_NAME: $DB_NAME      REDIS_HOST: $REDIS_HOST      REDIS_PORT: $REDIS_PORT      REDIS_PASSWORD: $REDIS_PASSWORD    depends_on:      - mysql      - redis    volumes:      - core-data:/opt/jumpserver/data    networks:      - jumpserver  koko:    image: jumpserver/jms_koko:${Version}    container_name: jms_koko    restart: always    tty: true    environment:      CORE_HOST: http://core:8080      BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN    depends_on:      - core      - mysql      - redis    volumes:      - koko-keys:/opt/koko/data/keys    ports:      - 2222:2222    networks:      - jumpserver  guacamole:    image: jumpserver/jms_guacamole:${Version}    container_name: jms_guacamole    restart: always    tty: true    environment:      JUMPSERVER_SERVER: http://core:8080      BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN      JUMPSERVER_KEY_DIR: /config/guacamole/keys      GUACAMOLE_HOME: /config/guacamole      GUACAMOLE_LOG_LEVEL: ERROR      JUMPSERVER_ENABLE_DRIVE: 'true'    depends_on:      - core      - mysql      - redis    volumes:      - guacamole-keys:/config/guacamole/keys    networks:      - jumpserver  nginx:    image: jumpserver/jms_nginx:${Version}    container_name: jms_nginx    restart: always    tty: true    depends_on:      - core      - koko      - mysql      - redis    volumes:      - core-data:/opt/jumpserver/data    ports:      - 80:80    networks:      - jumpservervolumes:  mysql-data:  redis-data:  core-data:  koko-keys:  guacamole-keys:networks:  jumpserver:  #这里 前端nginx 和koko 是对外暴露的端口  nginx 访问web版本d登录koko负责ssh登录,如80 2222 这两个端口被占用 可以自定义修改成其他端口

启动完毕之后:可用docker ps 查看

[root@ansible-Jumpserver Dockerfile]# docker psCONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                    NAMESebef2a6327e4        jumpserver/jms_nginx:1.5.9       "nginx -g 'daemon of…"   7 days ago          Up 7 days           0.0.0.0:80->80/tcp       jms_nginx6ba67ef4aec2        jumpserver/jms_koko:1.5.9        "./entrypoint.sh"        7 days ago          Up 7 days           0.0.0.0:2222->2222/tcp   jms_koko936039ca89ac        jumpserver/jms_guacamole:1.5.9   "./entrypoint.sh"        7 days ago          Up 7 days                                    jms_guacamole4b3482f7542a        jumpserver/jms_core:1.5.9        "./entrypoint.sh"        7 days ago          Up 7 days                                    jms_core0da9943d1584        jumpserver/jms_redis:1.5.9       "./entrypoint.sh"        7 days ago          Up 7 days                                    jms_redis0fdeeeb24f92        jumpserver/jms_mysql:1.5.9       "./entrypoint.sh"        7 days ago          Up 7 days                                    jms_mysql这里我们可以看到Jumpserver 所使用的组件 redis mysql nginx 等等在防火墙上开通80 和2222 这两个端口。firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=2222/tcp --permanentfirewall-cmd --reload

安装完即可访问

  • 浏览器访问: http://

  • SSH 访问: ssh -p 2222

  • XShell 等工具请添加 connection 连接, 默认 ssh 端口 2222

  • 默认管理员账户 admin 密码 admin (登录后建议立即修改)

50066160295ed22bb0f414abb73eb8c6.png

8f97372fc439505259dba79f9a81dc28.png

OK ,部署的部分就这些 明天给大家讲如何使用Jumpserver ,使公司服务器做到防护统一管理等。

如有问题可随时私信我,我是星河一个努力想成为专业运维的业余网管。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值