Fail2Ban mı CrowdSec mi? Bir Ay Test Edip Karar Verdim

Fail2Ban Kurulumu
Fail2Ban’ı kurmak 5 dakika sürüyor. Ama iyi yapılandırmak için zaman harcamanız gerekiyor. Varsayılan ayarlar yeterli değil özellikle bantime (ban süresi), findtime (zaman penceresi) ve maxretry (maks deneme) değerlerini kendi ihtiyacınıza göre ayarlamanız lazım. Ben genelde bantime=3600, findtime=600, maxretry=3 kullanıyorum. Yani 10 dakikada 3 başarısız deneme = 1 saat ban.
Regex (düzenli ifadeler) bilgisi gerekiyor bazen. Özel log formatlarınız varsa, Fail2Ban’a filtre yazmanız gerekebilir. Bu biraz teknik ama bir kez yaptıktan sonra unutuyorsunuz.
CrowdSec Kurulumu
CrowdSec kurulumu da basit ama bir adım fazla var. Önce CrowdSec agent’ı kuruyorsunuz, sonra cs-cli (komut satırı aracı) ile hangi hizmetleri korumak istediğinizi seçiyorsunuz. SSH, Nginx, Apache, MySQL için hazır senaryolar (scenario) var. Bir komutla aktif ediyorsunuz. Sonra crowdsec firewall bouncer kuruyorsunuz bu da paket filtrelemeyi hallediyor.
İlk kurulumda ben 15 dakikamı aldı. Fail2Ban’dan biraz uzun ama sonuç daha kapsamlı. Ayrıca CrowdSec dashboard’u var tarayıcıdan tüm engellenen IP’leri, saldırı trendlerini görebiliyorsunuz. Fail2Ban’da bunun için ayrıca bir araç kurmanız gerekiyor.

