Sinoregal dbAudit一次复杂网络环境的模拟搭建
1、项目背景
Sinoreal dbAudit 是一款基于数据库通讯协议分析和 SQL 解析技术的数据库安全审计系统,由SC、SE、SA、SL 共四个模块系统组成,可分布式部署并且可支持多个 SA。其中 SC 负责数据的呈现和业务的处理,SE 负责通讯协议分析和 SQL 解析,SA 负责捕获目标数据库的各项信息,SL 负责审计数据的持久化存储。
dbAudit 通常部署在与目标数据库同个内网环境下,此法既能保证数据传输的物理网络隔绝,也能保证有足够的带宽传输SQL。但随着云平台快速发展,很多企业纷纷上云,将数据库搬到云平台的虚拟主机上,而多数的云平台无法提供足够安全和有效的数据审计服务。
有个客户 D 因为云平台受限,无法在云平台下申请到足够部署 dbAudit 的主机环境,希望在本地的内网环境下安装 dbAudit 系统的主要服务SC、SE、SL,在云平台上安装 SA 用于监控云平台上的数据库。
2、客户网络环境
客户 D 在云平台上有 3 台服务器,但仅有一个公网 IP,没有与每个服务器对应的公网 IP,并且该公网 IP 的端口因为受到云平台规则的限制无法自由的开放,这就意味着数据无法正常入站,监控用的 SA 程序无法接收来自 dbAudit 控制终端的配置数据,在隔绝的网络环境下,我们需要模拟配置的正常下发的过程,实现监控程序 SA 知道往哪发送数据,捕获哪些数据库等,主动吞吐数据给 dbAudit 解析终端 SE。
3、模拟网络环境
需要两台处于同一局域网下的安装了 Windows 操作系统的计算机(宿主机),并且都安装了虚拟机。在其中一台宿主机1中的虚拟机中安装 Linux 操作系统后安装 dbAudit 审计系统(SE、SC、SL),另一台宿主机2则模拟用户的系统环境安装Linux 或者 Windows系统后安装对应版本的 SA 用于监控数据库。
3.1 防火墙
•宿主机以及虚拟机的防火墙都是默认开启的。
•虚拟机由于处于内网环境,没有直接暴露到公网的威胁,较为安全,我们将其关闭。
–Linux 停止防火墙systemctl stop firewalld,并设置不自启systemctl disable firewalld。
–Windows 关闭防火墙,打开控制面板--点击“Windows防火墙”--点击“启用或关闭windows防火墙”--将“关闭windows防火墙”打钩(专用和公用都要)。
•宿主机则为了模拟公网 IP 状况需要开启防火墙,后面再按需求开放特定的端口的入站规则。
•宿主机开启防火墙后,即使在同一局域网下也无法ping通。
3.2 虚拟机连接方式
•虚拟机设置 NAT 模式(与虚拟机共享主机 IP 地址)
•关闭虚拟机本地 DHCP 服务,使用静态 IP 设置,并确保能访问互联网(证明静态 IP 设置成功)。
•两台虚拟交换机模拟公网环境的两台交换机,需要两台计算机协同合作是因为一个虚拟机程序中只能开启一个虚拟交换机,无法开启第二个虚拟交换机。
3.3 端口映射
•端口映射设置的位置在虚拟机中的虚拟网络编辑器中,进入 NAT 设置后开始添加端口映射,将虚拟机1的特定端口映射成相同的宿主机端口,这样发往宿主机的数据就会被虚拟交换机转发给虚拟机了。
•做好端口映射后,宿主机1需要设置防火墙的入站规则,允许特定端口的数据入站。
•安装 dbAduit 监控程序 SA 和数据库的虚拟机2,则不做任何的端口映射,模拟客户环境数据无法入站的网络环境。
3.4 终成果
•宿主机局域网 + 虚拟机交换机 -- 模拟公网交换机环境
•虚拟交换机 + 虚拟机 -- 模拟内网网络环境
3.5 Windows网络连通性校验
Windows 测试端口是否已经开放,虚拟机2中打开 cmd 命令窗口,利用 telnet 工具测试网络是否连通
telnet [另一宿主机IP] 端口
查看监控程序 SA 是否与解析程序 SE 连线
netstat -ano | findstr 端口
3.6 Linux网络连通性校验
利用 telnet 工具测试网络是否连通
telnet [另一宿主机IP] 端口
查看监控程序 SA 是否与解析程序 SE 连线
netstat -a | grep 端口
•虚拟机如果不设置静态 IP 将无法做稳定的端口映射。
•端口映射做好后宿主机没有开放端口入站,端口映射将不起作用。
•端口映射不要设置成常见的端口,好设置上万比较安全。
•虚拟机和宿主机都有防火墙,如果不关闭或者没有开放端口,数据将无法入站,但出站不影响。
5、结语
•此方法可以实现在ping不通网络的情况下,模拟特定端口数据传递的过程。
•虚拟机防火墙也可不用关闭,但需要开放特定端口让数据进出,相对比较麻烦。
相关文章