Molemmat työkalut lukevat lokeja ja estävät osoitteita, joten ensi silmäyksellä CrowdSec on Fail2ban uudemmalla koodilla. Ero on olennaisempi, eikä se ole koodin iässä vaan siinä, mistä estopäätös tulee.
Rakenne
Fail2ban on yksi prosessi, joka lukee lokeja, laskee säännöllisten lausekkeiden osumat ja kutsuu palomuurin komentoa. Jokainen päätös tehdään meidän koneellamme meidän laskureidemme perusteella. Mitään ei lähetetä mihinkään, riippuvuuksia ei ole, ja asetukset ovat tekstitiedostoja.
CrowdSec on jaettu kahteen osaan, ja se on tärkein ymmärrettävä asia ennen asennusta. Agentti itse vain havaitsee: se analysoi lokeja, soveltaa skenaarioita ja kirjoittaa päätökset omaan tietokantaansa. Päätökset panee täytäntöön erillinen ohjelma — bouncer. Ilman asennettua bounceria CrowdSec toimii, näyttää hälytyksiä, pitää päätöslistaa — eikä estä mitään.
Se on yleisin pettymys ensikohtaamisessa: työkalu asennettu, hyökkäykset näkyvissä, ja liikenne kulkee täsmälleen kuten ennen.
sudo apt install crowdsec
sudo apt install crowdsec-firewall-bouncer-iptables
sudo cscli bouncers list
Viimeisen komennon pitäisi näyttää vähintään yksi rekisteröity merkintä. Tyhjä lista tarkoittaa, ettei mitään estetä.
Toinen ero: jaettu maine
Fail2ban tietää vain sen, mitä meillä on tapahtunut. Osoite, joka eilen hyökkäsi sadan muun palvelimen kimppuun, on sille puhdas siihen asti kunnes se koputtaa ovellemme — ja viisi ensimmäistä yritystä ovat ilmaisia.
CrowdSec lähettää signaaleja havainnoistaan jaettuun verkkoon ja saa sieltä listan osoitteista, jotka on nähty muilla. Käytännön vaikutus: huomattava osa yrityksistä katkaistaan ennen ensimmäistä. Sillä on merkitystä erityisesti hajautetuissa hyökkäyksissä — tuhansia osoitteita yhdellä yrityksellä kukin, joissa paikalliset laskurit ovat määritelmällisesti voimattomia.
Ja yksi asia, joka kannattaa tietää etukäteen: vaihto on kaksisuuntaista. Palvelimeltamme lähtevät hyökkääjien osoitteet ja se, minkä tyyppinen skenaario laukesi. Täysin paikallinen käyttö on mahdollista — ilman rekisteröitymistä pilvikonsoliin — mutta silloin jaettu lista ei ole meilläkään käytettävissä, ja pääetu katoaa. Se on tietoinen valinta eikä asetusten yksityiskohta.
Arjen komennot
sudo cscli metrics
sudo cscli alerts list
sudo cscli decisions list
sudo cscli decisions delete --ip 203.0.113.25
metrics vastaa kysymykseen, luetaanko lokeja ylipäätään: jos analysoitujen rivien määrä on nolla, verkkopalvelimemme kokoelmaa ei ole asennettu tai polku lokiin on väärä. Se on toiseksi yleisin tapaus siitä että ”seisoo eikä tee mitään”.
sudo cscli collections list
sudo cscli collections install crowdsecurity/nginx
Resurssit
CrowdSec on kirjoitettu Go-kielellä ja pitää tilansa tietokannassa. Muistinkulutus on suuruusluokkaa sata megatavua plus bouncer. Palvelimella, jossa on yksi gigatavu, se tuntuu, kahdesta ylöspäin ei enää. Fail2ban on kevyempi mutta tekee myös vähemmän.
Tarvitaanko molempia
Ne eivät ole ristiriidassa: toinen kirjoittaa omat sääntönsä palomuuriin, toinen omansa, eikä saman osoitteen kaksinkertainen esto haittaa ketään. Järkevä työnjako näyttää tältä.
CrowdSec ottaa massatapaukset: SSH:n salasanojen arvailun, verkkopalvelimen skannauksen, jaetun listan tunnetut huonot osoitteet. Fail2ban jää sinne, missä meillä on oma loki omassa muodossaan ja missä säännöllisen lausekkeen kirjoittaminen on helpompaa kuin skenaarion — itse kirjoitettu sovellus, epätavallinen palvelu, poikkeava kirjautumislomake.
Jos on valittava yksi, mittapuu on tämä: palvelimella, jonka sivustoa valaistaan jatkuvasti läpi, CrowdSec antaa enemmän jaetun listan ansiosta. Palvelimella, jolle vain sinä pääset SSH:lla avaimilla, ero on pieni — siellä salasanojen poiskytkentä teki jo suurimman osan työstä.
Yhteinen rajoitus
Kumpikaan ei suojaa sovelluksen haavoittuvuudelta. Molemmat toimivat pyyntötaajuudella ja osoitteen maineella, ja pyyntö, joka hyödyntää laajennuksen reikää ensimmäisellä kerralla ja puhtaasta osoitteesta, menee molempien ohi. Se on muiden työkalujen tehtävä — WAF pyyntötasolla ja ajallaan tehdyt päivitykset. Osoitteiden estäminen poistaa taustan, ei syytä.
Molempien käytännön arvo riippuu siitä, katsooko joku tulosta. Kasvava päätösten määrä, ensimmäistä kertaa lauennut skenaario, muutos siinä mistä maista yritykset tulevat — juuri niitä tietoja varten työkalu pystytettiin. Miltä ne näyttävät yhdellä sivulla, näkyy alla olevassa esittelyssä.