Her iki araç da günlükleri okur ve adresleri engeller; ilk bakışta CrowdSec, daha yeni bir kod tabanına sahip Fail2ban gibidir. Aralarındaki fark bundan daha esaslıdır ve kodun yaşında değil, engelleme kararının nereden geldiğindedir.

Nasıl kuruludurlar

Fail2ban, günlükleri okuyan, düzenli ifade eşleşmelerini sayan ve bir güvenlik duvarı komutu çağıran tek bir süreçtir. Her karar sizin makinenizde sizin sayaçlarınızdan verilir. Hiçbir yere hiçbir şey gönderilmez, bağımlılık yoktur ve yapılandırma metin dosyalarıdır.

CrowdSec iki parçaya ayrılmıştır ve kurmadan önce anlaşılması gereken asıl şey budur. Etmenin kendisi yalnızca tespit eder: günlükleri ayrıştırır, senaryoları uygular ve kararları kendi veritabanına yazar. Kararları ayrı bir program, bouncer uygular. Kurulu bir bouncer olmadan CrowdSec çalışır, uyarıları gösterir, bir karar listesi tutar — ve hiçbir şeyi engellemez.

İlk tanışmada en sık görülen hayal kırıklığı budur: araç kurulmuştur, saldırılar görünmektedir ve trafik tam olarak eskisi gibi akmaktadır.

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

Bu son komut en az bir kayıtlı girdi göstermelidir. Boş bir liste, engelleme yok demektir.

İkinci fark: paylaşılan itibar

Fail2ban yalnızca sizde olan biteni bilir. Dünü başka yüz sunucuya girmeye çalışarak geçirmiş bir adres, kapınızı çalana kadar onun için temizdir — ve ilk beş denemesi bedavadır.

CrowdSec, tetiklenenlere dair sinyalleri paylaşılan bir ağa gönderir ve karşılığında başkalarının sunucularında görülmüş adreslerin listesini alır. Pratik etki: tahmin denemelerinin gözle görülür bir kısmı ilk denemeden önce kesilir. Bu özellikle dağıtık saldırılara karşı önemlidir — her biri bir deneme yapan binlerce adres, ki yerel sayaçlar tanımı gereği burada çaresizdir.

Ve önceden bilinmesi gereken şu: alışveriş çift yönlüdür. Sunucunuzdan çıkan şey, ihlal eden adresler ve tetiklenen senaryo türleridir. Tümüyle yerel çalışmak mümkündür — bulut konsoluna kaydolmadan — ama o zaman paylaşılan liste de size kapalıdır ve asıl üstünlük ortadan kalkar. Bu bir yapılandırma ayrıntısı değil, bilinçli bir seçimdir.

Günlük komutlar

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

metrics, günlüklerin hiç okunup okunmadığı sorusuna yanıt verir: ayrıştırılan satır sayısı sıfırsa web sunucunuz için koleksiyon kurulmamıştır ya da günlük yolu yanlıştır. «Kurulu ve çalışmıyor» durumunun ikinci en sık görülen halidir.

sudo cscli collections list
sudo cscli collections install crowdsecurity/nginx

Kaynaklar

CrowdSec Go ile yazılmıştır ve durumunu bir veritabanında tutar. Bellek kullanımı yüz megabayt mertebesindedir, artı bouncer. Bir gigabayt belleği olan bir sunucuda bu fark edilir; ikiden yukarısında edilmez. Fail2ban daha hafiftir ve daha azını yapar.

İkisi birden çalıştırılmalı mı

Çakışmazlar: biri kendi kurallarını güvenlik duvarına yazar, öteki kendininkini yazar ve aynı adresi iki kez engellemek hiçbir zarar vermez. Makul bir iş bölümü şöyle görünür.

CrowdSec kitlesel trafiği üstlenir: SSH tahmin denemeleri, web sunucusu taraması, paylaşılan listeden bilinen kötü adresler. Fail2ban ise kendi biçiminizde kendi günlüğünüzün olduğu, senaryo yazmaktansa düzenli ifade yazmanın daha kolay olduğu yerde kalır — kendi yazdığınız bir uygulama, ender bir servis, belirli bir oturum açma formu.

Birini seçmek gerekirse ölçüt şudur: sürekli yoklanan bir sitenin bulunduğu bir sunucuda paylaşılan liste sayesinde CrowdSec daha çoğunu verir. Yalnızca sizin anahtarlarla SSH üzerinden eriştiğiniz bir sunucuda aralarındaki fark küçüktür — oradaki işin çoğu parolaları kapatmakla zaten yapılmıştır.

Ortak bir sınırlama

Hiçbiri bir uygulamadaki açığa karşı korumaz. İkisi de istek sıklığı ve adres itibarıyla çalışır; temiz bir adresten ilk denemede bir eklentideki deliği istismar eden bir istek ikisinin de yanından geçer. Bu başka araçların işidir — istek düzeyinde bir WAF ve zamanında güncellemeler. Adres engellemek arka planı ortadan kaldırır, nedeni değil.

İkisinin de pratik değeri, sonuca birinin bakmasına bağlıdır. Artan karar sayısı, ilk kez tetiklenen bir senaryo, denemelerin geldiği ülkelerdeki bir değişiklik — aracın uğruna kurulduğu bilgi budur. Bunun tek sayfada nasıl göründüğü aşağıdaki demoda.