如何在CentOS上使用Filebeat进行系统审计
导读:如何在CentOS上使用Filebeat进行系统审计 1. 安装Filebeat 在CentOS系统上,可通过YUM仓库或RPM包安装Filebeat: YUM方式(推荐):sudo yum install -y filebeat R...
如何在CentOS上使用Filebeat进行系统审计
1. 安装Filebeat
在CentOS系统上,可通过YUM仓库或RPM包安装Filebeat:
- YUM方式(推荐):
sudo yum install -y filebeat
- RPM包方式:
从Elastic官网下载对应版本的RPM包(如filebeat-7.14.0-x86_64.rpm
),然后执行:wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.14.0-x86_64.rpm sudo rpm -ivh filebeat-7.14.0-x86_64.rpm
2. 配置Filebeat(核心步骤)
编辑Filebeat主配置文件/etc/filebeat/filebeat.yml
,重点设置输入源、输出目标及审计相关参数:
- 指定监控的系统日志路径:
聚焦安全审计相关的日志文件(如认证日志/var/log/secure
、系统日志/var/log/messages
),避免收集无关日志:filebeat.inputs: - type: log enabled: true paths: - /var/log/secure # CentOS认证日志(记录登录、sudo使用等) - /var/log/messages # 系统级日志(记录内核、服务关键事件) exclude_lines: ["DBG"] # 排除调试信息,减少噪音 exclude_files: [".gz"] # 忽略压缩文件
- 添加审计标识字段:
通过fields
参数为日志添加type
(日志类型)和log_topic
(日志主题),便于后续在Elasticsearch中分类检索:fields: type: "system_audit" # 自定义日志类型标识 log_topic: "security" # 日志主题(如安全审计) fields_under_root: true # 将fields提升至日志顶层(方便ES检索)
- 配置输出到Elasticsearch:
将收集的日志发送至Elasticsearch集群(若为本地测试,可指向localhost
):output.elasticsearch: hosts: ["localhost:9200"] # Elasticsearch地址 index: "system-audit-%{ yyyy.MM.dd} " # 按日期分割索引(便于管理)
- 可选:启用Elasticsearch认证(生产环境必选):
若Elasticsearch启用了X-Pack安全功能,需添加认证信息:output.elasticsearch: hosts: ["https://elasticsearch-host:9200"] username: "elastic" # Elasticsearch用户名(如elastic) password: "your_password" # 对应密码
3. 启动与启用Filebeat服务
配置完成后,启动Filebeat并设置为开机自启动:
sudo systemctl daemon-reload # 重新加载systemd配置
sudo systemctl enable filebeat.service # 开机自启动
sudo systemctl start filebeat.service # 启动服务
验证服务状态:
sudo systemctl status filebeat.service
# 正常运行时应显示"active (running)"
4. 验证日志收集
检查Filebeat是否正常收集系统日志:
sudo tail -f /var/log/filebeat/filebeat # 查看Filebeat自身日志
若日志中出现Successfully sent log lines
或Publish event
等关键词,说明日志已成功发送至Elasticsearch。
5. 使用Kibana进行审计分析
- 配置Kibana索引模式:
登录Kibana(http://your-kibana-host:5601
),进入Stack Management > Index Patterns,创建名为system-audit-*
的索引模式(匹配Filebeat输出的索引名称)。 - 创建可视化仪表盘:
通过Visualize Library创建可视化组件(如“登录失败次数”柱状图、“sudo使用频率”折线图),添加至Dashboard中,实时监控系统安全状态。 - 搜索审计事件:
在Discover页面,选择system-audit-*
索引模式,通过message
字段过滤关键词(如Failed password
、sudo
),快速定位安全事件。
6. 安全加固措施
- 限制Filebeat权限:
以非特权用户(如elkuser
)运行Filebeat,降低安全风险:sudo useradd -r -s /sbin/nologin elkuser sudo chown -R elkuser:elkuser /etc/filebeat /var/log/filebeat sudo systemctl edit filebeat.service # 添加以下内容(覆盖默认配置) [Service] User=elkuser Group=elkuser
- 配置防火墙:
仅允许可信IP访问Elasticsearch端口(如9200),防止未授权访问:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="9200" protocol="tcp" accept' sudo firewall-cmd --reload
- 定期更新Filebeat:
关注Elastic官网更新,及时升级Filebeat至最新版本,修复安全漏洞。
7. 高级配置(可选)
- 日志解析增强:
使用processors
对日志进行结构化处理(如提取timestamp
、user
字段),提升检索效率:filebeat.inputs: - type: log paths: ["/var/log/secure"] processors: - dissect: # 解析secure日志中的时间、用户、IP等信息 tokenizer: "%{ timestamp} %{ user} %{ action} %{ ip} " field: "message" target_prefix: "" # 将解析结果添加至日志顶层
- 多输出目标:
同时将日志发送至Logstash(进行更复杂的过滤)和Elasticsearch(直接存储):output.logstash: hosts: ["localhost:5044"] output.elasticsearch: hosts: ["localhost:9200"]
通过以上步骤,即可在CentOS上使用Filebeat高效收集系统日志,并通过Elasticsearch+Kibana实现安全审计分析,及时发现潜在的安全威胁。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在CentOS上使用Filebeat进行系统审计
本文地址: https://pptw.com/jishu/718620.html