SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-07

Ubuntu 24.04 Fail2ban Kurulumu ve SSH Bot Engelleme

Ubuntu 24.04 uzerinde apt install fail2ban komutuyla SSH brute force saldirilarini nasil durduracaginizi ogrenin. fail2ban-client status sshd ciktisini ve Total failed hatasini cozun.

Fail2ban gerçekte ne yapar

Fail2ban, log dosyalarını okuyan bir arka plan servisidir. SSH kimlik doğrulama mesajlarını izler ve kısa bir süre içerisinde tek bir adresten gelen birkaç başarısız denemeden sonra, o adresi belirli bir süreliğine engelleyen bir güvenlik duvarı komutu çalıştırır. Tüm mantık bundan ibarettir. Tek bir dosya içerisinde yaklaşık otuz satırlık bir yapılandırmadan oluşur ve Ubuntu 24.04 üzerinde kurulumu, herhangi bir düzenleme yapmadan önce sizi koruma altına alan tek bir apt komutundan ibarettir.

Fail2ban'in ne olduğunu ve ne olmadığını net bir şekilde anlamak gerekir. Fail2ban kimsenin kimliğini doğrulamaz, hiçbir şeyi şifrelemez ve kararlı bir giriş denemesini tek başına durduramaz; yalnızca aynı kaynaktan gelen tekrarlı denemeleri engeller. Bir kilit değil, bir gürültü filtresi ve hız sınırlayıcıdır. Görevi, 22 numaralı porttaki sürekli arka plan taramalarının CPU'nuzu, bant genişliğinizi ve log alanınızı boşa harcamasını engellemek ve aynı anda tek bir adresten gelmek zorunda olan saldırganları yavaşlatmaktır.

Fail2ban'in yerini tutmadığı şeyler

Fail2ban ilk değil, üçüncü savunma katmanıdır. Sunucunuz hala SSH parolalarını kabul ediyorsa, binlerce adrese yayılmış bir botnet tahmin yapmaya devam edebilir; çünkü her bir adres yasaklama eşiğinizin altında kalır ve tetiklemeyi asla gerçekleştirmez. Buna karşı gerçek savunma, parola tahminini kaç deneme yapılırsa yapılsın imkansız kılan anahtar tabanlı kimlik doğrulamadır. Anahtar tabanlı kimlik doğrulamanın üzerinde çalışan Fail2ban iki faydalı işlev görür: loglarınızdaki kaba kuvvet (brute-force) gürültüsünü temizler ve tarayıcıları erkenden uzaklaştırarak portu zorlamalarını engeller. Bunu derinlemesine savunma olarak değerlendirin. Fail2ban, anahtar tabanlı kimlik doğrulamanın ve güvenlik duvarının arkasında yer alır; asla önlerinde bulunmaz.

Ön gereksinimler ve Ubuntu 24.04 gerçeği

root veya sudo yetkilerine sahip, SSH erişimi (tercihen anahtar tabanlı kimlik doğrulama ile) yapılandırılmış bir Ubuntu 24.04 VPS sunucusuna ihtiyacınız vardır. Fail2ban oldukça verimlidir: sadece birkaç on megabayt RAM tüketir ve herhangi bir limit ayarı gerektirmez.

Şimdi eski rehberlerin çoğunun hatalı olduğu kısma gelelim. Yıllardır standart tavsiye "Fail2ban kurun, ardından backend = systemd ekleyin, çünkü Ubuntu artık /var/log/auth.log yazmıyor" şeklindeydi. Bu tavsiye gerçek bir değişikliği yansıtmaktadır; modern sunucu ve bulut imajları rsyslog olmadan dağıtılır, bu nedenle SSH yalnızca systemd journal kaydına yazar ve ilgili metin dosyası artık mevcut değildir. Ancak Ubuntu 24.04 üzerinde Fail2ban paketi bunu zaten hesaba katar. Paket, /etc/fail2ban/jail.d/defaults-debian.conf dosyasını sisteme ekler ve sunucunuz aslında varsayılan değerler yerine bu dosyayı çalıştırır:

