Linux'ta Fail2Ban Nasıl Kurulur ve Yapılandırılır
9 dakikalık okuma - 14 Mayıs 2026

Ubuntu, Debian ve RHEL tabanlı Linux sunucularında Fail2Ban'ı kurmak, yapılandırmak ve test etmek için adım adım kılavuz.
Linux'ta Fail2Ban'ı Yükleme ve Yapılandırma
Fail2Ban, sunucu günlüklerinizi şüpheli etkinlikler açısından izler ve güvenlik duvarı kurallarınızı güncelleyerek kuralları ihlal eden IP adreslerini otomatik olarak engeller. Brute-force saldırılarını durdurur, günlük gürültüsünü azaltır ve bir kez yapılandırıldıktan sonra arka planda sessizce çalışır. Bu kılavuz, Ubuntu/Debian'da kurulum, temel yapılandırma, jail kurulumu ve bilinmesi gereken birkaç gelişmiş seçeneği kapsamaktadır.
Ön Koşullar
Fail2Ban, Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux ve Fedora gibi çoğu Linux dağıtımında çalışır. İhtiyacınız olan şeyler:
- Sistemde Python 3'ün kurulu olması
- Paket yükleme ve güvenlik duvarı değişiklikleri için root veya sudo erişimi
- Etkin bir güvenlik duvarı (iptables, nftables, ufw veya firewalld)
- Başarısız oturum açma girişimlerini kaydeden günlük dosyaları (
/var/log/auth.logDebian tabanlı sistemlerde,/var/log/secureRHEL tabanlı sistemlerde)
RHEL tabanlı sistemlerde, önce EPEL deposunu etkinleştirin. Fail2Ban'ı yüklemeden önce, ufw status veya systemctl status firewalld.
Ubuntu/Debian'da Fail2Ban'ı Kurma
Paketlerinizi güncelleyin ve Fail2Ban'ı kurun:
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banHizmetin önyükleme sırasında başlaması için etkinleştirin, ardından başlatın:
sudo systemctl enable fail2ban
sudo systemctl start fail2banVarsayılan yapılandırmayı yerel bir geçersiz kılma dosyasına kopyalayın. Her zaman jail.localdosyasını düzenleyin, jail.confdosyasını düzenleyin, böylece paket güncellemeleri ayarlarınızın üzerine yazmaz:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localHer şeyin çalıştığını doğrulayın:
sudo systemctl status fail2ban
sudo fail2ban-client statusİlk komut "Active: active (running)" mesajını göstermelidir. İkincisi ise aktif jails'lerinizi listeler. sudo systemctl is-enabled fail2ban.
Jail'leri Yapılandırma
Varsayılan Ayarlar
Aç /etc/fail2ban/jail.local ve [DEFAULT] bölümünü ayarlayın. Bu ayarlar, geçersiz kılınmadıkça tüm jails için geçerlidir:
| Parametre | Önerilen Değer | Ne Yapar |
|---|---|---|
bantime | 3600 | Bir IP'yi 1 saat boyunca engeller |
findtime | 600 | 10 dakikalık bir aralıkta hataları sayar |
maxretry | 3 ve 5 | Yasaklanmadan önce gerçekleşen başarısızlık sayısı |
ignoreip | 127.0.0.1/8 ::1 | Hiç yasaklanmayan IP'ler |
Kendi yönetim IP'nizi ekleyin ignoreip kendinizi dışarıda bırakmamak için. Örnek: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
SSH Koruması
SSH hapishanesini jail.local:
[sshd]
enabled = true'yi etkinleştirin logpath distronuz için doğru günlük dosyasına yönlendirildiğini kontrol edin. SSH'yi standart olmayan bir bağlantı noktasına (ör. 2222) taşıdıysanız, port parametresini buna göre güncelleyin.
Web Sunucusu Koruması
Web sunucunuza uygun hapishaneyi etkinleştirin:
- Nginx:
[nginx-http-auth]kimlik doğrulama hataları için,[nginx-botsearch]kötü niyetli botlar için - Apache:
[apache-auth]kimlik doğrulama için,[apache-badbots]botlar için
Recidive Jail
Recidive [recidive] jail, diğer jail'lerde sürekli yasaklanan IP'leri yakalar ve genellikle bir hafta (604.800 saniye) gibi daha uzun bir ceza uygular. Bu, yaklaşımlarını değiştiren ısrarcı saldırganlar için kullanışlıdır.
Değişiklikleri yaptıktan sonra sayfayı yeniden yükleyin:
sudo systemctl restart fail2ban
sudo fail2ban-client statusTest ve İzleme
Yasaklamaları Test Etme
Üretim ortamında Fail2Ban'e güvenmeden önce, onu test edin. Uzak bir makineden (yönetici IP'nizden değil), maxretry. Engellenmiş olmalısınız. Şu komutla doğrulayın:
sudo fail2ban-client status sshdEngellemelerin gerçek zamanlı olarak gerçekleşmesini izleyin:
tail -f /var/log/fail2ban.logYanlışlıkla meşru bir IP'yi engellediyseniz, engellemeyi kaldırın:
sudo fail2ban-client set sshd unbanip 203.0.113.50Günlük İzleme
Günlüğü grep komutuyla tarayarak engelleme geçmişini inceleyin:
grep "Ban\|Unban" /var/log/fail2ban.logYararlı yönetim komutları:
| Komut | Amaç |
|---|---|
fail2ban-client status | Tüm aktif hapishaneleri listele |
fail2ban-client banned | Şu anda yasaklanmış tüm IP'leri göster |
fail2ban-client set <jail> unbanip <IP> | Belirli bir IP'nin yasaklamasını kaldır |
fail2ban-client unban --all | Tüm yasakları kaldır |
fail2ban-client set <jail> banip <IP> | Bir IP adresini manuel olarak yasakla |
Engellemeler yeniden başlatmalarda da devam eder. Fail2Ban bunları /var/lib/fail2ban/fail2ban.sqlite3.
Gelişmiş Yapılandırma
nftables'a geçiş
nftables, iptables'ın modern versiyonudur. IPv4 ve IPv6'yı tek bir çerçevede yönetir, büyük yasaklama listeleriyle daha iyi ölçeklenir ve yerleşik hız sınırlama özelliğine sahiptir. Ubuntu 22.04+, Debian 11+ veya herhangi bir yeni dağıtım kullanıyorsanız, bu daha iyi bir seçimdir.
Aşağıdaki şekilde ayarlayın jail.local:
[DEFAULT]
banaction = nftables-multiportFail2Ban'ı yeniden başlatın, ardından sudo nft list rulesetile doğrulayın. Şunu görmelisiniz f2b-table ve f2b-chain görmelisiniz. Yalnızca eski bir sistem kullanıyorsanız veya uyumluluk gereksinimleriniz varsa iptables'ı kullanmaya devam edin.
E-posta Bildirimleri
Varsayılan olarak, Fail2Ban sessizce yasaklama yapar. E-posta uyarıları almak için, [DEFAULT] bölümüne jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sThe action_mwl eylemi, yasaklama ayrıntılarını, WHOIS verilerini ve yasaklamayı tetikleyen günlük satırlarını içeren bir e-posta gönderir. action_mw Yalnızca WHOIS verilerini istiyorsanız kullanın. Sendmail gibi bir posta aktarım aracısının kurulu olması veya msmtp.
Slack veya Discord uyarıları için, bir webhook gönderen bir komut dosyası oluşturun ve bunu /etc/fail2ban/action.d/.
Fail2Ban'ı çalıştırmak için tam root erişimi ve sınırsız bant genişliğine sahip bir sunucu arıyorsanız, FDC'nin özel sunucularına göz atın.

Yavaş dağıtımlardan veya bant genişliği sınırlarından bıktınız mı? FDC Sunucuları anında tahsis edilmiş güç, küresel erişim ve her ölçek için oluşturulmuş esnek planlar sunar. Yükseltmeye hazır mısınız?
Performansın Kilidini Şimdi AçınGüçlü ve ölçülmemiş bir VPS'ye sahip olmak neden önemlidir?
Ölçülmemiş bir VPS, sabit bir bağlantı noktası hızında sabit oranlı bant genişliği sağlar. Ölçülü planlardan farkı nedir, ne zaman işe yarar ve satın almadan önce neleri kontrol etmelisiniz.
7 dakikalık okuma - 9 Mayıs 2025
Linux Bellek Yönetimi: Swap, OOM Killer & Cgroups
12 dakikalık okuma - 31 Mayıs 2026

Sorularınız mı var veya özel bir çözüme mi ihtiyacınız var?
Esnek seçenekler
Küresel erişim
Anında dağıtım
Esnek seçenekler
Küresel erişim
Anında dağıtım