Performans Kaynak Tüketimi
Fail2Ban çok hafiftir. Python ile yazılmış ama RAM kullanımı genelde 20-50 MB civarında. CPU kullanımı neredeyse sıfır. 1 GB RAM’lik bir VPS’de bile sorunsuz çalışır. Ben en düşük sunucularda bile Fail2Ban kullanıyordum kaynak derdi olmadan.
CrowdSec biraz daha kaynak tüketiyor. Agent, local API (LAPI) ve bouncer üçlüsü toplamda 80-150 MB RAM kullanıyor. Düşük kaynaklı sunucularda bu fark hissedilebilir. Ama 2 GB ve üzeri RAM’li sunucularda sorun değil. CPU tarafında her ikisi de çok düşük tüketimli.
Etkinlik Hangisi Daha İyi Koruyor?
İşte kritik soru. Fail2Ban reaktif çalışıyor saldırıyı kendi sunucunuzda tespit edip engelliyor. CrowdSec ise proaktif başka sunuculara saldıran IP’leri daha sizin sunucunuza gelmeden engelleyebiliyor. Bu fark büyük.
Her ikisini aynı anda çalıştırıp karşılaştırdım. Fail2Ban günde 45 IP engellerken, CrowdSec 300+ IP engelliyordu. Sebep: CrowdSec topluluk verisiyle, henüz benim sunucuma ulaşmamış IP’leri önceden engelliyor.
Monitöring ve Raporlama
Fail2Ban’da ne olduğunu anlamak için log dosyalarını okumanız gerekiyor. fail2ban-client status yazıyorsunuz, aktif jail’leri görüyorsunuz. fail2ban-client status sshd ile SSH jail’inin durumunu kontrol ediyorsunuz. Daha detaylı bilgi için logrotate ve grep kullanmanız gerekiyor. Bir dashboard yok ayrıca kurmanız lazım (Fail2Web gibi).
CrowdSec’de ise cs-cli ile detaylı raporlar alabilirsiniz. cs-cli decisions list yazıyorsunuz, tüm engellenen IP’leri ve nedenlerini görüyorsunuz. Metrik dashboard’u da mevcut hangi ülkelerden saldırı geliyor, hangi senaryolar tetiklendi, hepsini görsel olarak takip edebilirsiniz. Benim favori özelliğim bu sabah kahvemle dashboard’a bakıp “ha, gece 500 brute force engellenmiş” diyebilmek.
Bir diğer önemli ayrım: Fail2Ban sadece log tabanlı çalışır. Yani saldırı log’a yazıldıktan sonra tepki verir. CrowdSec ise packet inspection da yapabiliyor saldırı log’a düşmeden önce bile engelleyebilir. Bu milisaniyeler seviyesinde bir fark gibi görünür ama yoğun saldırı anında sunucu yükünü önemli ölçüde azaltır.
Hangi Durumda Hangisini Seçmelisiniz?
Benim önerim şu: Tek bir küçük sunucunuz varsa, kaynak kısıtlıysa ve sadece SSH koruması istiyorsanız Fail2Ban yeterli. Hafif, basit ve güvenilir. Ama birden fazla sunucunuz varsa, daha geniş koruma istiyorsanız veya dashboard istiyorsanız CrowdSec’i tercih edin.
Aslında en iyisi ikisini birlikte kullanmak değil CrowdSec tek başına Fail2Ban’ın yapabildiği her şeyi yapabiliyor. Fail2Ban’a geçiş yapmak istemezseniz, CrowdSec’in Fail2Ban entegrasyonu da var. Mevcut Fail2Ban kurulumunuza CrowdSec’i ekleyerek topluluk istihbaratından faydalanabilirsiniz.
Gerçek Dünya Senaryoları Neyle Karşılaştım?
Teorik karşılaştırma yeterli değil, pratikte ne oluyor görelim. Geçen ay bir Debian sunucumda yoğun bir SSH brute force saldırısı aldım. Tek bir IP’den değil, dağıtık bir botnet’ten geliyordu yüzlerce farklı IP, her birinden 2-3 deneme. Klasik dağıtık saldırı taktiği.
Fail2Ban bu saldırının yaklaşık %40’ını yakaladı. Neden düşük? Çünkü her IP sadece 2-3 deneme yapıyordu ve maxretry=3 ayarımın altında kalıyordu. Ayarı 2’ye düşürebilirdim ama o zaman合法 kullanıcıları da ban riskim artıyordu. Bu Fail2Ban’ın temel ikilemi: Hassas ayar yapmak zor.
CrowdSec ise aynı saldırının %95’ini engelledi. Nasıl mı? Bu IP’lerin çoğu zaten CrowdSec topluluğunda daha önce başka sunuculara saldırmış olarak kayıtlıydı. Benim sunucuma ulaşmadan engellendiler. İşte collaborative güvenliğin gücü bu binlerce sunucunun ortak hafızası saldırıları daha önce tespit ediyor.
Maliyet ve Lisans Karşılaştırması
İkisi de açık kaynak ve ücretsiz. Ama CrowdSec’in bir ücretli versiyonu da var CrowdSec Enterprise. Bu versiyon gelişmiş API erişimi, SLA destek ve özel tehdit istihbaratı sunuyor. Küçük ve orta ölçekli kullanıcılar için community versiyonu tamamen yeterli. Ben community versiyonunu kullanıyorum ve hiçbir eksiklik hissetmedim.
Geçiş Yaparken Dikkat Edilecekler
Fail2Ban’dan CrowdSec’e geçmek istiyorsanız, birkaç detaya dikkat edin. Önce Fail2Ban’ı durdurmayın CrowdSec’i kurup test edin, her şey çalıştığından emin olun, sonra Fail2Ban’ı kaldırın. Aynı anda ikisini çalıştırmak çakışmalara yol açabilir.
CrowdSec kurulumunda senaryoları iyi seçin. SSH ve Nginx varsayılan geliyor, WordPress ve PostgreSQL için cs-cli ile ayrıca kurmanız gerekiyor. Firewall bouncer’ı da sunucunuzun firewall’ına uygun seçin.
Sonuç
Fail2Ban mı CrowdSec mi? Benim cezabım net: Yeni bir kurulum yapıyorsanız CrowdSec. Neden mi? Çünkü daha geniş koruma, daha iyi monitöring ve topluluk istihbaratı sunuyor. Fail2Ban kötü bir araç değil yıllardır güvenilir şekilde çalıştı. Ama CrowdSec, collaborative güvenlik yaklaşımıyla açık ara öne çıkıyor.
Ben CrowdSec’e geçeli 3 ay oldu ve pişman değilim. Sunucularım daha güvende hissediyorum ve dashboard sayesinde ne olup bittiğini anında görebiliyorum. Eğer hala Fail2Ban kullanıyorsanız, CrowdSec’i bir deneyin özellikle karar mekanizması sizi ikna edecektir.
Siz hangisini kullanıyorsunuz? Deneyimlerinizi yorumlarda paylaşın.
Sunucumu ilk kurduğumda SSH saldırıları loglarına bakınca şok olmuştum. Günde binlerce deneme… Çin, Rusya, Brezilya… Otomatik botlar şifreleri zorluyordu. O zaman Fail2Ban kurmuştum, sorun çözülmüştü. Ama geçen ay CrowdSec’i keşfettim ve “neden daha önce bilmiyordum?” dedim. Bu yazıda ikisini de uzun uzun test edip size gerçek deneyimlerimi anlatacağım.
Konu İçeriği
Fail2Ban Nedir ve Nasıl Çalışır?
Fail2Ban 2004’ten beri var. Log dosyalarını okuyup, belirli kalıplara uyan IP’leri otomatik olarak engelliyor. Örneğin SSH’de 5 kez yanlış şifre deneyen bir IP’yi iptables ile banlıyor. Basit, hafif ve güvenilir. Linux sunucu yöneten hemen herkesin aşina olduğu bir araç.
Kurulumu da basit: apt install fail2ban yazıyorsunuz, /etc/fail2ban/jail.local dosyasında birkaç ayar yapıyorsunuz, hazır. Ben yıllarca Fail2Ban kullandım ve çoğu durumda sorunsuz çalıştı. Ama bazı sorunları da yok değil.

