vlambda博客
学习文章列表

EAK运维架构审计Linux事件

架构图(如下):

  1. Auditbeat

  2. 介绍:

  3. Auditbeat是一种轻量级的数据收集器,可以收集linux审计框架的数据、监控文件完整性,您可以将其安装在服务器上,以审核系统上的用户和进程的活动。 例如,您可以使用AuditbeatLinux Audit Framework收集和集中审核事件。 您还可以使用Auditbeat来检测对关键文件(如二进制文件和配置文件)的更改,Auditbeat是一种Elastic Beat 它基于libbeat框架


  4. 架构:

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

  6. 【采集】:采集器使用Auditbeat进行审计日志采集

  7. 【存储】:采集后的日志直接输出到ElasticSearch

  8. 【查询】:查询使用KibanaElasticSearch对接,进行日志可视化分析


  9. 场景(审计):

  10. 1.实时监控系统进程

  11. 2.系统文件属性事件

  12. 3.系统用户登陆事件

  13. 4.系统用户执行命令

  14. 5.系统用户事件审计

  15. 6.系统安装所需安装包


  16. 官网链接:https://www.elastic.co/guide/en/beats/auditbeat/7.4/index.html

下载:Linux System Package:AuditBeat(Version:7.4.2):curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-7.4.2-linux-x86_64.tar.gzElasticSearch(Version:7.4.2):curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-linux-x86_64.tar.gzKibana(Version:7.4.2):curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.4.2-linux-x86_64.tar.gz
解压:tar -xvf auditbeat-7.4.2-linux-x86_64.tar.gz tar -xvf elasticsearch-7.4.2-linux-x86_64.tar.gztar -xvf kibana-7.4.2-linux-x86_64.tar.gz
  1. 禁用:系统守护进程 auditd 会影响 Auditbeat Audited 模块的正常使用,所以必须将其禁用。

  2. service auditd stop #停止

  3. systemctl disable auditd.service #禁用

配置Java环境(ES)yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-develjava -version
ElasticSearch:配置并启动ES(配置文件如下图):ulimit -a #此时我们默认的Open Files 是1024,需要调整限制vim /etc/security/limits.conf添加如下内容:* soft nofile 65536* hard nofile 131072* soft nproc 2048* hard nproc 4096vim /etc/sysctl.conf添加以下内容vm.max_map_count=655360 #设置单个JVM下支撑线程数然后如下:sysctl -p #使其生效ES不允许用root启动,所以需要创建普通用户EAK然后启动ES~useradd EAK #创建用户chown EAK.EAK /usr/local/elasticsearch -R #修改用户属性#相对路径./bin/elasticsearch-setup-passwords interactive #开启安全认证 输入Y然后设置各个用户密码使用普通用户启动ES:su - EAK -c /usr/local/elasticsearch/bin/elasticsearch #启动验证:建议直接用web输入密码访问9200端口验证
ES Config:#################################### Http #####################################http.port: 9200network.host: 0.0.0.0 #定义访问地址http.max_content_length: 100mb#################################### Node #####################################node.name: node-1 #定义节点名字cluster.initial_master_nodes: ["node-1"]#################################### security #####################################xpack.security.enabled: true #开启密码认证xpack.security.transport.ssl.enabled: true#################################### Paths ####################################path.data: /usr/local/elasticsearch/datapath.logs: /usr/local/elasticsearch/logs############## Memory #################设置内存熔断参数,防止写入或查询压力过高导致OOM#indices.breaker.total.limit: 30%##indices.breaker.request.limit: 6%##indices.breaker.fielddata.limit: 3%##调小查询使用的cache,避免cache占用过多的jvm内存,具体数值可根据使用场景调整 #indices.queries.cache.count: 500##indices.queries.cache.size: 5%##适当增大写入buffer和bulk队列长度,提高写入性能和稳定性#indices.memory.index_buffer_size: 15%###读写文件方式#index.store.type: niofs
  1. Kibana:

  2. 配置好kibana的配置文件后直接启动:

  3. ./bin/kibana --allow-root #允许root启动