[DEFAULT]
banaction = nftables
banaction_allports = nftables[type=allports]
backend = systemd

[sshd]
enabled = true

Bunu dikkatlice okuyun, çünkü herhangi bir işlem yapmadan önce iki soruyu yanıtlar. backend = systemd, SSH jail'inin journal'ı okuduğu anlamına gelir, bu nedenle eksik auth.log bir sorun teşkil etmez. banaction = nftables, yasaklamaların eski iptables yerine Ubuntu 24.04'ün fiilen kullandığı güvenlik duvarı olan nftables üzerinden uygulandığı anlamına gelir. [sshd] enabled = true ise jail'in ilk açılıştan itibaren aktif olduğu anlamına gelir. Sonuç olarak: Ubuntu 24.04 üzerindeki standart bir apt install fail2ban, SSH kaba kuvvet saldırılarını kutudan çıktığı haliyle engeller. İşinizin büyük kısmı bunu doğrulamak, politikayı ince ayarlarla düzenlemek ve kendinizi sistemin dışında bırakmadığınızdan emin olmaktır.

Eski auth.log tuzağı hala üç durumda karşınıza çıkabilir ve bunları tanımak önemlidir: Fail2ban'ı apt yerine pip ile kurduysanız ve bu nedenle defaults-debian.conf mevcut değilse; systemd journal kaydına erişimi olmayan ayrıcalıksız bir container içindeyseniz veya eski bir rehberi takip edip backend = auto içeriğini kendi jail.local dosyanıza yapıştırarak çalışan varsayılan ayarları geçersiz kıldıysanız. Hata modları bölümü, her bir durumun nasıl göründüğünü tam olarak açıklar.

Adım 1: Kurulum ve engelleme işleminin doğrulanması

sudo apt update
sudo apt install -y fail2ban

Ubuntu 24.04, Fail2ban 1.0.2 sürümüyle gelir ve paket, zorunlu bir bağımlılık olarak python3-systemd paketini yükler; bu sayede journal arka ucu ihtiyaç duyduğu her şeye sahip olur. Servis, kurulumla birlikte otomatik olarak etkinleşir ve başlar:

sudo systemctl status fail2ban

active (running) komutunu çalıştırmanız gerekir. Ardından, halihazırda görevini yerine getiren jail yapılandırmasını inceleyin:

sudo fail2ban-client status sshd

Birkaç dakikadır erişilebilir durumda olan halka açık bir VPS üzerinde, genellikle başarısız giriş denemelerinin sayıldığını ve IP adreslerinin engellendiğini göreceksiniz; internet üzerindeki botlar 22 numaralı portu sürekli olarak tarar. Bu, varsayılan yapılandırmanın çalıştığının kanıtıdır. Bu noktadan itibaren sistemi sıfırdan inşa etmek yerine mevcut yapıyı iyileştiriyorsunuz.

Adım 2: jail.local dosyasını düzenleyin, jail.conf dosyasını asla düzenlemeyin

