Indhold
Oversigt
Den følgende artikel beskriver en reel brugssag for en internetudbyder eller hostingudbyder, hvor HTTP / S Load Balancer-omvendt proxy er hovedpunktet for adgang til alle de offentlige webservices. Denne konfiguration viser, hvor let det er at konfigurere en avanceret og kraftfuld WAF regelsæt for at sikre webapplikationer baseret på IP-adresser på sortlistekilden, hvor hver VirtualHost administrerer sin egen sortliste på en måde, som en offentlig IP kan forbydes at oprette forbindelse til et webdomæne som www.company1.com men tilladt at oprette forbindelse til www.company2.com.
Vi fokuserer artiklen i to sektioner, i hovedafsnittet fungerer HTTPS-profilkonfigurationen som en omvendt proxy med en liste over forskellige tjenester, og det andet afsnit forklarer, hvordan man konfigurerer en Web Application Firewall regelsæt, der administrerer en anden sortliste pr. HTTP / S-tjeneste.
Miljø
Følgende diagram beskriver Zevenet WAF-internerne. Som det er vist, er det første lag WAF-modulet, hvis mål er at sikre på et tidligt tidspunkt, at kun sikre anmodninger får lov til at passere gennem til belastningsbalanceringsmodulet og derefter videresende anmodningen til bagenden.
For det første HTTP Host header evalueres, og klientens IP kontrolleres i den allerede konfigurerede sortliste. Hvis Host header og klientens IP-adresse matcher, derefter slettes forbindelsen, og a Forbidden 403 HTTP-svar sendes til klienten, men i tilfælde af, at klienten IP og anmodede om det Host header matcher ikke, så identificeres trafikken som ikke ondsindet og sendes til load balancer-modulet, hvor destinationen vælges ud fra HTTP-anmodningen Host header og videresendes til sidst til den tilgængelige backend-server.
Her kan du finde et skema med internapplikationer i Web Application Firewall til det givne eksempel.
HTTP-virtuel servicekonfiguration
Konfigurer en dedikeret Virtual IP-adresse, i vores eksempel 192.168.100.58ved at gennemsøge til Netværk> Virtuelle grænseflader> Opret virtuel grænseflade som vist nedenfor:
Lad os nu gå til at konfigurere HTTP-belastningsbalanceringstjenesten, gå til LSLB> Gårde og klik derefter på knappen Opret gård og indtast de virtuelle servicedetaljer som vist nedenfor:
Tryk derefter på Opret.
Klik nu på den øverste fane Services og oprette så mange tjenester som forskellige websteder, du administrerer, skal du klikke på knappen Ny Service, i vores tilfælde, vil vi oprette to forskellige tjenester, en til at administrere tjenesten for www.mycompany1.com og en anden til www.mycompany2.com.
Når tjenesten er oprettet, skal du tilføje Virtual Host filter og bagenden, som det er vist på billedet herunder.
I tilfælde af at du har flere websteder, skal du kun tilføje flere tjenester for at definere en dedikeret service til at styre hvert web fra den samme IP-adresse.
Nu er belastningsafbalanceringskonfigurationen udført, så vi kan konfigurere IPDS Web Application Firewall-modulet.
Blacklists konfiguration
Vi vil oprette en sortliste pr. Webtjeneste for at indtaste de ønskede IP-adresser på hver sortliste for at blokere adgangen. I vores eksempel vil vi oprette to forskellige sortlister med navnet blacklistmycompany1 blacklistmycompany2, en pr. tjeneste.
Denne sortliste gemmes på stien /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany1.txt.
Vi inkluderede 2 IP-adresser til testformål. Overvej at tilføje så mange IP'er som nødvendigt. Også den allerede eksisterende Sortlister i IPDS modul kan bruges.
Denne anden sortliste gemmes på stien /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany2.txt.
Tag højde for, at vi på denne sortliste inkluderede IP-adressen 192.168.1.191, denne IP vil kun blive brugt til testformål, hvorfra vi kører HTTP-anmodninger.
Webapplikations firewall regulerer konfiguration
Formålet med denne konfiguration er at vedligeholde forskellige IP-sortlister pr. Websted for at undgå at beholde den samme sortliste for hele gårdens adgangspunkt.
Vi vil konfigurere en regelsæt, som er en gruppe regler med navn HostingBlacklisting. Dette regelsæt er sammensat af to enkle regler (regel-ID 1000 og regel-ID 1001 i vores eksempel), hver regel er defineret som en kamp og en handling, hvor hvis betingelsen matcher, udføres handlingen. I vores eksempel vil vi bruge den samme handling i begge regler, hvis betingelsen matcher a Afvis handling udføres med en 403 adgang nægtet respons.
Gå til IPDS> WAF, og klik derefter på Opret WAF-regelsæt og angiv et beskrivende regelsætnavn i vores eksempel HostingBlacklisting.
Konfigurer feltet Standardfase til Forespørgselsoverskrifter er modtaget. Dette felt betyder, at WAF-modulet vil analysere de indgående anmodningsoverskrifter fra klienten.
Gå derefter til fanen Regler og opret den første Herske af typen Handling som det er vist nedenfor.
Nu er den første regel i regelsættet oprettet, så vi kan oprette betingelserne for at matche klientens IP på sortlisten for hver Host header. Gå til Betingelser og oprette en betingelse i henhold til REMOTE_ADDR variabel som vist nedenfor.
Opret derefter en anden betingelse for Virtual Host kamp i henhold til SERVER_NAME variabel som følger:
På dette tidspunkt er det første hostede websted www.mycompany1.com administrerer en webapplikations-svarteliste-IP-adresse fra den allerede konfigurerede sortliste, der henvises til Blacklistmycompany1.txt.
Lad os oprette en anden regel til det andet websted www.mycompany2.com og gentag den samme konfiguration som den forrige regelkonfiguration, men i dette tilfælde skal du ændre SERVER_NAME til mycompany2.com og henvis til følgende blacklist2.txt.
Se hele konfigurationen af det sammensatte WAF-regelsæt:
Til sidst skal du tilføje dette regelsæt til den allerede oprettede gård, gå til fanen Gårde og flytte gården Hosting, i vores eksempel til Aktiverede gårde sektion som vist nedenfor.
Start nu WAF-regelsæt for gården, klik på handlingen Leg øverst til venstre i dette vindue, og systemet begynder at filtrere HTTP-trafik for gården Hosting.
Test af regelsæt for webapplikations Firewall
Klientens IP 192.168.1.191 vil anmode om webstedet http://www.mycompany1.com http://www.mycompany2.com og ifølge vores konfiguration vil WAF-systemet tillade forbindelse til den første service med samme navn, men forbindelsen nægtes at mycompany2.com fordi denne IP er inkluderet på sortlisten med navn Blacklistmycompany2.
Fra IP-adresse 192.168.1.191 til VIP, der anmoder om webstedet www.mycompany1.com gennem belastningsbalanceren:
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 <
Fra IP-adresse 192.168.1.191 til VIP, der anmoder om webstedet www.mycompany2.com gennem belastningsbalanceren:
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
Når Forbudt svar genereres, WAF-modulet giver besked om afvisningen i Syslog-filen med loadbalancer.
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
Nu kan du opbygge dine brugerdefinerede firewall-regelsæt for at beskytte dine webapplikationer ved hjælp af HTTP / S dyb pakkeinspektionsteknikker.