OSSEC Slack Integration

时间:2016-05-04 16:50:13

标签: 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登录(失败和成功),但据我所知,不会触发任何其他操作。我做错了什么/别人怎么做?这只是测试版软件是测试版软件吗?

1 个答案:

答案 0 :(得分:6)

首先确保您的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通道。

注意: <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