Oversigt #
Den følgende artikel beskriver et reelt eksempel for en internetudbyder eller hostingudbyder, hvor HTTP/S Load Balancer reverse proxy er det primære adgangspunkt til alle offentlige webtjenester. Denne konfiguration viser, hvor nemt det er at konfigurere et avanceret og kraftfuldt WAF-regelsæt for at sikre webapplikationer baseret på sortlistede IP-adresser, hvor hver... VirtualHost administrerer sin egen sortliste på en måde, hvor én offentlig IP-adresse kan forbydes at oprette forbindelse til et webdomæne som f.eks. www.company1.com men har fået lov til at oprette forbindelse til www.company2.com.
Vi vil fokusere artiklen i to afsnit. I hovedafsnittet vil HTTPS-profilkonfigurationen fungere som en reverse proxy med en liste over forskellige tjenester, og det andet afsnit vil forklare, hvordan man konfigurerer en... Web Application Firewall regelsæt, der vil administrere en forskellig sortliste pr. HTTP/S-tjeneste.
Miljø #
Følgende diagram beskriver RELIANOID WAF-internals. Som vist, er det første lag WAF-modulet, hvis mål er at sikre på et tidligt stadie, at kun sikre anmodninger får lov til at passere til load balancing-modulet og derefter videresende anmodningen til backends.
For det første, HTTP Host headeren evalueres, og klientens IP-adresse kontrolleres i den allerede konfigurerede sortliste. Hvis Host Hvis headeren og klientens IP-adresse matcher, afbrydes forbindelsen, og en Forbidden 403 HTTP-svar sendes til klienten, men i tilfælde af at klientens IP og anmodes om Host Hvis headeren ikke stemmer overens, identificeres trafikken som ikke-skadelig og sendes til load balancer-modulet, hvor destinationen vælges baseret på HTTP-anmodningen. Host header og endelig videresendt til den tilgængelige backend-server.
Her kan du finde et skema over webapplikationsfirewallens interne funktioner i det givne eksempel.
Konfiguration af virtuel HTTP-tjeneste #
Konfigurer én dedikeret Virtuel IP-adresse, i vores eksempel 192.168.100.58ved at browse 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 oplysningerne om den virtuelle tjeneste som vist nedenfor:
Tryk derefter på Opret.
Klik nu på den øverste fane Det vi er gode til og opret lige så mange tjenester som forskellige websteder, du administrerer, klik på knappen Ny ServiceI vores tilfælde opretter vi to forskellige tjenester, én til at administrere tjenesten for www.mitfirma1.com og en anden til www.mitfirma2.com.
Når tjenesten er oprettet, skal du tilføje Virtual Host filter og backends, som vist på billedet nedenfor.
Hvis du har flere websteder, skal du blot tilføje flere tjenester for at definere én dedikeret tjeneste til at administrere hvert websted fra den samme IP-adresse.
Nu hvor konfigurationen af load balancing er udført, lad os konfigurere IPDS Web Application Firewall-modulet.
Konfiguration af sortlister #
Vi opretter én sortliste pr. webtjeneste for at indtaste de ønskede IP-adresser for at blokere adgangen i hver sortliste. I vores eksempel opretter vi to forskellige sortlister med navnet sortlisteminvirksomhed1 og sortlisteminvirksomhed2, henholdsvis én pr. tjeneste.
Denne sortliste vil blive gemt i stien /usr/local/relianoid/config/ipds/blacklists/lists/Blacklistmycompany1.txt.
Vi har inkluderet 2 IP-adresser til testformål. Overvej venligst at tilføje så mange IP-adresser som nødvendigt. Også de allerede eksisterende Sortlister i IPDS modul kan bruges.
Denne anden sortliste vil blive gemt i stien /usr/local/relianoid/config/ipds/blacklists/lists/Blacklistmycompany2.txt.
Tag højde for, at vi i denne sortliste inkluderede IP-adressen 192.168.1.191, denne IP-adresse vil kun blive brugt til testformål, hvorfra vi vil køre HTTP-anmodninger.
Konfiguration af regelsæt for webapplikationsfirewall #
Formålet med denne konfiguration er at vedligeholde forskellige IP-sortlister pr. websted for at undgå at have den samme sortliste for hele farmenes adgangspunkt.
Vi vil konfigurere en regelsæt, som er en gruppe regler med navn HostingBlacklistingDette regelsæt vil bestå af to simple regler (regel-ID 1000 og regel-ID 1001 i vores eksempel), hvor hver regel er defineret som et match og en handling, hvor handlingen udføres, hvis betingelsen matcher. I vores eksempel bruger vi den samme handling i begge regler, hvis betingelsen matcher en 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 navn for regelsættet, i vores eksempel HostingBlacklisting.
Konfigurer feltet Standard fase til Anmodningsoverskrifter modtagesDette felt betyder, at WAF-modulet vil analysere de indgående anmodningsheadere fra klienten.
Gå derefter til fanen Regler og skabe den første Herske af typen Handling som det er vist nedenfor.
Nu er den første regel i regelsættet oprettet. Lad os oprette betingelserne for at matche klient-IP'en på sortlisten for hver. Host overskrift. Gå til Betingelser og skabe en betingelse i henhold til REMOTE_ADDR variabel som vist nedenfor.
Opret derefter en anden betingelse for Virtual Host match i henhold til SERVER_NAME variabel som følger:
På dette tidspunkt, den første hostede hjemmeside www.mitfirma1.com administrerer en IP-adresse på en webapplikations sortliste fra den allerede konfigurerede sortliste, der henvises til Sortlisteminvirksomhed1.txt.
Lad os oprette en anden regel for det andet websted www.mitfirma2.com og gentag den samme konfiguration som den forrige regelkonfiguration, men i dette tilfælde skal du ændre SERVER_NAME til mycompany2.com og henviser 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 afsnittet som vist nedenfor.
Start nu WAF-regelsættet for farmen, klik på handlingen Leg i øverste venstre del af dette vindue, og systemet vil begynde at filtrere HTTP-trafik for farmen Hosting.
Test af regelsættet for webapplikationens firewall #
Klientens IP-adresse 192.168.1.191 vil anmode om hjemmesiden http://www.mycompany1.com og http://www.mycompany2.com og ifølge vores konfiguration vil WAF-systemet tillade forbindelse til den første tjeneste med samme navn, men forbindelsen vil blive nægtet til mycompany2.com fordi denne IP er blevet inkluderet på sortlisten med navnet Blacklistmycompany2.
Fra IP-adresse 192.168.1.191 til VIP, der anmoder om hjemmesiden www.mycompany1.com via load balancer:
root@192.168.1.191:# curl -H "Vært: www.mitfirma1.com" http://192.168.100.58 -v * Genskabt URL til: http://192.168.100.58/ * Prøver 192.168.100.58... * TCP_NODELAY indstillet * Forbindelse til 192.168.100.58 (192.168.100.58) port 80 (#0) > GET / HTTP/1.1 > Vært: www.mitfirma1.com > Brugeragent: curl/7.52.1 > Accepter: */* > HTTP / 1.1 200 OK < Server: nginx/1.10.3 < Dato: Tirsdag, 10. september 2019 15:36:22 GMT < Indholdstype: text/html < Indholdslængde: 11383 < Sidst ændret: Torsdag, 13. december 2018 11:01:49 GMT < Forbindelse: keep-alive < ETag: "5c123c1d-2c77" < Acceptområder: bytes
Fra IP-adresse 192.168.1.191 til VIP, der anmoder om hjemmesiden www.mycompany2.com via load balancer:
root@192.168.1.191:# curl -H "Host: www.mycompany2.com" http://192.168.100.58 -v * Genskabt URL til: http://192.168.100.58/ * Prøver 192.168.100.58... * TCP_NODELAY set * Forbindelse til 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, antag tæt på efter brødteksten HTTP/1.0 403 Anmodning forbudt < Indholdstype: tekst/html < Indholdslængde: 17 < Udløber: nu < Pragma: no-cache < Cache-kontrol: no-cache,no-store < * Curl_http_done: kaldt for tidligt == 0 * Lukker forbindelse 0 svarede forbiddenp
Når Forbudt Når et svar genereres, giver WAF-modulet besked om afvisningen i load balancer Syslog-filen.
root@zva6000:# tail -f /var/log/syslog 10. sep. 15:38:44 zva6000 pund: Hosting, ModSecurity: Advarsel. Matchede "Operator `StrMatch' med parameteren `mycompany2.com' mod variablen `SERVER_NAME' (Værdi: `www.mycompany2.com') [fil "/usr/local/relianoid/config/ipds/waf/sets/HostingBlacklisting.conf"] [linje "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [alvorlighed "0"] [ver ""] [modenhed "0"] [nøjagtighed "0"] [hostname "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"] 10. sep. 15:38:44 zva6000 pund: Hosting, [WAF,service mycompany2, backend 192.168.100.22:80,] (7f6cfac3c700) [klient 192.168.1.191] ModSecurity: Adgang nægtet med kode 403 (fase 1). Matchede "Operator `StrMatch' med parameteren `mycompany2.com' mod variablen `SERVER_NAME' (Værdi: `www.mycompany2.com') [fil "/usr/local/relianoid/config/ipds/waf/sets/HostingBlacklisting.conf"] [linje "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [alvorlighed "0"] [ver ""] [modenhed "0"] [nøjagtighed "0"] [værtsnavn "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"] 10. sep. 15:38:44 zva6ktpl1 pund: Hosting, service mycompany2, backend 192.168.100.25:80, (7f6cfac3c700) WAF afviste en anmodning fra 192.168.1.191
Nu kan du opbygge dine brugerdefinerede firewall-regelsæt for at beskytte dine webapplikationer ved hjælp af HTTP/S deep packet inspection-teknikker.