Fail2ban, yukarı akış varsayılanlarını /etc/fail2ban/jail.conf içerisinde tutar. Bu dosyayı düzenlemeyin. Paketin her apt upgrade işlemi bu dosyayı değiştirebilir ve yaptığınız değişiklikler hiçbir uyarı olmaksızın kaybolur. Fail2ban dosyaları sabit bir sırada okur; önce jail.conf, ardından jail.d/ içindeki her şey, en son ise jail.local okunur ve son değer geçerli olur. .local dosyası size aittir ve paket yükseltmeleri bu dosyaya asla dokunmaz. Aynı kural filtreler için de geçerlidir; burada bir *.local dosyası, paketle gelen filter.d/*.conf dosyasını geçersiz kılar.

Bu nedenle, yalnızca ilgilendiğiniz birkaç ayarı geçersiz kılan küçük bir jail.local yazmalı ve hem jail.conf hem de paketle gelen jail.d/defaults-debian.conf dosyalarını referans olarak dokunulmadan bırakmalısınız.

Adım 3: /etc/fail2ban/jail.local dosyasını yazın

sudo nano /etc/fail2ban/jail.local

Aşağıdaki içeriği ekleyin ve ignoreip satırındaki adresi kendi genel IP adresinizle değiştirin:

[DEFAULT]
# Ubuntu 24.04 already sets these two in jail.d/defaults-debian.conf.
# Pinning them here documents the dependency and survives if that
# file is ever removed or changed by an upgrade.
backend   = systemd
banaction = nftables

# Ban for one hour ...
bantime  = 1h
# ... if an address fails ...
maxretry = 5
# ... 5 times within 10 minutes.
findtime = 10m

# Never ban these. PUT YOUR OWN IP HERE.
ignoreip = 127.0.0.1/8 ::1 10.0.0.24

# Longer bans for repeat offenders: 1h, 2h, 4h ... up to a week.
bantime.increment = true
bantime.maxtime   = 1w

[sshd]
enabled = true

Her satırın bir amacı vardır:

  • bantime, findtime ve maxretry politikayı belirler. Yazılımla birlikte gelen varsayılan bantime süresi yalnızca on dakikadır; bir saat daha makul bir alt sınırdır. On dakika içinde aynı adresten gelen beş başarısız deneme yasaklama ile sonuçlanır. Gerçek kullanıcılar şifrelerini bir veya iki kez yanlış girebilir; on dakikada beş hata ise bir betiğe işaret eder.
  • ignoreip sizin güvenlik kemerinizdir. Bağlantı kurduğunuz genel IP adresini buraya yazın; böylece Fail2ban sizi kendi sunucunuzdan asla dışarıda bırakmaz. Değişken IP adresine sahip bir ev bağlantınız varsa, bu satırı atlamak yerine bölümün sonundaki VPN yaklaşımını tercih etmelisiniz.
  • bantime.increment = true, her tekrarlanan yasaklamanın bir öncekinden daha uzun sürmesini sağlar; bir saat, ardından iki, sonra dört ve bantime.maxtime değerine kadar artar. Sürekli geri dönen adresler kademeli olarak daha uzun süre kilitli kalır.

Beyaz listeye eklenecek adresi sunucudan değil, SSH bağlantısını yaptığınız makineden öğrenin:

curl -s ifconfig.me

Portlarınıza ve yasaklama politikanıza göre ayarlanmış bir jail.local değerini buradan oluşturabilir ve ardından dosyaya yapıştırabilirsiniz:

ToolFail2ban jail generator

Adım 4: Yeniden başlatın ve günlüğü okuduğunu doğrulayın

sudo fail2ban-client -t
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

-t, önce bir yapılandırma testi çalıştırır; bu nedenle jail.local içindeki bir yazım hatası, servisi çalışmaz durumda bırakmak yerine burada belirgin bir şekilde hata verir. Sağlıklı bir jail durumu şu şekilde görünür:

Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     14
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned:     3
   `- Banned IP list:   10.0.0.66

Fail2ban'in girişlerinizi gerçekten okuduğunu kanıtlayan sayı Total failed değeridir. Eğer bu değer sıfırdan büyükse veya başka bir makineden kasıtlı olarak hatalı giriş yaptığınızda artıyorsa, günlük okunuyor demektir ve işlem tamamlanmıştır. Eğer kaç kez hatalı giriş yaparsanız yapın değer 0 olarak kalıyorsa ve ignoreip içindeki adresten test yapmadığınızdan eminseniz, aşağıdaki hata modlarına geçin.

Journal matches satırının hala sshd.service ismini taşıdığına dikkat edin. Ubuntu üzerinde SSH birimi aslında ssh.service'dur, ancak yüklü gelen filtre _COMM=sshd üzerinde de eşleşme sağlar ve 24.04 üzerindeki OpenSSH, hatalarını sshd isimli bir süreçten günlüğe kaydeder, bu nedenle eşleşme çalışır. Bu detay yalnızca daha yeni bir OpenSSH (bağlantı başına çalışan işçinin sshd-session olduğu 9.8 veya sonrası) kullanıyorsanız önemlidir; hata modları bu durumu da kapsamaktadır.

Adım 5: Gerçek bir yasaklamayı izleyin veya test etmek için manuel tetikleyin

Halka açık herhangi bir VPS üzerinde gerçek yasaklamalar dakikalar içinde kendiliğinden gerçekleşir. Bir yasaklamayı izlemek için log dosyasını takip edin:

sudo tail -f /var/log/fail2ban.log

Bir yasaklama şu şekilde görünür:

2026-07-15 10:31:40,502 fail2ban.filter  [812]: INFO    [sshd] Found 10.0.0.66 - 2026-07-15 10:31:40
2026-07-15 10:31:44,118 fail2ban.actions [812]: NOTICE  [sshd] Ban 10.0.0.66

Beklemeden mekanizmanın uçtan uca çalıştığını kanıtlamak için, kendi adresiniz dışında bir dokümantasyon adresini manuel olarak yasaklayın:

sudo fail2ban-client set sshd banip 10.0.0.66

Bu komut 1 çıktısını verir ve adres fail2ban-client status sshd içindeki Banned IP list altında görünür. Şimdi engellemenin güvenlik duvarında gerçekten var olduğunu doğrulayın. Ubuntu 24.04 üzerinde bu iptables değil, nftables'tır:

sudo nft list table inet f2b-table

10.0.0.66 değerini tutan addr-set-sshd isimli bir set ve bu setteki herhangi bir kaynaktan gelen trafiği reddeden f2b-chain isimli bir zincir göreceksiniz. Eğer fail2ban-client bir adresin yasaklandığını söylüyor ancak nft list içinde hiçbir şey görünmüyorsa, yasaklama eyleminiz güvenlik duvarınızla eşleşmiyor demektir; hata modları bölümündeki nftables/iptables notuna bakın.

Adım 6: Engeli kaldırma ve kilitlenme durumunda kurtarma

Yanlışlıkla kendi IP adresinizi veya engellememeniz gereken bir adresi engellediyseniz, engeli şu şekilde kaldırın:

sudo fail2ban-client set sshd unbanip 10.0.0.66

İşlem başarılı olduğunda 1 döner. Tüm jail yapılandırmalarındaki engelleri temizlemek için:

sudo fail2ban-client unban --all

Açık bir SSH oturumunun sizi kurtaracağına güvenmeyin: nftables engeli, engellenen adresten 22 numaralı porta gelen tüm paketleri (mevcut bağlantılar dahil) reddeder; bu nedenle engel uygulandığı anda mevcut oturum donar. Kendinizi engellediyseniz ve bir ignoreip kaydınız yoksa, engel süresi dolana kadar kilitli kalırsınız. Bu durumda, SSH üzerinden geçmeyen sağlayıcınızın web konsolu (VNC veya seri konsol) aracılığıyla kurtarma yapın ve ya bantime süresinin dolmasını bekleyin ya da engeli kaldırma komutunu oradan çalıştırın.

Adım 7: Yasakların kalıcı olmasını sağlama ve tırmandırma

Fail2ban, aktif yasakları /var/lib/fail2ban/fail2ban.sqlite3 konumundaki küçük bir SQLite veritabanında tutar; böylece servis yeniden başlatıldığında veya sistem reboot edildiğinde yasaklar kaybolmaz. Zaten eklemiş olduğunuz bantime.increment satırları, her mükerrer ihlali yapan kullanıcı için cezayı yaklaşık bir saatten bir haftaya kadar ikiye katlayarak tırmandıran bir sorun haline getirir.

Bunun üzerine sistem genelinde bir "üç ihtar" politikası uygulamak için Fail2ban, kendi /var/log/fail2ban.log dosyasını izleyen ve tüm jail'ler genelinde defalarca yasaklanan adreslere uzun süreli yasaklar uygulayan bir recidive jail'i ile birlikte gelir. [DEFAULT] yapılandırmanız artık systemd arka ucunu kullandığından, bu jail'i okuması için tasarlandığı log dosyasına sabitleyin:

[recidive]
enabled  = true
backend  = auto
logpath  = /var/log/fail2ban.log
bantime  = 1w
findtime = 1d
maxretry = 5

Açık bir logpath parametresi ile backend = auto kullanmak, recidive aracının düz fail2ban.log dosyasını okumaya devam etmesini sağlar. Saydığı Ban satırları aslında burada görünür; global olarak ayarladığınız systemd varsayılanı, aracı journal dosyasına yönlendirecektir ancak bu satırlar orada bulunmaz.

Adım 8: Anahtar tabanlı SSH ile eşleştirin ve daha iyisi bir VPN kullanın

Fail2ban, yalnızca anahtar tabanlı kimlik doğrulama ile birlikte kullanıldığında gerçek değerini gösterir. /etc/ssh/sshd_config.d/ altındaki bir yapılandırma dosyasında, örneğin /etc/ssh/sshd_config.d/00-hardening.conf içinde şunları ayarlayın:

PasswordAuthentication no
KbdInteractiveAuthentication no

Ardından sudo systemctl restart ssh komutunu çalıştırın. Parola girişi kapatıldığında, kaba kuvvet (brute force) saldırıları hiçbir şekilde başarılı olamaz; Fail2ban bu noktada günlük kayıtlarındaki gürültüyü azaltmak ve tarayıcıları erkenden engellemek için görev yapar. Daha da güvenli bir yöntem, SSH'yi genel internete tamamen kapatmaktır: SSH'yi kendi barındırdığınız bir WireGuard VPN arkasına alın ve 22 numaralı portu yalnızca tünel üzerinden yanıt verecek şekilde güvenlik duvarı ile kısıtlayın. Kimse erişemediği bir portu kaba kuvvet ile zorlayamaz; bu durumda Fail2ban bir ön cephe değil, bir yedek güvenlik katmanı haline gelir.

Fail2ban yalnızca SSH için değildir. Başarısız giriş denemelerini günlüğe kaydeden herhangi bir servis, bir posta sunucusu, bir nginx sitesi veya kimlik bilgisi doldurma (credential stuffing) saldırılarına açık bırakmak istemeyeceğiniz kendi barındırdığınız bir Vaultwarden parola yöneticisi için bir jail (hapishane) oluşturulabilir. Bir web uygulaması Let's Encrypt sertifikasına sahip bir nginx sitesi arkasına alındığında, SSH jail'inin journal'ı izlediği gibi, bir Fail2ban filtresini de ilgili uygulamanın erişim günlüğüne yönlendirin.

Hata modları ve karşılaşacağınız kesin ifadeler

"Have not found any log file for sshd jail" hatası ve Fail2ban'in başlamaması. Bu eski bir auth.log sorunudur; Ubuntu 24.04 üzerinde yalnızca paket varsayılanları geçersiz kılındığında, defaults-debian.conf içermeyen bir pip kurulumunda, journal kaydı olmayan bir container'da veya jail.local içine yapıştırılan hatalı bir backend = auto satırı varsa ortaya çıkar. /var/log/auth.log içermeyen bir dosya arka ucunda, sshd jail'i günlük dosyasını bulamaz ve tüm daemon durur. fail2ban.log şu çıktıyı verir:

ERROR   Failed during configuration: Have not found any log file for sshd jail

Bu hata kritik olduğu için servis ayağa kalkmaz ve fail2ban-client status, ikincil bir belirti olarak şu raporu döner:

ERROR  Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?

Buradaki "socket path" satırı Fail2ban'in bozuk olduğu anlamına gelmez; yalnızca bir jail günlük dosyasını bulamadığı için servisin hiç başlamadığını gösterir. Ubuntu paketinin halihazırda sizin için yaptığı gibi [DEFAULT] içinde backend = systemd ayarını yapmak, her iki mesajı da aynı anda düzeltir.

Jail aktif ancak Total failed artmıyor. Daemon çalışıyor ve journal okunuyor, ancak gerçek başarısızlıklar journalctl -u ssh içinde birikmesine rağmen sayaç 0 değerinde kalıyor. Öncelikle en bariz nedeni eleyin: ignoreip içinde listelenen bir adresten test yapıyorsanız, kendi başarısızlıklarınız tasarım gereği muaf tutulur. Eğer sorun bu değilse, bağlantı başına çalışan işçinin sshd-session olduğu (9.8 ve sonrası) bir OpenSSH sürümü kullanıyorsunuz demektir. Bu sürümde journal _COMM değeri sshd değil sshd-session olduğu için, varsayılan eşleşme bunu yakalayamaz. [sshd] bloğundaki eşleşmeyi genişletin:

[sshd]
enabled      = true
backend      = systemd
journalmatch = _SYSTEMD_UNIT=ssh.service + _COMM=sshd + _COMM=sshd-session

Servisi yeniden başlatın, ignoreip içinde olmayan bir adresten kasten hatalı giriş yapın ve Total failed değerinin yükseldiğini doğrulayın.

Kendinizi banladınız: Connection refused. Kendi adresinizi ignoreip dışında bıraktınız, birkaç hatalı giriş denediniz ve sonuç:

ssh: connect to host 10.0.0.10 port 22: Connection refused

Sessiz bir zaman aşımı yerine bağlantının reddedilmesi, nftables aksiyonunun varsayılan reject kararının işini yaptığını gösterir. 6. Adım'da belirtildiği gibi düzeltin: banlanmamış farklı bir adresten veya sağlayıcı konsolu üzerinden oturum açarak banı kaldırın; banlanan adresten halihazırda açık olan oturum da donacaktır. Ardından, durumun tekrarlanmaması için adresinizi ignoreip içine ekleyin.

Fail2ban bir adresin banlandığını söylüyor ancak bağlantı hala kurulabiliyor. status sshd içindeki sayaç artıyor ancak adres hala 22 numaralı porta ulaşabiliyor. Bu, ban aksiyonu ile güvenlik duvarı arasındaki bir uyumsuzluktur. Ubuntu 24.04 üzerinde bu durum, neredeyse her zaman iptables katmanı olmayan bir sistemde, çalışan banaction = nftables ayarını eski bir rehberden kopyalanan banaction = iptables-multiport ile geçersiz kıldığınız anlamına gelir. fail2ban.log şunu gösterir:

fail2ban.actions [812]: ERROR  Failed to execute ban jail 'sshd' action 'iptables-multiport'

Bu geçersiz kılma ayarını silin ve paketle gelen nftables aksiyonunun kalmasını sağlayın. Eğer güvenlik duvarını tamamen ufw üzerinden yönetiyor ve banların orada görünmesini istiyorsanız, [DEFAULT] içinde banaction = ufw ayarını yapın. Yeniden başlatın ve kuralın sudo nft list ruleset | grep f2b ile göründüğünü doğrulayın.

jail.local düzenlendikten sonra Fail2ban başlamıyor. Bir yazım hatası, fazladan bir başlık veya hatalı bir zaman değeri servisin çalışmasını engeller. Fail2ban'den çalışmadan önce yapılandırmayı kontrol etmesini isteyin:

sudo fail2ban-client -t

Bu komut, sorunun olduğu dosyayı ve jail'i (örneğin Errors in jail 'sshd'. Skipping...) belirtir; böylece tahmin yürütmek yerine doğrudan kaynağı düzeltirsiniz.

FAQ

Ubuntu 24.04 üzerindeki standart Fail2ban kurulumu SSH saldırılarını gerçekten engeller mi?

Evet. Paket, /etc/fail2ban/jail.d/defaults-debian.conf dosyasını içerir; bu dosya sshd jail'ini etkinleştirir, /var/log/auth.log dosyası bulunmadığı için sistemin backend = systemd üzerinden systemd günlüğünü okumasını sağlar ve yasakların Ubuntu'nun gerçek güvenlik duvarı üzerinden uygulanması için banaction = nftables ayarını yapar. Standart bir apt install fail2ban kurulumu, SSH'i ilk açılıştan itibaren korur. Durumu sudo fail2ban-client status sshd ile doğrulayın ve Total failed değerinin sıfırdan farklı olduğunu kontrol edin.

Fail2ban sunucumda neden hiçbir şeyi engellemiyor?

Sırasıyla üç yaygın nedeni eleyin. Testi, tasarım gereği muaf tutulan ignoreip içindeki bir adresten yapıyor olabilirsiniz. Eski bir kılavuzdan backend = auto ayarını jail.local dosyasına yapıştırarak çalışan varsayılan ayarı bozmuş olabilirsiniz; bu durum auth.log dosyası bulunmayan bir imajda günlük okuma işlemini durdurur. Veya hiç systemd günlüğü bulunmayan bir container içinde çalışıyor olabilirsiniz. fail2ban-client status sshd içindeki Total failed değerini kontrol edin: journalctl -u ssh gerçek başarısızlıkları gösterdiği halde bu değer hiç artmıyorsa, jail yanlış yeri okuyor demektir.

Kendi IP adresimin engelini nasıl kaldırırım?

Başarılı olduğunda 1 çıktısını veren veya tüm yasakları temizlemek için sudo fail2ban-client unban --all komutunu çalıştıran sudo fail2ban-client set sshd unbanip YOUR.IP.HERE komutunu kullanın. SSH erişiminiz engellendiyse, sağlayıcınızın web veya VNC konsolunu kullanarak aynı komutu çalıştırın; yasak, adresinizden 22 numaralı porta gelen her paketi reddettiği için halihazırda açık olan bir oturum bile çalışmayı durdurur. Ardından, durumun tekrarlanmaması için adresinizi ignoreip içine ekleyin.

jail.conf ve jail.local arasındaki fark nedir?

jail.conf, Fail2ban'in varsayılan ayarlarını tutar ve her paket yükseltmesinde üzerine yazılır; bu nedenle orada yapılan herhangi bir değişiklik eninde sonunda kaybolur. Debian/Ubuntu paketi, kendi ayarlarını jail.d/defaults-debian.conf aracılığıyla üzerine katman olarak ekler. Sizin değişiklikleriniz, en son okunan, her ikisine de üstün gelen ve yükseltmelerin asla dokunmadığı jail.local dosyasına yapılmalıdır. jail.conf dosyasını salt okunur bir referans olarak bırakın.

Fail2ban, anahtar tabanlı SSH kimlik doğrulamasının yerini alır mı?

Hayır. Fail2ban, tek bir adresten gelen tekrarlanan başarısızlıkları hız sınırına tabi tutar; her adresin eşik değerin altında kaldığı yavaş ve dağıtık tahminlere karşı hiçbir şey yapamaz. Yalnızca anahtar tabanlı kimlik doğrulama (PasswordAuthentication no), parola tahminini tamamen imkansız hale getirir; Fail2ban ise bu noktada günlük kayıtlarındaki gürültüyü azaltır ve tarayıcıları erkenden uzaklaştırır. Her ikisini de kullanın ve ideal olanı, SSH'i genel internete tamamen kapatmaktır.