【架构】

整个架构分采集器和存储、查询三个部分。

【采集器】

采集器使用Auditbeat进行审计日志采集。

【存储】

采集后的日志直接输出到ElasticSearch,考虑到我们的日志较少切Auditbeat具备重传功能,因此,第一个版本先使用单节点的ElasticSearch进行试运行,实际运行过程中做好ElasticSearch的监控,遇到ElasticSearch故障时可以及时启动。

【查询】

查询使用Kibana,与ElasticSearch对接,进行日志分析和监控。

【配置管理】

通过Ansible来管理Auditbeat,Auditbeat安装在各个主机上,如果有版本升级或者审计规则修改一般是大规模批量升级,通过Ansible可以很方便的管理批量的主机升级,配合Auditbeat的动态读取审计配置可以很方便的进行审计规则的调整,不需要重启Auditbeat。

【进化版】

【安装部署】

【安装ElasticSearch】

版本:elasticsearch-7.9.2

安装环境:JDK1.8

【安装步骤】

  1. 下载elasticsearch-7.9.2-linux-x86_64.tar.gz安装包

下载地址:

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-linux-x86_64.tar.gz

  1. 解压到安装目录,修改config/elasticsearch.yml,配置如下

cluster.name: es-audit

  1. 启动elasticsearch

./bin/elasticsearch -d

说明:本次为单机部署,只设置好集群名称,为后续的集群扩容做准备。

【路径说明】

logs:日志存放路径

data:数据存放路径

config:配置文件存放路径,elasticsearc.yml用来配置端口、集群、日志路径、数据路径等,jvm.options用来配置JVM的启动参数,根据需要的运行内存可以调整该参数。

卸载ElasticSearch

通过tar包安装的ElasticSearch只需要删除ElasticSearch目录即可,数据和日志都在该目录下。

【安装Auditbeat】

版本:auditbeat-7.9.2

【RPM 安装auditbeat-7.9.2-1.x86_64】

注意使用Auditd模块,有的系统需要先关闭auditd服务,执行” service auditd stop”。

【安装】

1、通过RPM安装

curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-7.9.2-x86_64.rpm

sudo rpm -vi auditbeat-7.9.2-x86_64.rpm

2、通过RPM安装后系统通过service 命令启动进程

默认安装在/etc/auditbeat/目录

启动:

service auditbeat start

停止:

service auditbeat stop

状态:

service auditbeat status

【RPM卸载auditbeat-7.9.2-1.x86_64】

1、rpm查询安装包

rpm -qa|grep beat

查询已经安装的包信息如下:

auditbeat-7.9.2-1.x86_64

2、rpm卸载安装包

rpm -e auditbeat-7.9.2-1.x86_64

【添加审计】

让审计规则动态生效

1、修改auditbeat.yml,配置动态加载,添加如下配置:

auditbeat.config.modules:

