暗号化されたトラフィックを持つ HAproxy 上の Snort IDS

暗号化されたトラフィックを持つ HAproxy 上の Snort IDS

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

関連情報