Linux'ta Fail2Ban Nasıl Kurulur ve Yapılandırılır

9 dakikalık okuma - 14 Mayıs 2026

hero section cover
İçindekiler
  • Linux'ta Fail2Ban'ı Yükleme ve Yapılandırma
  • Ön Koşullar
  • Ubuntu/Debian'da Fail2Ban'ı Kurma
  • Jail'leri Yapılandırma
  • Test ve İzleme
  • Gelişmiş Yapılandırma
Paylaş

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.log Debian tabanlı sistemlerde, /var/log/secure RHEL 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 fail2ban

Hizmetin önyükleme sırasında başlaması için etkinleştirin, ardından başlatın:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Varsayı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.local

Her ş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

/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ğerNe Yapar
bantime3600Bir IP'yi 1 saat boyunca engeller
findtime60010 dakikalık bir aralıkta hataları sayar
maxretry3 ve 5Yasaklanmadan önce gerçekleşen başarısızlık sayısı
ignoreip127.0.0.1/8 ::1Hiç 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 status

Test 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 sshd

Engellemelerin gerçek zamanlı olarak gerçekleşmesini izleyin:

tail -f /var/log/fail2ban.log

Yanlışlıkla meşru bir IP'yi engellediyseniz, engellemeyi kaldırın:

sudo fail2ban-client set sshd unbanip 203.0.113.50

Günlük İzleme

Günlüğü grep komutuyla tarayarak engelleme geçmişini inceleyin:

grep "Ban\|Unban" /var/log/fail2ban.log

Yararlı yönetim komutları:

KomutAmaç
fail2ban-client statusTü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 --allTü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-multiport

Fail2Ban'ı 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)s

The 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.

background image
Sunucunuz büyümenizi engelliyor mu?

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çın

Blog

Bu hafta öne çıkanlar

Daha fazla makale
Güçlü ve ölçülmemiş bir VPS'ye sahip olmak neden önemlidir?

Güç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

Daha fazla makale
background image

Sorularınız mı var veya özel bir çözüme mi ihtiyacınız var?

icon

Esnek seçenekler

icon

Küresel erişim

icon

Anında dağıtım

icon

Esnek seçenekler

icon

Küresel erişim

icon

Anında dağıtım