Mindkét eszköz naplókat olvas és címeket tilt, így első ránézésre a CrowdSec egy újabb kódú Fail2ban. A különbség lényegesebb, és nem a kód korában rejlik, hanem abban, honnan származik a tiltási döntés.

A felépítés

A Fail2ban egyetlen folyamat, amely naplókat olvas, reguláris kifejezések találatait számolja, és meghívja a tűzfal parancsát. Minden döntés a mi gépünkön születik a mi számlálóink alapján. Semmi nem kerül sehová, függőségek nincsenek, a konfiguráció pedig szöveges fájl.

A CrowdSec két részre oszlik, és ezt a legfontosabb megérteni a telepítés előtt. Maga az ügynök csak észlel: naplókat elemez, forgatókönyveket alkalmaz, és a döntéseket a saját adatbázisába írja. A döntéseket külön program hajtja végre — a bouncer. Telepített bouncer nélkül a CrowdSec működik, riasztásokat mutat, döntéslistát vezet — és semmit nem blokkol.

Ez a leggyakoribb csalódás az első találkozáskor: az eszköz telepítve, a támadások láthatók, a forgalom pedig pontosan úgy folyik, mint korábban.

sudo apt install crowdsec
sudo apt install crowdsec-firewall-bouncer-iptables
sudo cscli bouncers list

Az utolsó parancsnak legalább egy regisztrált bejegyzést kell mutatnia. Az üres lista azt jelenti, hogy nincs blokkolás.

A második különbség: megosztott hírnév

A Fail2ban csak azt tudja, ami nálunk történt. Az a cím, amely tegnap száz idegen szervert támadott, számára tiszta, amíg be nem kopog hozzánk — és az első öt próbálkozás ingyen van.

A CrowdSec jelzéseket küld az észleléseiről egy megosztott hálózatba, és onnan kapja meg a másoknál látott címek listáját. Gyakorlati hatás: a próbálkozások érzékelhető része már az első előtt elhárul. Ez különösen az elosztott támadásoknál számít — több ezer cím, egy-egy próbálkozással, ahol a helyi számlálók elvileg tehetetlenek.

És valami, amit előre érdemes tudni: a csere kétirányú. A szerverünkről a támadók címei és a működésbe lépett forgatókönyvek típusai távoznak. A teljesen helyi működés lehetséges — felhőkonzolos regisztráció nélkül —, de akkor a megosztott lista sem érhető el nekünk, és a fő előny eltűnik. Ez tudatos választás, nem konfigurációs részlet.

Mindennapi parancsok

sudo cscli metrics
sudo cscli alerts list
sudo cscli decisions list
sudo cscli decisions delete --ip 203.0.113.25

A metrics arra a kérdésre válaszol, hogy egyáltalán olvassa-e a naplókat: ha az elemzett sorok száma nulla, akkor a webszerverünkhöz tartozó gyűjtemény nincs telepítve, vagy rossz a naplóhoz vezető útvonal. Ez a második leggyakoribb esete az „ott áll és nem csinál semmit” helyzetnek.

sudo cscli collections list
sudo cscli collections install crowdsecurity/nginx

Erőforrások

A CrowdSec Go nyelven íródott, és az állapotát adatbázisban tartja. A memóriaigény nagyságrendileg száz megabájt plusz a bouncer. Egy gigabájtos szerveren ez érezhető, kettőtől felfelé már nem. A Fail2ban könnyebb, de kevesebbet is csinál.

Kell-e mindkettő

Nem ütköznek: egyikük a saját szabályait írja a tűzfalba, másikuk a magáét, és ugyanannak a címnek a kettős tiltása senkinek nem árt. Az észszerű munkamegosztás így néz ki.

A CrowdSec veszi át a tömeges jelenségeket: az SSH-jelszavak találgatását, a webszerver szkennelését, a megosztott lista ismert rossz címeit. A Fail2ban ott marad, ahol saját naplónk van saját formátumban, amelyhez könnyebb reguláris kifejezést írni, mint forgatókönyvet — saját kezűleg írt alkalmazás, ritka szolgáltatás, szokatlan bejelentkezési űrlap.

Ha egyet kell választani, a támpont ez: olyan szerveren, amelynek webhelyét folyamatosan átvilágítják, a CrowdSec a megosztott lista miatt többet ad. Olyan szerveren, amelyet csak te érsz el SSH-n, kulcsokkal, a különbség kicsi — ott a jelszavak kikapcsolása már elvégezte a munka nagy részét.

A közös korlát

Egyikük sem véd az alkalmazás sebezhetősége ellen. Mindkettő a kérésgyakorisággal és a cím hírnevével dolgozik, és az a kérés, amely egy bővítmény hibáját használja ki elsőre és tiszta címről, mindkettő mellett elmegy. Ez más eszközök feladata — WAF kérésszinten és időben elvégzett frissítések. A címek tiltása a hátteret szünteti meg, nem az okot.

Mindkettő gyakorlati értéke azon múlik, néz-e valaki az eredményre. A döntések növekvő száma, egy először működésbe lépő forgatókönyv, a próbálkozások származási országainak változása — éppen ezek az információk azok, amelyekért az eszközt beállították. Hogy néznek ki egyetlen oldalon, azt az alábbi bemutató mutatja.