Linux sunucularında brute force saldırıları, özellikle SSH gibi hizmetlere yönelik yoğun deneme-yanılma girişimleriyle sistem kaynaklarını tüketebilir ve güvenlik
Linux sunucularında brute force saldırıları, özellikle SSH gibi hizmetlere yönelik yoğun deneme-yanılma girişimleriyle sistem kaynaklarını tüketebilir ve güvenlik açıkları yaratabilir. Bu saldırılar, parola tahmin ederek yetkisiz erişim sağlamayı amaçlar. Neyse ki, ücretsiz ve açık kaynaklı araçlar sayesinde bu tehditleri etkili bir şekilde engellemek mümkündür. Bu makalede, Fail2Ban, SSHGuard ve CrowdSec gibi üç güçlü aracı inceleyeceğiz. Her biri, log dosyalarını izleyerek şüpheli IP adreslerini otomatik olarak engeller ve sunucunuzu korur. Bu araçları kurmak ve yapılandırmak için adım adım rehberler sunarak, pratik uygulamayı kolaylaştıracağız. Kurumsal ortamlar için ideal olan bu çözümler, minimum kaynak tüketimiyle maksimum koruma sağlar.
Fail2Ban, en popüler brute force koruma araçlarından biridir. Sistem loglarını gerçek zamanlı olarak tarar, başarısız giriş denemelerini regex kurallarıyla tespit eder ve iptables veya firewalld aracılığıyla IP’leri geçici olarak banlar. Debian/Ubuntu tabanlı sistemlerde sudo apt update && sudo apt install fail2ban komutuyla kolayca kurulur. Kurulum sonrası /etc/fail2ban/jail.d/ dizininde jail dosyalarını etkinleştirerek SSH koruması başlatabilirsiniz. Varsayılan olarak 5 başarısız denemeden sonra 10 dakika ban uygular, ancak bu değerleri jail.local dosyasında özelleştirebilirsiniz.
Fail2Ban’ı kurduktan sonra, /etc/fail2ban/jail.local dosyasını oluşturun veya düzenleyin. [sshd] bölümünde enabled = true, bantime = 3600 (1 saat) ve maxretry = 3 ayarlayın. Ardından sudo systemctl restart fail2ban ile servisi yeniden başlatın. Durumu fail2ban-client status sshd komutuyla kontrol edin. Bu ayarlar, brute force girişimlerini hızlıca bloke eder ve sunucu loglarınızı temiz tutar. Ek hizmetler için, apache-auth veya postfix gibi jail’leri etkinleştirerek kapsamı genişletebilirsiniz. Pratikte, bu araç haftada onlarca saldırıyı otomatik engelleyerek manuel müdahaleyi ortadan kaldırır.
Fail2Ban’ı güçlendirmek için e-posta bildirimleri ekleyin: jail.local’a destemail = [email protected] ve action = %(action_mwl)s satırlarını ekleyin. Whitelist oluşturmak adına ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 ile güvenilir IP’leri hariç tutun. Logları /var/log/fail2ban.log üzerinden izleyin ve fail2ban-client set sshd banip 1.2.3.4 ile manuel ban uygulayın. Bu adımlar, kurumsal sunucularda proaktif güvenlik sağlar ve false positive’leri minimize eder. Düzenli bakım için haftalık jail durumunu raporlayın.
SSHGuard, kaynak tüketimi düşük bir daemon olarak çalışır ve syslog mesajlarını doğrudan izleyerek brute force, port tarama gibi saldırıları algılar. Fail2Ban’a alternatif olarak daha az yapılandırma gerektirir. Ubuntu’da sudo apt install sshguard ile kurulur. Kurulum sonrası otomatik başlar ve hosts.deny veya iptables backend’ini kullanır. Varsayılan blok süresi 1 saattir, ancak /etc/sshguard/sshguard.conf’ta threshold ve blocktime parametrelerini ayarlayabilirsiniz. Bu araç, özellikle bellek sınırlı VPS’lerde idealdir.
Kurulumdan sonra sudo systemctl enable sshguard ile açılışta çalışmasını sağlayın. Konfigürasyon dosyasında BACKEND="iptables" seçerek firewall entegrasyonu yapın. Test için sshguard -T ile dry-run modunda çalıştırın. SSH loglarında “Invalid user” veya “Failed password” gibi mesajlar algılandığında IP’yi otomatik banlar. Pratik takeaway: Küçük ekipler için 5 dakikalık kurulumla anında koruma elde edin. Logları journalctl -u sshguard ile takip edin ve gerektiğinde unblock için sshguard -u IP kullanın.
SSHGuard’un hafifliği sayesinde CPU kullanımını %1’in altında tutar. Çoklu backend desteğiyle nftables veya ipfw’ye geçebilirsiniz. Kurumsal kullanımda, birden fazla sunucuda merkezi loglama ile entegre edin. Örnek: 10 denemeden sonra kalıcı ban için threshold=10 ayarlayın. Bu, saldırganların tekrar denemesini engeller ve sistem stabilitesini artırır. Düzenli güncellemelerle yeni saldırı vektörlerine uyum sağlar, böylece uzun vadeli güvenilirlik sunar.
CrowdSec, brute force’u ötesinde crowdsourced istihbaratla saldırıları tanımlar. Linux dağıtımlarında curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash ve sudo apt install crowdsec ile kurulur. Parser’lar ve senaryolarla logları analiz eder, IP’leri yerel banlar ve anonim olarak topluluğa paylaşır. Ücretsiz bouncer’larla Nginx veya SSH entegrasyonu yapabilirsiniz. Bu araç, proaktif koruma için birebirdir.
Kurulum sonrası sudo cscli collections install crowdsecurity/sshd ile SSH koleksiyonunu yükleyin. sudo systemctl start crowdsec ile başlatın. Konfigürasyon /etc/crowdsec/config.yaml’da yapılır; ban süresini duration: 4h olarak ayarlayın. Durumu cscli metrics ile izleyin. Pratikte, topluluk verileri sayesinde bilinmeyen IP’ler önceden engellenir. Bouncer kurmak için sudo cscli bouncers add my-bouncer yapın ve API key’i kaydedin. Bu adımlar, 15 dakikada tam koruma sağlar.
CrowdSec dashboard’unda cscli dashboard setup ile web arayüzü etkinleştirin. Karantina listesinden cscli decisions list ile banları yönetin. Ek senaryolar için cscli scenarios install crowdsecurity/generic-http-bruteforce kullanın. Kurumsal fayda: Paylaşılan istihbaratla saldırı paternlerini erkenden yakalayın. Örnek çıktı: “IP 1.2.3.4 brute-force ssh 5 times” gibi detaylı raporlar alın. Bu, güvenlik ekiplerine actionable insight verir ve manuel incelemeyi azaltır.
Brute force saldırılarını önlemek için Fail2Ban, SSHGuard ve CrowdSec’i sisteminize entegre ederek katmanlı savunma oluşturun. Her aracın güçlü yönlerini değerlendirerek –Fail2Ban esnekliği, SSHGuard hafifliği, CrowdSec zekası– ihtiyaçlarınıza en uygununu seçin veya bir arada kullanın. Düzenli log inceleme ve güncellemelerle bu araçlar, sunucularınızı uzun vadede güvende tutar. Pratik uygulayarak, güvenlik operasyonlarınızı verimli hale getirin ve olası ihlalleri minimuma indirin.