Erlo

wazuh-docker的邮件告警配置

2025-08-26 16:29:02 发布   65 浏览  
页面报错/反馈
收藏 点赞

Wazuh-docker的邮件告警配置

缘由

为了及时发现和处理安全事件,Wazuh需要通过邮件发送告警信息。默认情况下,Wazuh使用Postfix作为邮件传输代理(MTA),因此需要对Postfix进行相应的配置,以确保告警邮件能够成功发送。
Wazuh我是用官方提供的docker compose部署的,如果是直接物理机上部署的Wazuh,请参考这个官方文档:https://Wazuh.com/blog/how-to-send-email-notifications-with-Wazuh/
原本参照官方文档在宿主主机安装了postfix,但由于各种原因,发现怎么都连不通。最后还是选择修改docker compose文件,直接用docker去部署postfix。网络上有关docker部署postfix的资料也不多,经过一番折腾,终于搭建成功。

修改docker compose文件

官方的Wazuh-docker源代码项目位置:https://github.com/wazuh/wazuh-docker
采用的单节点部署方式,文件路径为single-node/docker-compose.yml
在这个文件中,我们需要添加一个Postfix服务,并配置Wazuh使用这个服务发送邮件。邮件发送是用QQ企业邮箱来发送,有关QQ邮箱的相关配置这里不再陈述,有需要可自行查询。
docker部署的postfix版本,是用boky/postfix:4.4.0。源代码项目地址为:https://github.com/bokysan/docker-postfix
如果有进一步配置参数的需要,可以看文档资料,例如OAtuh2加密连接配置。
在文件中添加以下内容:

  postfix:
    image: boky/postfix:4.4.0
    hostname: wazuh-smtp
    restart: always
    environment:
      - HOSTNAME=wazuh-smtp
      - RELAYHOST=smtp.exmail.qq.com:465        # QQ企业邮箱SMTP服务器地址
      - RELAYHOST_USERNAME=user@example.com     # QQ企业邮箱SMTP用户名
      - RELAYHOST_PASSWORD=your_password        # QQ企业邮箱SMTP客户端专用密码
      - ALLOWED_SENDER_DOMAINS=example.com      # 允许发送邮件的域名
      - POSTFIX_smtp_tls_security_level=encrypt # 邮件传输安全级别

配置Wazuh使用Postfix发送邮件

single-node/config/wazuh_cluster文件夹下,有个wazuh_manager.conf的配置文件,涉及到邮件告警的相关配置,修改参考如下:

  
    yes
    yes
    no
    no
    yes
    wazuh-smtp           # Postfix服务的主机名
    user@example.com       # 发件人邮箱
    user@example.com           # 收件人邮箱
    12         # 每小时最大邮件发送次数
    alerts.log 
    10m
    0
  

  
    3            # 日志告警级别
    12       # 邮件告警级别
  

启动部署和调试运行

启动Docker Compose

single-node目录下,使用以下命令启动Docker Compose:

docker-compose up -d

检查服务状态

使用以下命令检查Wazuh和Postfix服务的状态:

docker-compose ps

确保所有服务都在正常运行状态。

查看日志

使用以下命令查看Wazuh和Postfix的日志:

docker-compose logs -f 

新增自定义告警规则

由于触发邮箱告警的最低等级为12,因此可以自定义一个新的告警规则来触发测试,例如ssh暴力破解攻击。
在前面的docker compose配置文件中,如果默认没修改位置的情况下,wazuh-manager的自定义规则配置文件一般在类似这个路径下:/var/lib/docker/volumes/wazuh-project_wazuh_etc/_data/rules/local_rules.xml
可以在这个文件中添加以下内容:


  
    5710
    Failed password
    SSH authentication failed (自定义等级提升)
  

5710规则是属于0095-sshd_rules.xml文件中的规则,表示SSH认证失败,默认告警级别是10。通过添加这个自定义规则,我们将其告警级别提升到12,以确保能够触发邮件告警。

测试告警规则

可以通过模拟SSH暴力破解攻击来测试告警规则是否生效,前面的规则配置只需要尝试一次登录并失败就能触发。

# 模拟SSH攻击
ssh user@server -p 22

验证告警邮件

可以通过查看Postfix的日志来验证告警邮件是否成功发送。使用以下命令查看Postfix的日志:

docker-compose logs -f 

如果发现没有收到任何告警邮件,请检查日志,根据日志反馈信息进行调整。

postfix容器中测试

如果在前面发现确实有问题,可以尝试进入容器内部进行进一步的实时测试,判断邮件发送功能本身是否正常。

docker exec -it  bash

安装mail,apt安装的是mailutils,而yum需要安装的是mailx

apt-get update
apt-get install -y mailutils  

用下面的命令进行发送邮件测试,-r后面跟着是发送人,再后面是接收人。

echo "Test email from Postfix" | mail -s "Test Email" -r "user@example.com" user@example.com

用命令测试的同时,根据前面的docker logs 观察其日志情况,来对其进行下一步处理。

测试效果

如果一切正常的情况下,你收到的邮件内容大概长这样:

Wazuh Notification.
2025 Aug 26 06:58:16

Received From: (OperationsMaintenance) any->journald
Rule: 100071 fired (level 12) -> "SSH invalid user attempt (自定义等级)"
Src IP: ::1
Portion of the log(s):

Aug 26 06:58:14 S202508019870 sshd[540257]: Invalid user invalid_user from ::1 port 58718
 --END OF NOTIFICATION

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认