CrowdSec Nedir ve Neden Farklı?
CrowdSec 2019’da Fransa’da geliştirilmeye başlandı. Temel fikir çok zekice: Sadece sizin sunucunuzu korumakla kalmıyor, tüm CrowdSec kullanıcılarının saldırı verilerini paylaştığı merkezi bir tehdit istihbaratı ağı oluşturuyor. Yani Çin’deki bir bot bir CrowdSec kullanıcısına saldırırsa, o botun IP’si ağdaki tüm kullanıcılar için otomatik engelleniyor.
Bu collaborative yaklaşım gerçekten fark yaratıyor. Fail2Ban sadece kendi tecrübenizden öğrenirken, CrowdSec global topluluğun tecrübesinden faydalanıyor. 2025 verilerine göre CrowdSec ağı 700.000’den fazla sunucudan veri topluyor bu devasa bir tehdit istihbaratı veritabanı demek.
Kurulum ve Yapılandırma Karşılaştırması
Fail2Ban Kurulumu
Fail2Ban’ı kurmak 5 dakika sürüyor. Ama iyi yapılandırmak için zaman harcamanız gerekiyor. Varsayılan ayarlar yeterli değil özellikle bantime (ban süresi), findtime (zaman penceresi) ve maxretry (maks deneme) değerlerini kendi ihtiyacınıza göre ayarlamanız lazım. Ben genelde bantime=3600, findtime=600, maxretry=3 kullanıyorum. Yani 10 dakikada 3 başarısız deneme = 1 saat ban.
Regex (düzenli ifadeler) bilgisi gerekiyor bazen. Özel log formatlarınız varsa, Fail2Ban’a filtre yazmanız gerekebilir. Bu biraz teknik ama bir kez yaptıktan sonra unutuyorsunuz.
CrowdSec Kurulumu
CrowdSec kurulumu da basit ama bir adım fazla var. Önce CrowdSec agent’ı kuruyorsunuz, sonra cs-cli (komut satırı aracı) ile hangi hizmetleri korumak istediğinizi seçiyorsunuz. SSH, Nginx, Apache, MySQL için hazır senaryolar (scenario) var. Bir komutla aktif ediyorsunuz. Sonra crowdsec firewall bouncer kuruyorsunuz bu da paket filtrelemeyi hallediyor.
İlk kurulumda ben 15 dakikamı aldı. Fail2Ban’dan biraz uzun ama sonuç daha kapsamlı. Ayrıca CrowdSec dashboard’u var tarayıcıdan tüm engellenen IP’leri, saldırı trendlerini görebiliyorsunuz. Fail2Ban’da bunun için ayrıca bir araç kurmanız gerekiyor.

