我希望所有 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 集成页面中设置的“自定义名称”字段相同。现在您的
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"
非常迅速地发出警报:如果您没有看到警报,请检查您的日志是否有任何错误配置:
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/