HAproxy 上的 Snort IDS 具有加密流量

HAproxy 上的 Snort IDS 具有加密流量

使用 HAproxy,我可以将流量从池中的所有其他后端服务器引导到后端服务器吗?从网络角度来看,这相当于将交换机上的所有端口镜像到一个端口进行检查。这样,我可以将所有未加密的流量传递到环回地址并使用 SNORT 检查它。

目前,我们将所有进入 HAproxy 节点的流量加密,并将加密后的流量发送到我们的网络服务器。我们有一个带外 IDS,但是由于它只有我们的证书才能解密流量,因此我们无法在 haproxy 上实现完美的前向保密或 diffie-helman 密码。

我读过一些指南,其中允许您使用 F5 执行此操作,但这对我们来说不是一个选择。

感谢您提供的任何见解。

答案1

HAProxy 无法自行完成此操作,但如果您使用一组相当简单的frontend/listen声明,则可以使用iptables TEE目标(请参阅这里对于使用来说,它应该相当简单。

对于服务器的“公共” IP 为 10.10.10.10、后端为 192.168.1.11 和 192.168.1.12 且 IDS 为 172.16.172.10 的系统,HAProxy 配置将如下所示:

listen IN
  mode tcp
  bind 10.10.10.10:443
  <other HAProxy options/directives here>
  server hap-intermediary 127.1.1.1:443

frontend INTERMEDIARY
   mode http
   bind 127.1.1.1:443 ssl crt /path/to/cert.pem
  <other HAProxy options/directives here>
  <backend selection logic, if needed>

  default_backend SERVERS

backend SERVERS
  <other HAProxy options/directives here>
  server server1 192.168.1.11:443 check check-ssl ssl
  server server2 192.168.1.12:443 check check-ssl ssl

这基本上只是将所有流量以进入服务器的任何形状传递ININTERMEDIARY然后INTERMEDIARY解密请求并做出您想要的任何选择。

然后您需要设置iptables如下规则:

iptables -t mangle -A PREROUTING -d 127.1.1.1 -j TEE --gateway 172.16.172.10
iptables -t mangle -A POSTROUTING -s 127.1.1.1 -j TEE --gateway 172.16.172.10

当然,这假设所有路线和网络都已设置,但它应该可以工作。

我想您可以废除所有 HAProxy 内容并设置一些iptables规则来匹配您的后端主机并将TEE流量直接发送到您的 IDS。

# Server 1
iptables -t mangle -A PREROUTING -d 192.168.1.11 -j TEE --gateway 172.16.172.10
iptables -t mangle -A POSTROUTING -s 192.168.1.11 -j TEE --gateway 172.16.172.10
# Server 2
iptables -t mangle -A PREROUTING -d 192.168.1.12 -j TEE --gateway 172.16.172.10
iptables -t mangle -A POSTROUTING -s 192.168.1.12 -j TEE --gateway 172.16.172.10

相关内容