Snort 可以使用 X-Forward-For 或 X-Real-IP 标头而不是源来写入日志吗?

Snort 可以使用 X-Forward-For 或 X-Real-IP 标头而不是源来写入日志吗?

我们使用 HAProxy 作为第 7 层的负载均衡器,以便我们可以终止 SSL 并使用 Snort 检查流量。问题是 Snort 将负载均衡器视为源,而不是原始客户端。我们添加了 X-Forward-For 标头,但找不到让 snort 以此为源写入日志的方法。

我们在 snort 配置中设置了 enable_xff,但这只会将 IP 放入 Extra Data 部分的统一日志中。它不包含在标准 syslog 中。

统一日志是二进制的,我们读取snort日志所需的工具无法处理它。

有没有办法强制 snort 在其日志中写入正确的 IP?

答案1

可能太晚了,但这个链接可能有用:

https://www.snort.org/faq/readme-http_inspect

摘自上面的链接:

默认的 X-Forwarded-For 和 True-Client-IP 标头始终存在。它们可以在 xff_headers 配置中明确指定,以确定其优先级。如果未指定,它们将自动添加到 xff 列表中作为最低优先级标头。

例如,假设我们有以下(缩写的)HTTP 请求标头:

... Host: www.snort.org X-Forwarded-For: 192.168.1.1 X-Was-Originally-Forwarded-From: 10.1.1.1 ...

使用默认的 xff 行为(无 xff_headers),“X-Forwarded-For”标头将用于在 unified2 日志中提供 192.168.1.1 原始客户端 IP 地址。自定义标头不会被解析。

和:

xff_headers { [ x-was-originally-forwarded-from 1 ] [ x-another-forwarding-header 2 ] [ x-forwarded-for 3 ] }

X-Was-Originally-Forwarded-From 标头具有最高优先级,其值 10.1.1.1 将作为原始客户端 IP 记录在 unified2 日志中。

但有:

xff_headers { [ x-was-originally-forwarded-from 3 ] [ x-another-forwarding-header 2 ] [ x-forwarded-for 1 ] } 

现在 X-Forwarded-For 标头具有最高优先级,并且已记录其值 192.168.1.1。

相关内容