j91321.auditbeat
ansible角色-auditbeat
这是一个将auditd替换为Auditbeat的Ansible角色。包含了来自bfuzzy1/auditd-attack的修改版规则。
请在生产环境中使用之前仔细测试这些规则。某些规则可能会根据您的设置影响性能。有关Auditbeat的更多信息,请访问官方文档
支持的平台:
- Ubuntu 20.04
- Ubuntu 18.04
- Ubuntu 16.04
- CentOS 8
- CentOS 7
- CentOS 6
- Debian 10
- Debian 9
- Debian 8
- Gentoo **
- Windows 10*
- Windows Server 2019*
- Windows Server 2016*
Auditbeat在Oracle Enterprise Linux上也应能正常工作,但仅限于RHCK。
* Windows上的Auditbeat支持不同的功能集。如果您希望实现类似功能,请使用Sysmon + Winlogbeat。
** 如果您想在Gentoo上运行auditbeat,您需要自己创建一个ebuild。如果您想使用system
指标集,则需要带有Elastic许可的x-pack文件夹构建Auditbeat。如果要使用套接字,内核的menuconfig中需要启用Kprobe。
如果您希望从Docker容器中运行Auditbeat,请使用Elastic提供的官方Docker 镜像。
要求
无
角色变量
来自defaults/main.yml
的Ansible变量
auditbeat_service:
install_path_windows64: "C:\\Program Files\\Elastic\\auditbeat"
install_path_windows32: "C:\\Program Files\\Elastic\\auditbeat"
version: "7.13.1"
download: true
config_path: /etc/auditbeat
install_rules: true
rule_file: auditd-attack.conf
auditbeat_output:
type: "elasticsearch"
elasticsearch:
hosts:
- "localhost:9200"
security:
enabled: false
auditbeat_processors: |
- add_host_metadata: ~
- add_cloud_metadata: ~
- add_docker_metadata: ~
auditbeat_portage:
package: =auditbeat-{{ auditbeat_service.version }}
getbinpkg: no
如果您不想使用包含的规则,则可以将auditbeat_service.install_rules
更改为false。
变量auditbeat_service.download
仅影响Windows安装。如果您不想让客户端从网上下载Windows zip包,可以将其设置为false
,并将Windows zip文件放置在files/
文件夹中。请保留zip文件的命名,例如files/auditbeat-7.6.2-windows-x86.zip
。
指定不启用安全性的Elasticsearch输出配置。
auditbeat_output:
type: elasticsearch
elasticsearch:
hosts:
- "localhost:9200"
security:
enabled: true
username: auditbeat_writer
password: pa$$word
protocol: https
ssl_verification_mode: certificate
ssl_certificate_authorities:
- "/etc/ca/my_ca.crt"
指定启用安全性的Elasticsearch输出配置,服务器上必须存在证书颁发机构。
变量auditbeat_output.type
可以取三个值:logstash
、elasticsearch
或redis
。这是因为如果您将ansible的hash_behaviour
设置为merge
,使用logstash输出类型时角色会安装elasticsearch和logstash输出,这是错误的。
Redis输出示例:
auditbeat_output:
type: redis
redis:
hosts:
- 192.168.100.4
password: "redis_password"
key: "auditbeat"
使用处理器过滤高流量日志的示例
auditbeat_processors: |
- add_host_metadata: ~
- add_cloud_metadata: ~
- add_docker_metadata: ~
- drop_event.when.and:
- equals.event.action: "network_flow"
- equals.server.port: 10050
- equals.process.name: "zabbix_agentd"
来自vars/main.yml
的Ansible变量
auditbeat_module:
auditd:
enabled: true
file_integrity:
enabled: true
paths:
- /bin
- /usr/bin
- /sbin
- /usr/sbin
- /etc
system:
enabled: true
datasets:
- host
- login
- package
- process
- socket
- user
auditbeat_module_windows:
file_integrity:
enabled: true
paths:
- C:\windows
- C:\windows\system32
- C:\Program Files
- C:\Program Files (x86)
system:
enabled: true
datasets:
- host
- process
这些变量是auditbeat的默认值,适合大多数常见用例。
依赖
无
示例剧本
- name: 安装auditbeat
hosts:
- linux
- windows
become: yes
vars:
auditbeat_service:
install_path_windows32: "C:\\Program Files\\monitoring\\auditbeat"
install_path_windows64: "C:\\Program Files\\monitoring\\auditbeat"
version: "7.13.1"
download: true
install_rules: true
rule_file: auditd-attack.conf
auditbeat_template:
enabled: false
auditbeat_general:
tags:
- "auditbeat"
auditbeat_output:
type: "elasticsearch"
elasticsearch:
hosts:
- "172.16.0.11:9200"
- "172.16.0.12:9200"
- "172.16.0.13:9200"
security:
enabled: true
username: auditbeat
password: auditbeatpassword
protocol: http
roles:
- ansible-role-auditbeat
附加信息
在附加文件夹中,您可以找到几个基于Sigma auditd规则预制的Kibana保存搜索。这些保存搜索将与默认索引模式auditbeat-*配合使用。如果您使用不同的索引模式,您必须用适当的索引模式和字段名称修改保存对象。
安装步骤:
- 进入 Kibana->管理->索引模式
- 点击 创建索引模式
- 在 索引模式字段中写入 auditbeat- 并点击 下一步
- 选择 @timestamp 作为 时间过滤字段名称
- 点击 显示高级选项
- 设置 自定义索引模式 ID 为 auditbeat-
- 点击 创建索引模式
接下来,从此仓库导入保存搜索:
- 进入 Kibana->管理->保存对象
- 点击 导入
- 选择您想导入的保存搜索json文件
- 点击 导入
- 对所有保存搜索重复此操作
许可证
MIT
作者信息
j91321
规则由: bfuzzy
备注
测试需要进一步改进。正在等待beats问题 #8280 得到解决以便进行更好的测试。