HAproxy 上的 Snort IDS 具有加密流量

HAproxy 上的 Snort IDS 具有加密流量

使用 HAproxy,我可以將流量從池中的所有其他後端伺服器定向到後端伺服器嗎?從網路的角度來看,這相當於將交換器上的所有連接埠鏡像到一個連接埠以進行檢查。這樣我就可以將所有未加密的流量傳遞到環回位址並使用 SNORT 檢查它。

目前,我們將所有流量加密到 HAproxy 節點,並將加密的流量傳送到我們的網路伺服器。我們有一個帶外 IDS,但由於它只有我們的憑證來解密流量,因此我們無法在 haproxy 上實現完美的前向保密或 diffie-helman 密碼。

我讀過的指南允許您使用 F5 執行此操作,但這對我們來說不是一個選擇。

感謝您提供的任何見解。

答案1

HAProxy 本身無法做到這一點,但如果您使用了一組相當簡單的frontend/listendeclarations,則可以使用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

這基本上只是將所有流量以IN任何INTERMEDIARY形式進入伺服器,然後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

相關內容