Linux Sunucular için Fail2ban Yapılandırması
Linux sistemlerinde brute-force saldırılarına karşı en pratik çözümlerden biri Fail2ban’dır. SSH, FTP ve mail servislerinde yinelenen başarısız giriş denemelerini log dosyaları üzerinden analiz eder ve saldırgan IP’leri otomatik olarak engeller. Bu yöntem, sadece o anki saldırıyı durdurmakla kalmaz, sistem yöneticilerinin ileride yaşanabilecek kesintilere karşı hazırlıklı olmasını da sağlar.
Fail2ban tarafından üretilen log kayıtları ve otomatik bloklama işlevleri, felaket kurtarma senaryolarının daha etkin uygulanmasını destekler. Böylece yöneticiler saldırı eğilimlerini analiz ederek kritik servislerdeki yükü önceden fark eder ve güvenlik önlemlerini DR planlarına entegre edebilir.
Fail2ban Nedir ve Nasıl Çalışır?
Fail2ban, sistem loglarını sürekli izleyerek ardışık başarısız giriş denemelerini algılar ve eşik değeri aşan IP adreslerini otomatik biçimde engeller. Bu engelleme, çoğunlukla iptables ya da nftables üzerinden uygulanır. Böylece brute-force saldırıları daha etkili hale gelmeden durdurulur.
Fail2ban Çalışma Sırası
Fail2ban başlatıldığında:
- İlk olarak
fail2ban.confdosyası okunur, pid ve log ayarları yapılır. - Ardından
jail.confve varsajail.d/*.confdosyaları yüklenir. - Sonra
jail.localdosyası okunur ve buradaki ayarlar öncelik kazanır. - Eğer
jail.d/*.localdosyaları varsa, en son onlar uygulanır. - Etkinleştirilen bölümler (
enabled = true) devreye girer ve ilgili filtre + aksiyon setiyle brute-force engelleme süreci başlar.
Fail2ban bu basit ama etkili yöntem sayesinde brute-force saldırılarını daha başlamadan durdurur.
Fail2ban Kurulumu
Çoğu Linux dağıtımının resmi depolarında yer alır.
Ubuntu/Debian:
sudo apt update
sudo apt install fail2ban -y
CentOS/RHEL:
sudo yum install epel-release -y
sudo yum install fail2ban -y
Kurulum sonrası servisi aktif hale getirelim.
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Fail2ban Yapılandırması
jail.local dosyasının ilk kısmında [DEFAULT] bölümü bulunur. Buradaki ayarlar, tüm servisler için genel politikaları tanımlar. Hizmet bazlı bölümlerde bu değerler değiştirilebilir.
Fail2ban Varsayılan Parametreleri
| 🔑 Parametre | 📌 Görevi | Açıklama |
|---|---|---|
| ignoreip | Hariç IP | Banlanmayacak IP’leri belirtir (örn. kendi IP’niz). |
| bantime | Ban süresi | IP’nin engelli kalacağı süre (varsayılan 10 dk). |
| findtime | Zaman penceresi | Başarısız girişlerin sayıldığı süre. |
| maxretry | Deneme limiti | İzin verilen maksimum hatalı giriş sayısı. |
| backend | Log izleme | Logların nasıl izleneceğini belirtir (auto, systemd vb.). |
| usedns | DNS çözümleme | IP yerine hostname kullanılıp kullanılmayacağını belirler. |
| banaction | Engelleme yöntemi | IP’yi yasaklamak için uygulanacak yöntem (örn. iptables). |
| destemail / sendername | Mail bildirimi | Ban uyarılarının gideceği adres ve gönderen adı |
Fail2ban Loglarının İzlenmesi
Fail2ban, yaptığı tüm engellemeleri /var/log/fail2ban.log dosyasında saklar.
Loglarda hangi IP’lerin engellendiği, hangi servislerin hedef alındığı görülebilir.
2025-09-09 10:15:32 fail2ban.actions
[1234]: NOTICE [sshd] Ban 192.168.1.55
Bu loglar yalnızca manuel inceleme için değil, aynı zamanda merkezi monitoring sistemlerine aktarım için de kullanılabilir.
Fail2ban Hizmet Ayarlarını Keşfetme
Linux’ta Fail2ban, yapılandırma dosyalarıyla yönetilir ve bu dosyalar hiyerarşik şekilde /etc/fail2ban/ dizini altında bulunur. Temel ayarların yer aldığı dosya fail2ban.conf olup, daemon’un hangi soket ve pid dosyalarını kullanacağını, loglama yöntemini ve genel operasyonel parametreleri tanımlar. Ancak asıl güvenlik politikaları, uygulama bazlı “jail” bölümleri içinde belirlenir.
jail.conf ve jail.local Farkı
Fail2ban, varsayılan olarak jail.conf dosyasıyla gelir. Ancak bu dosya sistem güncellemelerinde üzerine yazılabileceği için, yapılandırmalarınızı doğrudan burada yapmanız tavsiye edilmez. Bunun yerine jail.conf dosyasını kopyalayarak jail.local oluşturmalı ve özelleştirmeleri burada yapmalısınız.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Filtre Dosyaları
Her servis, kendi loglarını analiz etmek için filter dosyaları kullanır. Bu dosyalar /etc/fail2ban/filter.d/ altında yer alır. Örneğin SSH servisi için kullanılan filtre dosyası sshd.conf dosyasıdır.
Buradaki failregex satırları, loglarda hangi kalıpların brute-force denemesi sayılacağını belirler.
Failed password for .* from <HOST>
ROOT LOGIN REFUSED.* FROM <HOST>
Invalid user .* from <HOST>
SNMP ve Monitoring Entegrasyonu
Fail2ban tek başına saldırıları durdurur, ancak saldırı yoğunluğunu ve kaynağını merkezi olarak görmek için SNMP tabanlı izleme sistemleriyle entegre edilebilir. Özellikle VMware ESXi Üzerinde SNMP Yapılandırması ile Fail2ban logları birlikte kullanıldığında, sanallaştırma katmanındaki güvenlik olayları da merkezi olarak takip edilebilir.
Saldırı Trendlerinin Analiz
Sistem yöneticileri, brute-force saldırılarının hangi IP aralıklarından veya bölgelerden geldiğini ve zaman içindeki eğilimini dashboard üzerinden kolayca analiz edebilir. Böylece yalnızca güvenlik sağlamakla kalmaz, aynı zamanda saldırı trendlerini gözlemleme şansı da elde ederler.
Detaylı bilgi için daha önce hazırladığımız VMware ESXi Üzerinde SNMP Etkinleştirme yazısına göz atabilirsiniz.
Plesk Panel Üzerinde Fail2Ban
Plesk Panel üzerinde de Fail2Ban dahili bir güvenlik modülü olarak sunulmaktadır. Bu entegrasyon sayesinde SSH, FTP, mail servisleri veya Plesk login ekranına yönelik saldırılar doğrudan panel arayüzünden yönetilebilir. Böylece komut satırı bilmeyen yöneticiler bile brute-force saldırılarını kolayca kontrol altına alabilir.

Sık Sorulan Sorular
Fail2ban nedir ve hangi sistemlerde çalışır?
Fail2ban, log dosyalarını izleyerek başarısız giriş denemelerini tespit eden ve saldırgan IP’leri otomatik olarak engelleyen bir güvenlik aracıdır. Çoğunlukla Linux tabanlı sistemlerde kullanılır.
Fail2ban hangi servisleri korur?
En yaygın olarak SSH, FTP, mail servisleri ve web uygulamaları üzerindeki brute-force girişimlerini engeller. İstenirse özel filtrelerle diğer servisler için de yapılandırılabilir.
Ban süresi nasıl değiştirilir?
Ban süresi jail.local dosyasındaki bantime parametresi ile ayarlanır. Varsayılan değer 10 dakikadır, ancak ihtiyaçlara göre artırılabilir veya azaltılabilir.
Fail2ban loglarını nasıl görüntüleyebilirim?
Fail2ban tarafından yapılan tüm engellemeler /var/log/fail2ban.log dosyasında tutulur. Buradan hangi IP’lerin ne zaman engellendiğini görebilirsiniz.
Fail2ban Plesk Panel üzerinde kullanılabilir mi?
Plesk Panel, Fail2ban’ı dahili bir güvenlik modülü olarak sunar. SSH, FTP, mail veya Plesk giriş ekranına yönelik brute-force saldırıları doğrudan panel arayüzünden yönetebilirsiniz.
Fail2ban SNMP ile entegre edilebilir mi?
Doğrudan SNMP desteği yoktur, ancak loglar monitoring sistemlerine aktarılabilir. Böylece Zabbix, Grafana veya Nagios üzerinden saldırı trendlerini izlemek mümkündür.
