使用encryptionstream量在HAproxy上嗅探IDS

使用HAproxy,我可以将stream量从池中的所有其他后端服务器引导到后端服务器吗? 从networking的angular度来看,将交换机上的所有端口镜像到一个端口进行检查是可比的。 这样我就可以将所有stream量都解密到一个环回地址,并用SNORT来检查它。

目前我们将所有stream量encryption到我们的HAproxy节点,并将encryption的stream量发送到我们的networking服务器。 我们有一个带外IDS,但是因为它只有我们的证书来解密stream量,所以我们不能在haproxy上实现完美的前向保密或diffie-helman密码。

我已经阅读过指南,可以让你用F5做到这一点,但这不是我们的select。

感谢您提供的任何见解。

HAProxy本身无法做到这一点,但是如果你使用了一套相当简单的frontend/listen删除,你可以使用iptables TEE目标(请参阅这里的用法),它应该相当简单。

对于服务器的“公共”IP为10.10.10.10的系统,谁的后端是192.168.1.11和192.168.1.12,谁的IDS是172.16.172.10,则HAProxyconfiguration将如下所示:

 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的通信以任何forms进入服务器,然后INTERMEDIARY解密请求并做出你想要的任何select。

你需要设置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 

当然,这假设所有的路线和networking都设置好了,但是它应该可以工作。

我想你可以放弃所有的HAProxy的东西,并设置一些iptables规则,以匹配您的后端主机和TEE ,正确的stream量到您的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