我希望将所有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登录(失败和成功),但据我所知,不会触发任何其他操作。我做错了什么/别人怎么做?这只是测试版软件是测试版软件吗?
答案 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集成页面中设置的“自定义名称”字段相同。
现在您的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"
提醒:
如果您没有看到警报,请检查日志中是否存在任何配置错误:
tail /var/ossec/etc/logs/ossec.log
tail /var/ossec/logs/active-responses.log