path: ${path.config}/modules.d/*.yml

reload.enabled: true

reload.period: 10s

说明:

path:制定动态的目录,当目录下的文件发生变化时,auditbeat会监听到变化,重新加载配置让新规则生效。

reload.enabled:配置是否启动动态加载,true:启动,false:不启动

reload.period:检查配置变化的频率,例如10s表示每10秒检查一次,建议配置不要低于1s,对审计来说10s完全足够了。

2、结合步骤一,我们需要创建modules.d目录,将自己的配置放在该目录下,例如,创建auditd.yml文件,配置audit的审计规则,配置如下:

- module: auditd

# Load audit rules from separate files. Same format as audit.rules(7).

#audit_rule_files: [ '${path.config}/audit.rules.d/*.conf' ]

audit_rules: |

## Define audit rules here.

## Create file watches (-w) or syscall audits (-a or -A). Uncomment these

## examples or add your own rules.

## If you are on a 64 bit platform, everything should be running

## in 64 bit mode. This rule will detect any use of the 32 bit syscalls

## because this might be a sign of someone exploiting a hole in the 32

## bit API.

#对/etc/group、/etc/passwd、/etc/gshadow文件做审计,记录用户身份验证的变化

-w /etc/group -p wa -k identity

-w /etc/passwd -p wa -k identity

-w /etc/gshadow -p wa -k identity

-w /etc/shadow -p wa -k identity

#记录文件打开、修改等因没有权限或不被允许的事件

-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -F key=access

-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -F key=access

-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -F key=access

-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -F key=access

#当用户执行一些类似于 whoami,ls 以及 lsblk 的 shell 命令时,kibana 中就会发现这些事件。euid 是用户的有效ID。0 代表会获取 root 用户和 uid >=1000 或者权限更高的其他用户的所有活动

-a always,exit -F arch=b64 -S execve -F euid=root -F key=root_acct

-a always,exit -F arch=b32 -S execve -F euid=root -F key=root_acct

-a always,exit -F arch=b64 -S execve -F euid>=1000 -F key=user_acct

-a always,exit -F arch=b32 -S execve -F euid>=1000 -F key=user_acct

3、配置好之后重新启动应用让规则生效,如需动态更改配置则只需要修改auditd.yml的配置,不需要再重启应用,其余module的动态配置也是一样,当修改配置之后会看到如下日志:

2020-10-21T02:07:16.118Z        INFO    [auditd]        auditd/audit_linux.go:243       Deleted 13 pre-existing audit rules.

2020-10-21T02:07:16.119Z        INFO    [auditd]        auditd/audit_linux.go:262       Successfully added 12 of 12 audit rules.

以上日志说明规则动态生效了。

每一次修改规则都可以通过如下命令查看修改后的规则:

./auditbeat show auditd-rules

auditbeat动态审计配置参考链接:

https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-configuration-reloading.html#auditbeat-configuration-reloading

4、管理大规模集群

当机器数量上升到一定程度时,手动修改会造成大量工作量,为方便管理,我们通过配置管理工具,例如Ansible来管理,统一修改配置,修改之后随机抽取其中几台机器进行检查是否生效即可。

【路径说明】

/etc/auditbeat:安装目录,通过rpm默认安装在此目录

/var/log/auditbeat/:日志目录。

详细的目录说明参考如下链接:

https://www.elastic.co/guide/en/beats/auditbeat/current/directory-layout.html

【Linux内核事件】

https://linux.die.net/man/8/auditctl

【安装kibana】

【安装】

  1. 下载kibana-7.9.2-linux-x86_64.tar.gz

下载地址:

https://artifacts.elastic.co/downloads/kibana/kibana-7.9.2-linux-x86_64.tar.gz

  1. 解压到安装目录,配置config,修改kibana.yml,配置如下:

修改server.host: "localhost"为对应的主机IP

修改elasticsearch.hosts: ["http://localhost:9200"]为对应的elasticsearch地址,如果有多个可以逗号分隔。

  1. 启动kibana,查看进程是否监听了5601端口(默认端口)

bin/kibana > kibana.log &

  1. 访问,通过https://localhost:5601即可访问

【附录】

此次安装的版本是基础班,永久免费,详细的功能说明见如下链接:

https://www.elastic.co/cn/subscriptions

Auditbeat日志审计方案相关推荐

  1. 菜鸟学习之linux用户行为日志审计方案

    今天学习了了sudo日志审计,专门对使用sudo命令系统的用户记录其执行的相关命令信息 说明:所谓sudo命令日志审计,不记录普通用户操作,而是记录执行sudo命令的用户操作 1.安装sudo命令,s ...

  2. linux用户行为日志审计方案

    今天学习了了sudo日志审计,专门对使用sudo命令系统的用户记录其执行的相关命令信息 说明:所谓sudo命令日志审计,不记录普通用户操作,而是记录执行sudo命令的用户操作 1.安装sudo命令,s ...

  3. linux用户行为日志审计方案(sudo)

    今日笔记: 我们今天要学习的是:sudo日志审计,专门对使用sudo命令的系统用户记录其执行的命令相关信息. 说明:所谓sudo命令日志审计,并不记录普通用户的普通操作,而是记录,那些执行sudo命令 ...

  4. linux审计日志发送,菜鸟学习之linux用户行为日志审计方案

    今天学习了了sudo日志审计,专门对使用sudo命令系统的用户记录其执行的相关命令信息 说明:所谓sudo命令日志审计,不记录普通用户操作,而是记录执行sudo命令的用户操作 1.安装sudo命令,s ...

  5. 开源日志审计系统_一文掌握mysql数据库审计特点、实现方案及审计插件部署教程...

    概述 数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断.它通过对用户访问数据库行为的记录.分 ...

  6. 日志审计携手DDoS防护助力云上安全

    简介: 本文主要介绍日志审计结合DDoS防护保障云上业务安全的新实践. 日志审计携手DDoS防护助力云上安全 1 背景介绍 设想一下,此时你正在高速公路上开车去上班,路上还有其他汽车,总体而言,大家都 ...

  7. 证券行业日志审计需求分析,产品选型和实施建议

    内控合规需求分析 当今的证券行业在IT信息安全领域面临比以往更为复杂的局面,日益迫切的信息系统审计和内控.以及持续增强的业务持续性需求,对证券行业的日志审计提出了明确的要求: 1) <证券公司内 ...

  8. 数据库审计方案简介和功能对比

    文章目录 数据库审计方案简介和功能对比 1. MySQL自带日志功能 1.1 普通日志 1.2 通过慢日志 2. 数据库插件形式 2.1 Oracle MySQL 企业版审计插件 2.2 Percon ...

  9. 安全审计——等级保护日志审计要求的一种解决方案

    前言     在网络安全等级保护中,对日志有着一系列的要求,通常以部署日志审计系统来满足等保的要求,此处我们选择syslog来实现日志的集中收集,统一管理. 等级保护要求     在这里我们主要目标是 ...

最新文章

  1. 51 jQuery插件库
  2. 谷歌像素递归超分辨率研究:怎么消灭低分辨率图像马赛克?
  3. 3.Chrome数据同步服务分析--server一片
  4. 094、Swarm 中最重要的概念(Swarm01)
  5. python __reduce__魔法方法_关于python魔术方法payload:.__class__.__mro__[2].__subclasses__()[40](/etc/passwd...
  6. 15、Java Swing JSlider:滑块组件
  7. poj1664(放苹果)
  8. 性能测试—接口压测指标分析
  9. Linux 下的U盘挂载
  10. Vue 3.2 发布了,那尤雨溪是怎么发布 Vue.js 的?
  11. ef mysql 读写分离_EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~终结~配置的优化和事务里读写的统一...
  12. 解决pycharm debug时 界面下方不出现step等按钮以及变量值的情况
  13. 双目摄像头和单目摄像头_挑战激光雷达,MAXIEYE要重新定义单目摄像头?
  14. 可能是最全的h5唤起App方案
  15. MAC-快捷键打开终端
  16. php 域名被劫持,域名被劫持怎么办
  17. ERROR command failed: npm install --loglevel error --legacy-peer-deps
  18. MacOS 开发 — App多开
  19. 如何根据业务需求来选择合适的代理IP
  20. AT4379 [AGC027E] ABBreviate

热门文章

  1. 支付宝扫码跳转到跳转页面
  2. 《Learning Enriched Features for Real Image Restoration and Enhancement》
  3. 每日随笔:笔记本WiFi突然连接不上重启才好的问题解决方式
  4. 育碧开发了一个 AI 工具,能快速找出代码中的 Bug
  5. LeetCode 对角线遍历(找规律)
  6. ifrog 1130 喵哈哈村的魔法大师╳灬兲笙疯癫°月 缩点+最小路径覆盖+背包
  7. P2837 [USACO08FEB]Dining Cows B 题解
  8. WPF --三维空间(一)(简介)
  9. 为什么建议大家使用 Linux 开发?真的很很很优雅!
  10. 华为p40pro什么时候能用上鸿蒙系统,华为P40 PRO+5G+鸿蒙系统!华为2020年最期待的手机?...