本帖最后由 陈璨 于 2021-9-15 17:05 编辑
1、本文用于记录在实施订单号:□□□□□□□□ 、x x有限公司的阿里云上vDAS问题的解决方案 2、本文档适用vDAS 2.0.3 版本,其他版本是否适用该文档请联系400-630-6430进行确认。 3、本文会尽可能详细的还原作者在部署vDAS的时候遇到的情况和现象,所以对于一些有经验的工程师来说会略显繁琐。 4、如果觉得文章太长不想看,可以直接跳到第五段看问题总结 GDRC-20210831
二、 问题背景概述 1、客户基于等保需求,需要对阿里云上的web服务器部署数据库审计vDAS组件。 2、需审计数据库:mysql 使用端口:3306 承载系统:centos 7.9 64位
三、 问题描述 1、按照vDAS 2.0.3提供的Linux系统部署EPS的帮助文档将EPS插件在linux系统中安装好 根据实际情况配置das_agent.ini文件。
(作者是在/vdas目录下安装的eps插件) (作者的ini文件配置如上,dev = lo的原因是客户前端与数据库都在同一台服务器,使用的localhost:3306连接的数据库。所以抓取lo口)
2、在配置好ini文件,重启eps服务。在vDAS上也配置了相关业务系统 (策略内容如上图,主要是数据库类型、数据库编码、数据库的IP地址。如果编码类型不正确,vDAS搜索日志依然会有显示但是会显示为乱码。)
3、此时查看vDAS的【运行状态】和【数据库审计日志】,发现并没有日志存在!
1、首先检查EPS插件的两个目录下的日志 /EPS插件安装目录/var/log/das_agent/ 这个日志里面会包含EPS插件和DAS设备的连接情况记录,以及一些其他告警 比如我们cat一个最新的20210831-040054.log 可以看见一条info 的记录:connect das svr succeed 这条记录意为EPS插件连接DAS成功,在问题发生的当时也是连接成功的记录。
/EPS插件安装目录/var/log/monitor/ 需要查看这个日志里面是否存在服务器系统资源占用超限导致的EPS直通日志(为避免EPS占用服务器过多内存导致业务卡顿,当检测服务器内存超限后EPS插件会停止采集日志) (这个就是服务器内存超限的日志use mem:71,内存使用71%了。当然,在这个问题中内存超限日志并没有出现!)
2、Linux系统中使用命令:netsta -antulp |grep3306 检查3306端口是否有mysql在监听 根据命令一眼可得,mysql服务正在监听127.0.0.1的tcp 3306端口
3、既然服务在监听,那有没有通信呢?这样就得在服务器上针对3306接口抓包看一下了。 使用命令:tcpdump -i lo tcp and port3306 -c 200 -s0 -nnn 抓了半天都没发现有包,于是怀疑客户在这个时候没业务流量,于是让客户前端连接数据库手动操作,生成一些数据包给tcpdump抓。
4、客户操作之后仍然抓不到3306端口的包,于是协调客户系统工程师检查mysql和前端的相关配置。发现客户前端连接mysql数据库是用的localhost去连接的,而不是127.0.0.1。 (数据库类型为mysql规定了使用默认端口3306)
①localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。 ②127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
所以使用前端使用localhost抓不到包是正常的,客户在改成127.0.0.1之后依然没有流量,于是怀疑这会确实没啥流量。但是客户去睡觉了,没法配合再打流量测试。
5、于是使用linux的tcpdump通宵进行抓包看看一夜过去3306端口是否有流量,为图省事,能够在关闭ssh工具的时候也能抓到包。就写了一条命令,让linux在后台帮我抓包。 (tcpdump -i lo port 3306 -c 200 -s0 -w /home/elo.pcap &) 解释一下命令: -i lo 指定抓lo口的包 Port 3306 只抓3306端口的包,而没有限制tcp或者udp -c 200 限制抓两百个包后停止进程,避免抓的太多占用硬盘空间。 -s0 抓取完整的包 -w /home/elo.pacp将抓到的包写入某个文件中 ( &) 括号内的语句放在后台执行
6、第二天将抓的包取下来一看,确实抓到了 但是DAS上依然没有生成相关日志 这个时候就得请400工程师帮忙排查了
7、400工程师最终排查结果是,虚拟化DAS的一个审计服务由于阿里云主机的网口数量不够3个(只有2个),产生异常不能正常生成日志。阿里云vDAS实例根据实施指导书,使用的是计算网络增强型sn1ne规格族:ecs.sn1ne.large规格
但是这个实例类型,阿里云上只支持配置两个弹性网卡
8、由于升级配置涉及到费用,所以研发解除限制网口数量限制让服务可以正常运行。但是vDAS放开限制后需要使用其他的授权,也就是老版本的AF、AC导入序列号进行授权那样。由于vDAS原来授权是使用VLS云服务器统一授权,此时需要区域交付发邮件给相关人走流程修改授权方式。在这之后vDAS可以正常获取到数据库的审计日志了!
1、由于vDAS服务要求,阿里云部署的时候可以使用ecs.sn1ne.xlarge及以上规格实例进行承载,因为该实例类型可以配置3个弹性网卡。避免服务异常(阿里云服务器选型时建议请售前工程师提供支持)
2、本文仅供参考!测试、交付、售后相关问题解决方案及思路请查阅最佳实践或者联系400工程师取得支持!
|