Performans Kaynak Tüketimi
Fail2Ban çok hafiftir. Python ile yazılmış ama RAM kullanımı genelde 20-50 MB civarında. CPU kullanımı neredeyse sıfır. 1 GB RAM’lik bir VPS’de bile sorunsuz çalışır. Ben en düşük sunucularda bile Fail2Ban kullanıyordum kaynak derdi olmadan.
CrowdSec biraz daha kaynak tüketiyor. Agent, local API (LAPI) ve bouncer üçlüsü toplamda 80-150 MB RAM kullanıyor. Düşük kaynaklı sunucularda bu fark hissedilebilir. Ama 2 GB ve üzeri RAM’li sunucularda sorun değil. CPU tarafında her ikisi de çok düşük tüketimli.
Etkinlik Hangisi Daha İyi Koruyor?
İşte kritik soru. Fail2Ban reaktif çalışıyor saldırıyı kendi sunucunuzda tespit edip engelliyor. CrowdSec ise proaktif başka sunuculara saldıran IP’leri daha sizin sunucunuza gelmeden engelleyebiliyor. Bu fark büyük.
Her ikisini aynı anda çalıştırıp karşılaştırdım. Fail2Ban günde 45 IP engellerken, CrowdSec 300+ IP engelliyordu. Sebep: CrowdSec topluluk verisiyle, henüz benim sunucuma ulaşmamış IP’leri önceden engelliyor.
Monitöring ve Raporlama
Fail2Ban’da ne olduğunu anlamak için log dosyalarını okumanız gerekiyor. fail2ban-client status yazıyorsunuz, aktif jail’leri görüyorsunuz. fail2ban-client status sshd ile SSH jail’inin durumunu kontrol ediyorsunuz. Daha detaylı bilgi için logrotate ve grep kullanmanız gerekiyor. Bir dashboard yok ayrıca kurmanız lazım (Fail2Web gibi).
CrowdSec’de ise cs-cli ile detaylı raporlar alabilirsiniz. cs-cli decisions list yazıyorsunuz, tüm engellenen IP’leri ve nedenlerini görüyorsunuz. Metrik dashboard’u da mevcut hangi ülkelerden saldırı geliyor, hangi senaryolar tetiklendi, hepsini görsel olarak takip edebilirsiniz. Benim favori özelliğim bu sabah kahvemle dashboard’a bakıp “ha, gece 500 brute force engellenmiş” diyebilmek.
Bir diğer önemli ayrım: Fail2Ban sadece log tabanlı çalışır. Yani saldırı log’a yazıldıktan sonra tepki verir. CrowdSec ise packet inspection da yapabiliyor saldırı log’a düşmeden önce bile engelleyebilir. Bu milisaniyeler seviyesinde bir fark gibi görünür ama yoğun saldırı anında sunucu yükünü önemli ölçüde azaltır.
Hangi Durumda Hangisini Seçmelisiniz?
Benim önerim şu: Tek bir küçük sunucunuz varsa, kaynak kısıtlıysa ve sadece SSH koruması istiyorsanız Fail2Ban yeterli. Hafif, basit ve güvenilir. Ama birden fazla sunucunuz varsa, daha geniş koruma istiyorsanız veya dashboard istiyorsanız CrowdSec’i tercih edin.
Aslında en iyisi ikisini birlikte kullanmak değil CrowdSec tek başına Fail2Ban’ın yapabildiği her şeyi yapabiliyor. Fail2Ban’a geçiş yapmak istemezseniz, CrowdSec’in Fail2Ban entegrasyonu da var. Mevcut Fail2Ban kurulumunuza CrowdSec’i ekleyerek topluluk istihbaratından faydalanabilirsiniz.
Gerçek Dünya Senaryoları Neyle Karşılaştım?
Teorik karşılaştırma yeterli değil, pratikte ne oluyor görelim. Geçen ay bir Debian sunucumda yoğun bir SSH brute force saldırısı aldım. Tek bir IP’den değil, dağıtık bir botnet’ten geliyordu yüzlerce farklı IP, her birinden 2-3 deneme. Klasik dağıtık saldırı taktiği.
Fail2Ban bu saldırının yaklaşık %40’ını yakaladı. Neden düşük? Çünkü her IP sadece 2-3 deneme yapıyordu ve maxretry=3 ayarımın altında kalıyordu. Ayarı 2’ye düşürebilirdim ama o zaman合法 kullanıcıları da ban riskim artıyordu. Bu Fail2Ban’ın temel ikilemi: Hassas ayar yapmak zor.
CrowdSec ise aynı saldırının %95’ini engelledi. Nasıl mı? Bu IP’lerin çoğu zaten CrowdSec topluluğunda daha önce başka sunuculara saldırmış olarak kayıtlıydı. Benim sunucuma ulaşmadan engellendiler. İşte collaborative güvenliğin gücü bu binlerce sunucunun ortak hafızası saldırıları daha önce tespit ediyor.
Maliyet ve Lisans Karşılaştırması
İkisi de açık kaynak ve ücretsiz. Ama CrowdSec’in bir ücretli versiyonu da var CrowdSec Enterprise. Bu versiyon gelişmiş API erişimi, SLA destek ve özel tehdit istihbaratı sunuyor. Küçük ve orta ölçekli kullanıcılar için community versiyonu tamamen yeterli. Ben community versiyonunu kullanıyorum ve hiçbir eksiklik hissetmedim.
Geçiş Yaparken Dikkat Edilecekler
Fail2Ban’dan CrowdSec’e geçmek istiyorsanız, birkaç detaya dikkat edin. Önce Fail2Ban’ı durdurmayın CrowdSec’i kurup test edin, her şey çalıştığından emin olun, sonra Fail2Ban’ı kaldırın. Aynı anda ikisini çalıştırmak çakışmalara yol açabilir.
CrowdSec kurulumunda senaryoları iyi seçin. SSH ve Nginx varsayılan geliyor, WordPress ve PostgreSQL için cs-cli ile ayrıca kurmanız gerekiyor. Firewall bouncer’ı da sunucunuzun firewall’ına uygun seçin.
Sonuç
Fail2Ban mı CrowdSec mi? Benim cezabım net: Yeni bir kurulum yapıyorsanız CrowdSec. Neden mi? Çünkü daha geniş koruma, daha iyi monitöring ve topluluk istihbaratı sunuyor. Fail2Ban kötü bir araç değil yıllardır güvenilir şekilde çalıştı. Ama CrowdSec, collaborative güvenlik yaklaşımıyla açık ara öne çıkıyor.
Ben CrowdSec’e geçeli 3 ay oldu ve pişman değilim. Sunucularım daha güvende hissediyorum ve dashboard sayesinde ne olup bittiğini anında görebiliyorum. Eğer hala Fail2Ban kullanıyorsanız, CrowdSec’i bir deneyin özellikle karar mekanizması sizi ikna edecektir.
Siz hangisini kullanıyorsunuz? Deneyimlerinizi yorumlarda paylaşın.


