Ako sa chrániť pred Cloudflare WAF Bypass

Aktualizácia 10.1.2024. Script je podporovaný len na nextHostingu 3. generácie.

Mnoho klientov u nás používa nextHosting v spojení s Cloudflare, či už ako Free alebo Pro verziu, ktorá obsahuje Web Aplikačný Firewall, alebo skrátene WAF. Ten Vám však nebude veľmi platný, ak útočník dostane skutočnú IP adresu hostingu, čo v dnešnej dobe nie je absolútne problém, pokiaľ si nedáte záležať a samozrejme neposkytnete info, kde hostujete.

Jednouché riešenie na velký problém

Jednou z ciest, ako sa chrániť je povoliť traffic, ktorý príde výhradne cez servery Cloudflare. To však nie je tak jednouché a bolo nutné napísať pomerne zložité .htaccess pravidlo, ktoré Vám teraz poskytneme k úžitku.

Nasledovné pravidlá budeme pravidelne aktualizovať a pridávať aktuálne IP služby Cloudflare. Z vašej strany je nasledovne potrebné vložiť toto pravidlo do .htaccess súboru na hostingu. Ochránite sa tak pred Cloudflare WAF Bypass útokom.

#Prevent Cloudflare WAF Bypass
order deny,allow
deny from all
allow from env=allowclient
SetEnvIf X-Remote-Ip ^(173\.245\.(?:4[8-9]|5[0-9]|6[0-3])\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(103\.21\.(?:2(?:4[4-7]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(103\.22\.(?:2(?:0[0-3]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(103\.31\.(?:[4-7])\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(141\.101\.(?:6[4-9]|[7-9][0-9]|1(?:[0-1][0-9]|2[0-7]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(108\.162\.(?:1(?:9[2-9])|2(?:[0-4][0-9]|5[0-5]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(190\.93\.(?:2(?:4[0-9]|5[0-5]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(188\.114\.(?:9[6-9]|1(?:0[0-9]|1[0-1]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(197\.234\.(?:2(?:4[0-3]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(198\.41\.(?:1(?:2[8-9]|[3-9][0-9])|2(?:[0-4][0-9]|5[0-5]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(162\.(?:1(?:5[8-9]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(104\.(?:1[6-9]|2[0-3])\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(104\.(?:2[4-7])\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(172\.(?:6[4-9]|7[0-1])\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5]))\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient
SetEnvIf X-Remote-Ip ^(131\.0\.(?:7[2-5])\.(?:[0-9]|[1-9][0-9]|1(?:[0-9][0-9])|2(?:[0-4][0-9]|5[0-5])))$ allowclient