Halo semuanya,
Saya mengalami masalah konfigurasi antara QNAP (QTS) dan Nginx Proxy Manager (NPM), yang membuat Fail2ban (atau perlindungan akses QTS) saya tidak efektif terhadap serangan brute-force.
Konfigurasi saya:
QNAP (QTS): IP Lokal 192.168.10.10 (saya ubah ke alamat IP standar RFC1918, tapi Anda bisa menggunakan milik Anda sendiri)
Nginx Proxy Manager: IP Lokal 192.168.10.6 (di dalam container Docker atau VM terpisah)
Tujuan: Mengakses QTS melalui nama domain (misal: myqnap.domain.com) menggunakan NPM untuk SSL dan reverse proxy.
Masalahnya:
Akses berjalan sempurna. Nama domain saya mengarah ke router, yang meneruskan port 80/443 ke Nginx Proxy Manager (100.6), dan NPM kemudian meneruskan trafik ke QNAP saya (100.10).
Masalahnya adalah QTS tidak melihat IP sumber asli (IP publik) dari pengunjung.
Ketika ada upaya koneksi yang gagal (serangan brute-force), log keamanan QTS menunjukkan bahwa upaya tersebut berasal dari IP 100.6 (IP dari Nginx Proxy Manager saya).
Konsekuensinya: Jika saya mengaktifkan perlindungan akses IP atau Fail2ban di QNAP untuk memblokir IP setelah beberapa kali gagal, yang diblokir adalah IP Nginx Proxy Manager saya (100.6).
Hasilnya:
Penyerang tidak pernah diblokir.
Proxy saya sendiri yang diblokir, sehingga akses ke QTS untuk semua pengguna sah menjadi terputus.
Pertanyaan saya: Bagaimana cara mengkonfigurasi Nginx Proxy Manager agar meneruskan alamat IP sumber dengan benar (melalui header X-Forwarded-For atau X-Real-IP) DAN bagaimana cara mengkonfigurasi QTS agar membaca dan mempercayai header ini?
Saya sudah melihat opsi di NPM (saya sudah centang “Forward Client-IP” dan “Forward Hostname”), tapi QTS masih tampaknya melihat alamat IP proxy. Apakah saya perlu menambahkan konfigurasi khusus di Nginx (melalui tab “Advanced” di NPM) atau ada pengaturan tersembunyi di QTS untuk “trust” proxy?
Terima kasih sebelumnya atas bantuannya!