Ako sa chrániť pred Cloudflare WAF Bypass
Aktualizácia 9.4.2021. Odstránené staré IP Cloudflare a pridané dva nové bloky.
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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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 PROXY_REMOTE_ADDR ^(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