信息安全建设之基于开源搭建零信任网关-实践篇

2021-11-08 7,562

基本组件

上一篇文章里面提到提到了一个基本的框架,代码层面主要涉及到了两个组件:ztserver 和  ztgw。 其中,ztserver主要有chrome插件和web管理端两个部分, ztgw主要用来做网关的功能,实现策略的检测。 ztserver实现用户和资源的管理,包括网关的主要数据配置(通过redis数据交互)。chrome插件会将用户的token置入到特定的资源请求中,实现用户在网关的认证。ztgw 根据token识别出用户,会查询redis中的用户权限数据,判断用户是否有请求该资源的权限。可以延伸一下,通过定制浏览器来替代插件,也能扩展到移动端上,也可以加入证书实现双认证,实现更多的功能,提高用户侧安全等级。

安装

安装条件

  • ztserver开放了一个websocket跟用户端的插件进行通信,必须在ztserver的ws之前搭建一个web网关,客户端的IP是通过x-forwarded-for头部取值,其他无效。

  • ztgw和ztserver通过redis进行数据通信,ztserver会将配置数据写入redis。

  • ztgw和ztserver都会将日志写入elasticsearch(7.x),ztserver会查询elasticsearch中的数据。

  • ztserver依赖ztgw网关的firewalld-cmd 将允许访问ztgw的客户端IP写入ipset,比如:

    rule family="ipv4" source ipset="test" port port="8080" protocol="tcp" accept
    rule family="ipv4" source ipset="test" port port="8443" protocol="tcp" accept

    上面的ipset的名称即为test, 端口和协议通过rich-rule进行指定。测试环境centos8通过


管理后台说明安装

  1. Dashboard说明Dashboard - 零信任管理后台.png
  2. . 用户总数,代表ztserver管理的用户数。

  3. . 活跃用户,代表已经连接到websocket的用户数量。

  4. . 资源总数,代表资源的数量(域名的数量)。

  5. . 在线用户统计是一周之内访问ztgw的用户,即实际访问过资源的数量,目前只统计了一周之内每天的登陆的用户数。

  6. 用户管理
  7. 用户管理 - 零信任管理后台.png

. 新增用户,即添加用户,需要填写正确的邮箱,目前主要以邮箱识别用户

. 配置资源,即给用户添加可以访问的资源/域名

. 初始化,后台会给用户的邮箱发送一个token(每次访问ztgw都会带这个token,通过token识别这个用户),经过对称加密,这个token需要配置到chrome插件。

资源管理

资源管理 - 零信任管理后台.png

主要用来管理域名和资源的关系。

系统管理

系统管理 - 零信任管理后台.png

    目前只有配置邮箱,发送token的作用,一定要准确。

    网关管理

    网关管理 - 零信任管理后台.png

      目前不支持通配符,配置ztgw的证书和代理

      行为审计

      网络日志 - 零信任管理后台.png

        分别记录了连接websocket的信息和访问ztgw的信息

        网关说明

        • 网关的日志会写入rsyslog,通过定制rsyslog实现转发。

        • 支持kafka消息通信,可以写入kafka进行转发。

        说明

        • 其他细节说明,可以参考具体得doc文档,都有说明。

        • 实现模型比较简单,后面会持续更新,欢迎issue 和 star。

        • 问题讨论 Q群: 254210748。


        本文作者:技信达科技

        本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/168898.html

        Tags:
        评论  (0)
        快来写下你的想法吧!

        技信达科技

        文章数:3 积分: 0

        安全问答社区

        安全问答社区

        脉搏官方公众号

        脉搏公众号