Konten
Pengantar
Artikel berikut menjelaskan kasus penggunaan nyata untuk ISP atau penyedia hosting, di mana proxy terbalik HTTP / S Load Balancer adalah titik utama akses ke semua layanan web publik, konfigurasi ini menunjukkan betapa mudahnya mengkonfigurasi WAF yang canggih dan kuat ruleset untuk mengamankan aplikasi web yang berbasis di alamat IP sumber daftar hitam, di mana masing-masing VirtualHost mengelola daftar hitamnya sedemikian rupa sehingga satu IP Publik dapat dilarang untuk terhubung ke domain web seperti www.company1.com tetapi diizinkan untuk terhubung www.company2.com.
Kami akan memfokuskan artikel dalam dua bagian, di bagian utama konfigurasi profil HTTPS akan berfungsi sebagai proksi terbalik dengan daftar layanan yang berbeda, dan bagian kedua akan menjelaskan cara mengkonfigurasi Firewall Aplikasi Web ruleset yang akan mengelola daftar hitam berbeda per Layanan HTTP / S.
Lingkungan Hidup
Diagram berikut menjelaskan internal WAF Zevenet. Seperti yang diperlihatkan, lapisan pertama adalah modul WAF yang tujuannya adalah untuk memastikan pada tahap awal bahwa hanya permintaan yang aman yang diizinkan untuk lolos ke modul penyeimbangan beban dan kemudian meneruskan permintaan tersebut ke backend.
Pertama, HTTP tuan rumah header dievaluasi dan IP klien diperiksa dalam daftar hitam yang sudah dikonfigurasi. Jika tuan rumah header dan alamat IP klien cocok maka koneksi terputus dan a Forbidden 403 Respons HTTP dikirim ke klien, tetapi jika IP klien dan diminta tuan rumah header tidak cocok maka lalu lintas diidentifikasi sebagai tidak berbahaya dan diteruskan ke modul penyeimbang beban, di mana tujuan dipilih berdasarkan permintaan HTTP tuan rumah sundulan dan akhirnya diteruskan ke server backend yang tersedia.
Di sini Anda dapat menemukan skema internal Aplikasi Web Firewall untuk contoh yang diberikan.
Konfigurasi layanan virtual HTTP
Konfigurasikan yang berdedikasi Alamat IP virtual, dalam contoh kita 192.168.100.58, dengan menjelajahi Jaringan> Antarmuka virtual> Buat Antarmuka Virtual seperti yang ditunjukkan di bawah ini:
Sekarang mari kita pergi untuk mengkonfigurasi layanan load balancing HTTP, pergi ke LSLB> Pertanian dan kemudian klik tombol Buat Pertanian dan masukkan detail layanan virtual seperti yang ditunjukkan di bawah ini:
Lalu tekan membuat.
Sekarang klik pada Tab atas Layanan dan buat layanan sebanyak situs berbeda yang Anda kelola klik tombol Layanan Baru, dalam kasus kami, kami akan membuat dua layanan yang berbeda, satu untuk mengelola layanan untuk www.mycompany1.com dan satu lagi untuk www.mycompany2.com.
Setelah layanan dibuat, tambahkan Host Virtual filter dan backends seperti yang ditunjukkan pada gambar di bawah ini.
Jika Anda memiliki beberapa situs web, Anda hanya perlu menambahkan lebih banyak layanan untuk menentukan satu layanan khusus untuk mengelola setiap web dari alamat IP yang sama.
Sekarang konfigurasi load balancing telah dilakukan, mari kita konfigurasikan modul Firewall Aplikasi Web IPDS.
Konfigurasi daftar hitam
Kami akan membuat satu daftar hitam per layanan web untuk memasukkan dalam setiap daftar hitam alamat IP yang diinginkan untuk memblokir akses. Dalam contoh kita, kita akan membuat dua daftar hitam berbeda dengan namanya blacklistmycompany1 serta blacklistmycompany2masing-masing satu layanan.
Daftar hitam ini akan disimpan di jalur /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany1.txt.
Kami menyertakan alamat IP 2 untuk tujuan pengujian, harap pertimbangkan untuk menambahkan IP sebanyak yang diperlukan. Juga, sudah ada Daftar hitam dalam IPDS Modul dapat digunakan.
Daftar hitam kedua ini akan disimpan di jalur /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany2.txt.
Pertimbangkan bahwa dalam daftar hitam ini kami menyertakan alamat IP 192.168.1.191, IP ini hanya akan digunakan untuk tujuan pengujian, dari mana kami akan menjalankan permintaan HTTP.
Konfigurasi aturan aplikasi Firewall Aplikasi Web
Tujuan dari konfigurasi ini adalah untuk mempertahankan daftar hitam IP yang berbeda per situs web, untuk menghindari menyimpan daftar hitam yang sama untuk seluruh titik akses tambak.
Kita akan mengkonfigurasi a aturan, yang merupakan sekelompok aturan, dengan nama HostingBlacklisting. Aturan ini akan terdiri dari dua aturan sederhana (aturan ID 1000 dan aturan ID 1001 dalam contoh kami), setiap aturan didefinisikan sebagai pertandingan dan tindakan, di mana jika kondisinya cocok maka tindakan dieksekusi. Dalam contoh kami, kami akan menggunakan tindakan yang sama di kedua aturan, jika kondisinya cocok a Tolak Tindakan dijalankan dengan Akses 403 Ditolak respon.
Pergi ke IPDS> WAF, lalu klik Buat aturan WAF dan setel nama aturan deskriptif, dalam contoh kita HostingBlacklisting.
Konfigurasikan bidang Fase default untuk Header permintaan diterima. Bidang ini berarti bahwa modul WAF akan menganalisis tajuk permintaan yang masuk dari klien.
Lalu buka tab Peraturan dan buat yang pertama Aturan jenis Tindakan seperti yang ditunjukkan di bawah ini.
Sekarang aturan pertama dari ruleset dibuat, mari kita buat kondisi untuk mencocokkan IP klien dalam daftar hitam untuk masing-masing tuan rumah tajuk. Pergi ke Kondisi dan membuat suatu kondisi sesuai dengan REMOTE_ADDR variabel seperti yang ditunjukkan di bawah ini.
Kemudian buat kondisi lain untuk Host Virtual cocok dengan SERVER_NAME variabel sebagai berikut:
Pada titik ini, situs web pertama yang dihosting www.mycompany1.com mengelola alamat IP blacklist aplikasi web dari daftar hitam yang sudah dikonfigurasi, sebagaimana dimaksud Blacklistmycompany1.txt.
Mari buat aturan lain untuk situs kedua www.mycompany2.com dan ulangi konfigurasi yang sama dengan konfigurasi aturan sebelumnya tetapi dalam kasus ini, Anda harus mengubah SERVER_NAME untuk mycompany2.com dan lihat yang berikut ini blacklist2.txt.
Lihat seluruh konfigurasi aturan WAF gabungan:
Terakhir, tambahkan aturan ini ke peternakan yang sudah dibuat, buka tab Pertanian dan memindahkan pertanian hosting yang, dalam contoh kita, ke Peternakan yang diaktifkan bagian seperti yang ditunjukkan di bawah ini.
Sekarang mulai aturan WAF untuk pertanian, klik aksi Bermain di bagian kiri atas jendela ini, dan sistem akan mulai menyaring lalu lintas HTTP untuk Peternakan hosting yang.
Menguji aturan Firewall Aplikasi Web
IP klien 192.168.1.191 akan meminta situs web http://www.mycompany1.com serta http://www.mycompany2.com dan, sesuai dengan konfigurasi kami, sistem WAF akan memungkinkan koneksi ke layanan pertama dengan nama yang sama tetapi koneksi akan ditolak untuk mycompany2.com karena IP ini telah dimasukkan dalam daftar hitam dengan nama Blacklist perusahaanperusahaan2.
Dari alamat IP 192.168.1.191 hingga VIP yang meminta situs web www.mycompany1.com melalui load balancer:
root@192.168.1.191:# curl -H "Host: www.mycompany1.com" http://192.168.100.58 -v * Rebuilt URL to: http://192.168.100.58/ * Trying 192.168.100.58... * TCP_NODELAY set * Connected to 192.168.100.58 (192.168.100.58) port 80 (#0) > GET / HTTP/1.1 > Host: www.mycompany1.com > User-Agent: curl/7.52.1 > Accept: */* > < HTTP/1.1 200 OK < Server: nginx/1.10.3 < Date: Tue, 10 Sep 2019 15:36:22 GMT < Content-Type: text/html < Content-Length: 11383 < Last-Modified: Thu, 13 Dec 2018 11:01:49 GMT < Connection: keep-alive < ETag: "5c123c1d-2c77" < Accept-Ranges: bytes <
Dari alamat IP 192.168.1.191 hingga VIP yang meminta situs web www.mycompany2.com melalui load balancer:
root@192.168.1.191:# curl -H "Host: www.mycompany2.com" http://192.168.100.58 -v * Rebuilt URL to: http://192.168.100.58/ * Trying 192.168.100.58... * TCP_NODELAY set * Connected to 192.168.100.58 (192.168.100.58) port 80 (#0) > GET / HTTP/1.1 > Host: www.mycompany2.com > User-Agent: curl/7.52.1 > Accept: */* > * HTTP 1.0, assume close after body < HTTP/1.0 403 Request forbidden < Content-Type: text/html < Content-Length: 17 < Expires: now < Pragma: no-cache < Cache-control: no-cache,no-store < * Curl_http_done: called premature == 0 * Closing connection 0 replied forbiddenp
Setelah Terlarang respons dihasilkan, modul WAF memberi tahu penolakan dalam file Syslog penyeimbang beban.
root@zva6000:# tail -f /var/log/syslog Sep 10 15:38:44 zva6000 pound: Hosting, ModSecurity: Warning. Matched "Operator `StrMatch' with parameter `mycompany2.com' against variable `SERVER_NAME' (Value: `www.mycompany2.com' ) [file "/usr/local/zevenet/config/ipds/waf/sets/HostingBlacklisting.conf"] [line "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [severity "0"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"] Sep 10 15:38:44 zva6000 pound: Hosting, [WAF,service mycompany2, backend 192.168.100.22:80,] (7f6cfac3c700) [client 192.168.1.191] ModSecurity: Access denied with code 403 (phase 1). Matched "Operator `StrMatch' with parameter `mycompany2.com' against variable `SERVER_NAME' (Value: `www.mycompany2.com' ) [file "/usr/local/zevenet/config/ipds/waf/sets/HostingBlacklisting.conf"] [line "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [severity "0"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"] Sep 10 15:38:44 zva6ktpl1 pound: Hosting, service mycompany2, backend 192.168.100.25:80, (7f6cfac3c700) WAF denied a request from 192.168.1.191
Sekarang Anda dapat membangun aturan firewall khusus untuk melindungi aplikasi web Anda menggunakan teknik pemeriksaan paket HTTP / S yang mendalam.