#设置kibana启动端口server.port: 9090#允许访问IP地址的网段server.host: "0.0.0.0"#将kibana设置为中文i18n.locale: "zh-CN"#设置es地址elasticsearch.hosts: ["http://127.0.0.1:9200"]#xpack认证配置xpack.security.encryptionKey: "something_at_least_32_characters"xpack.reporting.encryptionKey: "b_random_string"#配置es访问密码elasticsearch.username: "kibana"elasticsearch.password: ""#使用高德地图map.tilemap.url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}'#Kibana刚启动时等待Elasticsearch的时间,单位mselasticsearch.startupTimeout: 5000#Elasticsearch等待分片响应的时间elasticsearch.requestTimeout: 30000
启动成功后,我们直接访问Kibana服务(如下)需要密码验证 端口:9090   用户为:elastic  

EAK运维架构审计Linux事件

  1. AuditBeat

  2. ./auditbeat test config -e #测试配置

  3. ./auditbeat setup --dashboards #手动加载模板 模板路径为:kibana下的11个json

  4. 配置文件自动加载配置:

  5. setup.dashboards.enabled: true #自动加载模板

auditbeat.modules:- 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: | -a exit,always -F arch=b64 -F euid=0 -S execve -k root_acct -a exit,always -F arch=b32 -F euid=0 -S execve -k root_acct -a exit,always -F arch=b64 -F euid>=1000 -S execve -k user_acct -a exit,always -F arch=b32 -F euid>=1000 -S execve -k user_acct- module: file_integrity paths: - /bin - /usr/bin - /sbin - /usr/sbin - /etc- module: system datasets: - host # General host information, e.g. uptime, IPs - login # User logins, logouts, and system boots. - package # Installed, updated, and removed packages - process # Started and stopped processes - socket # Opened and closed sockets - user # User information exclude_files: - '(?i)\.sw[nop]$' - '~$' - '/\.git($|/)' state.period: 12h user.detect_password_changes: true login.wtmp_file_pattern: /var/log/wtmp* login.btmp_file_pattern: /var/log/btmp*setup.template.settings: index.number_of_shards: 1setup.template.name: "auditbeat" setup.template.pattern: "auditbeat-*" #setup.template.enabled: 'false' #这里表示是否启用模板setup.kibana: host: "127.0.0.1:9090"# setup.dashboards.enabled: trueoutput.elasticsearch:# # Array of hosts to connect to. hosts: ["127.0.0.1:9200"] username: "elastic" password: ""index: "other.auditbeat-%{[beat.version]}-%{+yyyy.MM.dd}"processors: - add_host_metadata: ~ - add_cloud_metadata: ~
  1. shell命令过滤:

  2. 示出Kibana user.nameprocess.executableprocess.argstags选定的字段。




  3. 过滤器是user.name: rootauditd.data.syscall: execve

  4. 每秒刷新一次数据

  5. 命令审计:

EAK运维架构审计Linux事件

  1. TTY审核

  2. 当系统中发生TTY事件时,Auditbeat Audited模块也可以拾取它们。配置system-authPAM配置文件以启用TTY音频。只有根TTY事件将被实时记录。用户事件通常会缓冲到exitTTY审计需要捕获内置外壳命令等pwdtest等。

  3. 追加以下内容以/etc/pam.d/system-auth对所有用户启用审核

    session required pam_tty_audit.so enable=*



  1. 实时监控系统进程


  2. 审计 系统一些正在使用的pid

EAK运维架构审计Linux事件

  1. 系统文件属性事件

  2. 审计 执行 可读 可写 权限

EAK运维架构审计Linux事件

  1. 系统用户登陆事件

  2. 审计 成功用户 & 失败用户

EAK运维架构审计Linux事件

  1. 系统用户执行命令

  2. 审计 普通用户 & 管理员

EAK运维架构审计Linux事件

  1. 系统用户事件

  2. 审计 对用户 新增 改密 删除

EAK运维架构审计Linux事件

  1. 系统安装所需安装包

  2. 审计 安装mariadb安装包

EAK运维架构审计Linux事件


演示完毕EAK运维架构审计Linux事件,欢迎大家关注哈,学到即赚到,谢谢支持