Snort IDS pada HAproxy dengan lalu lintas terenkripsi

1

Menggunakan HAproxy, dapatkah saya mengarahkan lalu lintas ke server backend dari semua server backend lainnya di pool? Dari sudut pandang jaringan, itu akan sebanding dengan mirroring semua port pada switch ke satu port untuk diperiksa. Dengan cara ini saya bisa meneruskan semua lalu lintas yang tidak terenkripsi ke alamat loopback dan memeriksanya dengan SNORT.

Saat ini kami mengenkripsi semua lalu lintas ke dalam simpul HAproxy kami dan mengirimkan lalu lintas yang dienkripsi ke server web kami. Kami memiliki IDS band yang keluar, namun karena hanya memiliki sertifikat kami untuk mendekripsi lalu lintas, kami tidak dapat mengimplementasikan kerahasiaan forward forwarder sempurna atau sandi diffie-helman pada haproxy.

Saya sudah membaca panduan yang memungkinkan Anda melakukan ini dengan F5, namun itu bukan pilihan bagi kami.

Terima kasih atas wawasan yang bisa Anda berikan.

Leonard Pringle
sumber

Jawaban:

2

HAProxy tidak dapat melakukannya sendiri, tetapi jika Anda menggunakan seperangkat frontend/listendeklerasi yang cukup sederhana , Anda dapat menggunakan iptables TEEtarget (lihat di sini untuk penggunaannya), itu harus cukup sederhana.

Untuk sistem di mana IP "publik" server adalah 10.10.10.10, yang backend adalah 192.168.1.11 dan 192.168.1.12 dan siapa IDS adalah 172.16.172.10 konfigurasi HAProxy akan terlihat seperti ini:

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

Ini pada dasarnya hanya meneruskan semua lalu lintas dari INke INTERMEDIARYdalam bentuk apa pun memasuki server, dan kemudian INTERMEDIARYmendekripsi permintaan dan membuat pilihan apa pun yang Anda inginkan.

Anda kemudian perlu mengatur iptablesaturan yang terlihat seperti ini:

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

Tentu saja, ini mengasumsikan semua rute dan jaringan sudah diatur, tetapi seharusnya berfungsi.

Saya kira Anda bisa menghapus semua hal-hal HAProxy dan mengatur beberapa iptablesaturan untuk mencocokkan host backend Anda dan TEElalu lintas yang langsung ke IDS Anda.

# 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
GregL
sumber
Cemerlang! Saya pikir saya harus melakukan akrobat iptables di antara menerima lalu lintas dan meneruskan ke backend. Saya akan membuang ini ke lab saya dan melihat cara kerjanya. Terima kasih untuk bantuannya!
Leonard Pringle