
HAproxy を使用すると、プール内の他のすべてのバックエンド サーバーからバックエンド サーバーにトラフィックを送信できますか? ネットワークの観点からは、スイッチ上のすべてのポートを 1 つのポートにミラーリングして検査するのと同等です。この方法では、暗号化されていないすべてのトラフィックをループバック アドレスに渡し、SNORT で検査できます。
現在、HAproxy ノードへのすべてのトラフィックを暗号化し、そのトラフィックを暗号化して Web サーバーに送信しています。帯域外 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
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