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.