HAProxy tidak dapat melakukannya sendiri, tetapi jika Anda menggunakan seperangkat frontend/listen
deklerasi yang cukup sederhana , Anda dapat menggunakan iptables
TEE
target (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 IN
ke INTERMEDIARY
dalam bentuk apa pun memasuki server, dan kemudian INTERMEDIARY
mendekripsi permintaan dan membuat pilihan apa pun yang Anda inginkan.
Anda kemudian perlu mengatur iptables
aturan 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 iptables
aturan untuk mencocokkan host backend Anda dan TEE
lalu 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