Zpět na domů

Ochrana serveru ipset a CrowdSec před skenery

Článek popisuje tříslojový systém filtrace provozu na bázi ipset, autoblockování a CrowdSec. Blokování na úrovni jádra snižuje odpadový provoz na 0.3% a zátěž. Uveden je kód aktualizace sad, metriky a omezení.

Tři vrstvy WAF: ipset + CrowdSec pro Linux-server
Advertisement 728x90

Vícevrstvá filtrace provozu: ipset, automatické blokování a CrowdSec pro servery

Systém filtrace založený na ipset, automatické blokování podezřelých IP adres a CrowdSec snižuje zbytečný provoz z 12 % na méně než 0,3 %. Blokování probíhá na úrovni jádra Linux (L3/L4), před zpracováním nginx a PHP-FPM. Tím se minimalizuje zatížení serveru komerčního projektu na Bitrix, kde skenování .env, wp-login.php a config.php způsobovalo špičky selhání až do 99 %.

Výhody přístupu: úplná transparentnost blokování, atomické aktualizace seznamů IP adres, modulární architektura pro rychlou konfiguraci podle projektu.

Výhody oproti externím WAF a CDN

Externí WAF a CDN jsou vhodné pro globální projekty, ale pro lokální řešení s nízkou zátěží je preferována soběstačná filtrace.

Google AdInline article slot

Klíčové důvody pro výběr vlastního systému:

  • Úplná kontrola: jsou viditelné blokované IP adresy, pravidlo a doba blokování.
  • Blokování před aplikací: zdroje nginx/PHP se neplýtvají na zbytečný provoz.
  • Flexibilita: rychlé přidávání pravidel podle vzorců Bitrix (.env, .git).
  • Jednoduchost: bez nadbytečných vrstev v architektuře.

Analýza je vedena podle HTTP logů (L7), ale drop paketů – v iptables s ipset na úrovni jádra.

Struktura třívrstvé obrany

Systém je rozčleněn pro postupnou filtraci.

Google AdInline article slot

Vrstva 1: Geo-blokování. Pakety z nerelevantních zemí jsou odříznuty okamžitě, bez parsování HTTP.

Vrstva 2: Automatické blokování podezřelých IP. Po geo-blokování se kontrolují vzorce skenování: wp-login.php, shell.php, .env. IP adresa je blokována na 2 hodiny.

Vrstva 3: CrowdSec. Integrace přes bouncer přidává globální černou listinu do ipset s TTL.

Google AdInline article slot

Modularita umožňuje vypínat vrstvy nezávisle, snižující riziko falešných poplachů.

Ipset jako základ škálovatelnosti

Běžné iptables s tisíci pravidly IP vedou k lineárnímu prohledávání O(n), což degraduje výkon při zátěži.

Ipset používá hash:ip nebo hash:net pro O(1) kontroly:

-m set --match-set blocked_ips src

Aktualizace sad atomicky přes temp-sadu a swap, bez přerušení filtrace:

ipset create "${country}_temp" hash:net 2>/dev/null || ipset flush "${country}_temp"
if [[ -s "$temp_file" ]]; then
    while read network; do
        ipset add "${country}_temp" "$network"
    done < "$temp_file"
    ipset swap "${country}_temp" "$country"
fi
ipset destroy "${country}_temp"

Toto zajišťuje nepřetržitou ochranu i při hromadné aktualizaci seznamů.

Detekce skenerů podle vzorců

Skript auto-block-suspicious.sh monitoruje logy tail -n, zaměřující se na podezřelé požadavky:

  • wp-login.php (na Bitrix).
  • shell.php, shoha.php.
  • .env, .git, .aws/credentials.

IP adresa je automaticky blokována na 2 hodiny. Příklad: vlna požadavků na /wp-login.php (200+ pokusů) neutralizována za 20–30 sekund, zatížení normalizováno.

Statistika blokování:

  • Čína: 8802 IP.
  • Podezřelé: 10 IP (příklady: 4.193.97.168, 195.178.110.109).

Integrace CrowdSec

Bouncer CrowdSec doplňuje ipset crowdsec_blacklist s TTL:

  • Autosynchronizace globálních signatur.
  • Autoodstranění po timeout.

CrowdSec doplňuje vlastní moduly, uzavírající známé hrozby bez nahrazení projektové logiky.

Výsledky zavedení

Srovnání metrik (2025 bez WAF vs 2026 s WAF):

| Ukazatel | Bez ochrany | S WAF |

|----------------|-------------|-----------|

| Zbytečný provoz | ~12 % | <0,3 % |

| Zátěž průměr | 1,8–2,5 | 0,9–1,2 |

| Selhání | Až 40 % | 12–15 % |

Špičky RPS od skenování jsou přerušeny na jádru, analýza je očištěna od botů.

Omezení:

  • Neochrání před L4 útoky velkým provozem.
  • Vyžaduje aktualizace CMS (Bitrix).
  • Neeffektivní proti residential IP.
  • Ne pro globální projekty s CDN.

Co je důležité

  • Škálovatelnost: ipset zajišťuje O(1) kontroly pro miliony IP.
  • Atomičnost: swap předchází přerušením ve filtraci.
  • Modularita: Nezávislé vrstvy (země, podezřelé, CrowdSec) pro přesné nastavení.
  • Efektivita: Snížení zbytečného provozu na 0,3 %, LA poloviční.
  • Transparentnost: Úplná kontrola bez černých skříněk.

— Editorial Team

Advertisement 728x90

Číst dál