Fail2ban ssh brute force saldırılarına karşı sunucularınızı korumak, modern sistem yöneticilerinin vazgeçilmez bir parçasıdır.
Fail2ban ssh brute force saldırılarına karşı sunucularınızı korumak, modern sistem yöneticilerinin vazgeçilmez bir parçasıdır. SSH protokolü üzerinden gerçekleştirilen bu saldırılar, saldırganların sonsuz kullanıcı adı ve şifre kombinasyonları denemesiyle hesaplara erişim sağlamayı hedefler. Fail2Ban gibi bir araç, log dosyalarını izleyerek tekrarlanan başarısız giriş denemelerini tespit eder ve ilgili IP adreslerini otomatik olarak engeller. Bu makalede, Fail2Ban’ı kurarak SSH brute force saldırılarını nasıl etkili bir şekilde önleyebileceğinizi adım adım inceleyeceğiz. Kurumsal ortamlar için ideal olan bu çözüm, manuel müdahaleyi minimize eder ve sistem güvenliğini artırır.
Fail2Ban, açık kaynaklı bir intrusion prevention yazılımıdır. Sistem loglarını gerçek zamanlı olarak tarar, belirli kalıpları eşleştirir ve iptables veya firewalld gibi araçlarla IP tabanlı engellemeler uygular. Özellikle SSH servisleri için optimize edilmiş jail’ler (hapishane) sayesinde, brute force girişimlerini saniyeler içinde bloke eder. Bu araç, Debian, Ubuntu, CentOS gibi popüler Linux dağıtımlarında kolayca kurulabilir ve düşük kaynak tüketimiyle çalışır.
Kurulumu için terminalde şu komutları kullanın: Önce paket yöneticisini güncelleyin (sudo apt update Ubuntu için), ardından sudo apt install fail2ban ile yükleyin. Servisi etkinleştirin: sudo systemctl enable fail2ban ve sudo systemctl start fail2ban. Varsayılan yapılandırma dosyası /etc/fail2ban/jail.confdur, ancak değişiklikleri /etc/fail2ban/jail.local dosyasında yapmanızı öneririz. Bu sayede orijinal konfigürasyon korunur. Fail2Ban, regex filtreleri ile loglardaki “Failed password” gibi ifadeleri yakalar ve bant (ban) süresi boyunca IP’yi engeller – varsayılan 10 dakika, ancak ihtiyacınıza göre uzatabilirsiniz.
Fail2ban ssh brute koruması için SSH jail’ini etkinleştirmek esastır. jail.local dosyasını düzenleyin ve [sshd] bölümünü etkinleştirin. Bu bölüm, SSH loglarını (/var/log/auth.log) izler ve maksimum 5 başarısız denemeden sonra IP’yi 1 saat engeller. Yapılandırmada enabled = true, port = ssh ve logpath = /var/log/auth.log gibi parametreleri ayarlayın. Ayrıca, kendi IP’nizi ignoreip listesine ekleyerek yanlış engellemeleri önleyin.
Jail dosyasını nano veya vim ile açın: sudo nano /etc/fail2ban/jail.local. [sshd] bloğunda bantime = 3600 (1 saat), findtime = 600 (10 dakika içinde), maxretry = 5 olarak belirleyin. Bu ayarlar, saldırganın 10 dakika içinde 5’ten fazla deneme yapmasını engeller. Değişiklik sonrası sudo systemctl restart fail2ban ile servisi yenileyin. Filtre dosyası /etc/fail2ban/filter.d/sshd.conf regex’leri tanımlar; örneğin ^%(__prefix_line)s(?:error: )?(?:pam_unix\(sshd:auth\): )?authentication failure; logname=uid=\d+ ruser= rhost=<HOST>.* gibi ifadelerle brute force yakalanır. Bu özelleştirmeler, kurumsal sunucularda yüksek trafiğe dayanıklılık sağlar.
Engelleme iptables zincirinde gerçekleşir: fail2ban-client status sshd ile jail durumunu kontrol edin. Engellenen IP’leri listeleyin: fail2ban-client get sshd banip. Manuel engelleme için fail2ban-client set sshd banip IP_ADRESI, serbest bırakma için fail2ban-client set sshd unbanip IP_ADRESI kullanın. E-posta bildirimleri için destemail ve action parametrelerini yapılandırın; örneğin mta = sendmail. Bu kurallar, fail2ban ssh brute saldırılarını proaktif yönetmenizi sağlar ve log rotasyonunda kesinti olmaz.
Test için başka bir makineden SSH’ye birden fazla yanlış şifre deneyin. Ardından fail2ban-client status sshd ile IP’nizin engellendiğini doğrulayın. iptables kurallarını listeleyin: sudo iptables -L f2b-sshd -n. Gerçek hayatta, Fail2Ban’ı fail2ban-regex ile filtre test edin: fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf. Bu komut, loglardaki eşleşmeleri gösterir ve yapılandırmayı doğrular.
ignoreip = 127.0.0.1/8 ::1 kendi_ipniz ile koruyun.backend = pyinotify kullanın.loglevel = INFO ile detaylı izleme yapın.En iyi uygulamalar arasında düzenli güncelleme (apt upgrade fail2ban) ve birden fazla jail (örneğin Apache, Postfix için) etkinleştirme yer alır. Bu şekilde kapsamlı koruma sağlanır.
Fail2Ban ile SSH brute force saldırılarını otomatik engellemek, sistem güvenliğinizi önemli ölçüde yükseltir. Adım adım uyguladığınız bu yapılandırma, kurumsal düzeyde güvenilirlik sunar ve manuel çabayı azaltır. Düzenli izleme ile olası sorunları erken tespit edin, böylece kesintisiz hizmet sağlayın.