slack-api - OSSEC Slack 集成

标签 slack-api

我希望所有 OSSEC 通知都路由到 Slack 房间而不是电子邮件。 2.9.Beta5 有一个 ossec-slack.sh 主动响应脚本。我的 ossec.conf 的相关部分是:

<command>
  <name>ossec-slack</name>
  <executable>ossec-slack.sh</executable>
  <expect>srcip</expect>
  <timeout_allowed>no</timeout_allowed>
</command>


<active-response>
  <command>ossec-slack</command>
  <location>local</location>
  <level>1</level>
</active-response>

这适用于 SSH 登录(失败和成功),但据我所知不会触发其他任何事情。我做错了什么/其他人是怎么做的?这只是测试版软件是测试版软件吗?

最佳答案

首先确保您的 ossec-slack.sh文件在顶部有正确的信息:

# FILE: /var/ossec/active-response/bin/ossec-slack.sh

SLACKUSER="ossec"
CHANNEL="#slack_chanel"  # include the hash "#"
SITE="https://hooks.slack.com/services/TOKEN"
SOURCE="ossec2slack"

您的 "SLACKUSER"与您在 Slack WebHook 集成页面中设置的“自定义名称”字段相同。

SLACKUSER Integration Example

现在您的 ossec-slack.sh文件已设置,您可以手动测试您的 Slack 集成:
/var/ossec/active-response/bin/ossec-slack.sh

手动运行脚本将从您的警报日志文件中发布最近的条目:
/var/ossec/logs/alerts/alerts.log

当此脚本作为主动响应触发时,它只会发布当前警报的信息,而不是从您的日志文件发布。

当您确认您可以手动发布 Slack 消息后,将以下 XML 块添加到您的 ossec.conf文件:

<!-- FILE: /var/ossec/etc/ossec.conf -->

<ossec_config>
    <command>
        <name>ossec-slack</name>
        <executable>ossec-slack.sh</executable>
        <expect></expect> <!-- no expect args required -->
        <timeout_allowed>no</timeout_allowed>
    </command>

    <active-response>
        <command>ossec-slack</command>
        <location>local</location>
        <level>3</level>
    </active-response>
</ossec_config>

每当触发 3 级或以上警报时,上述设置将发布到您的 Slack channel 。

注: <expect> 中不需要任何参数标签。但是<expect>标签本身,是必需的。见 OSSEC 的 active-response documentation想要查询更多的信息。

要测试此集成,请重新启动 ossec 服务器:
/var/ossec/bin/ossec-control restart

您应该看到 "OSSEC Started"非常迅速地发出警报:

OSSEC Message posted to Slack

如果您没有看到警报,请检查您的日志是否有任何错误配置:
tail /var/ossec/etc/logs/ossec.log
tail /var/ossec/logs/active-responses.log

关于slack-api - OSSEC Slack 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37033692/

相关文章:

rest - 如何通过 Slack API 设置提醒?

slack-api - Slack Incoming Web Hooks - 发送消息@channel

c# - 如何通过 C# 的 Slack-App 作为用户而不是应用程序在特定 channel 中发布带有附件的消息

node.js - Slackbot 发出 HTTP 请求

modal-dialog - 在 Modal 的 view_submission 之后更新移动设备中的 Slack Home 选项卡(views.publish)

django - 松弛事件 API : Events are posted (multiple times) for responses of own bot user

python - 将装饰器与 Python Slack API 一起使用

python - 如何使用上传图像的 permalink_public URL 将其包含在消息中?

javascript - 如何仅显示收到的最新数据?

slack-api - 谷歌管理报告 API 中的同一应用程序的不同客户端 ID 意味着什么?