
使用 HAproxy,我可以將流量從池中的所有其他後端伺服器定向到後端伺服器嗎?從網路的角度來看,這相當於將交換器上的所有連接埠鏡像到一個連接埠以進行檢查。這樣我就可以將所有未加密的流量傳遞到環回位址並使用 SNORT 檢查它。
目前,我們將所有流量加密到 HAproxy 節點,並將加密的流量傳送到我們的網路伺服器。我們有一個帶外 IDS,但由於它只有我們的憑證來解密流量,因此我們無法在 haproxy 上實現完美的前向保密或 diffie-helman 密碼。
我讀過的指南允許您使用 F5 執行此操作,但這對我們來說不是一個選擇。
感謝您提供的任何見解。
答案1
HAProxy 本身無法做到這一點,但如果您使用了一組相當簡單的frontend/listen
declarations,則可以使用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