Ako sa chrániť pred Cloudflare WAF Bypass

Návody 18. nov 2020

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

Milutin Kubik

Among with David Bolek

Co-Founder of Belightbyte

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.