{"id":39230,"date":"2026-02-17T06:40:56","date_gmt":"2026-02-17T03:40:56","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=39230"},"modified":"2026-02-17T06:40:56","modified_gmt":"2026-02-17T03:40:56","slug":"ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/","title":{"rendered":"Ubuntu 14.04 \u00dczerinde SSH&#8217;\u0131 Fail2Ban ile Koruma"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 14.04 \u00dczerinde SSH&#8217;\u0131 Fail2Ban ile Koruma<\/h2>\n<p>Sunucular\u0131n g\u00fcvenli\u011fi, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda kritik bir \u00f6neme sahiptir. \u00d6zellikle internete a\u00e7\u0131k sunucular, s\u00fcrekli olarak k\u00f6t\u00fc niyetli sald\u0131rganlar\u0131n hedefi haline gelmektedir. Bu sald\u0131r\u0131lar\u0131n ba\u015f\u0131nda, genellikle SSH (Secure Shell) hizmeti \u00fczerinden yap\u0131lan kaba kuvvet (brute-force) sald\u0131r\u0131lar\u0131 gelir. SSH, uzak sunuculara g\u00fcvenli bir \u015fekilde eri\u015fim sa\u011flamak i\u00e7in kullan\u0131lan temel bir protokold\u00fcr ve do\u011fru \u015fekilde korunmad\u0131\u011f\u0131nda ciddi g\u00fcvenlik a\u00e7\u0131klar\u0131 yaratabilir. Bu makalede, Ubuntu 14.04 i\u015fletim sistemi \u00fczerinde SSH hizmetinizi Fail2Ban ile nas\u0131l koruyaca\u011f\u0131n\u0131z\u0131, kurulumdan geli\u015fmi\u015f yap\u0131land\u0131rmalara kadar detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h3>Giri\u015f<\/h3>\n<p>SSH, sunuculara uzaktan eri\u015fim, komut \u00e7al\u0131\u015ft\u0131rma ve dosya transferi i\u00e7in \u015fifreli bir kanal sa\u011flar. Bu \u00f6zelli\u011fi sayesinde sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. Ancak, SSH&#8217;\u0131n yayg\u0131n kullan\u0131m\u0131 ve genellikle varsay\u0131lan 22 numaral\u0131 portu kullanmas\u0131, onu siber sald\u0131rganlar i\u00e7in cazip bir hedef haline getirir. Kaba kuvvet sald\u0131r\u0131lar\u0131, sald\u0131rganlar\u0131n bir kullan\u0131c\u0131 ad\u0131 ve \u015fifre kombinasyonunu tekrar tekrar deneyerek sisteme s\u0131zmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131 bir y\u00f6ntemdir. Bu t\u00fcr sald\u0131r\u0131lar, sadece sunucu kaynaklar\u0131n\u0131 t\u00fcketmekle kalmaz, ayn\u0131 zamanda ba\u015far\u0131l\u0131 olduklar\u0131nda sunucunun tamamen ele ge\u00e7irilmesine yol a\u00e7abilir.<\/p>\n<p>\u0130\u015fte tam bu noktada Fail2Ban devreye girer. Fail2Ban, sunucu log dosyalar\u0131n\u0131 izleyerek belirli bir zaman diliminde ba\u015far\u0131s\u0131z giri\u015f denemeleri gibi k\u00f6t\u00fc niyetli davran\u0131\u015flar\u0131 tespit eden ve bu davran\u0131\u015flar\u0131 sergileyen IP adreslerini ge\u00e7ici veya kal\u0131c\u0131 olarak engelleyen bir intrusion prevention (sald\u0131r\u0131 \u00f6nleme) yaz\u0131l\u0131m\u0131d\u0131r. Bu sayede, sunucunuz kaba kuvvet sald\u0131r\u0131lar\u0131na kar\u015f\u0131 otomatik olarak korunur ve g\u00fcvenlik duru\u015fu \u00f6nemli \u00f6l\u00e7\u00fcde g\u00fc\u00e7lenir. Ubuntu 14.04, uzun s\u00fcreli destek (LTS) s\u00fcr\u00fcm\u00fc olmas\u0131na ra\u011fmen, g\u00fcvenlik g\u00fcncellemeleri almasa da bir\u00e7ok eski sistemde hala kullan\u0131lmaktad\u0131r ve Fail2Ban bu sistemler i\u00e7in hala ge\u00e7erli ve etkili bir g\u00fcvenlik katman\u0131 sunar.<\/p>\n<h3>Neden Fail2Ban?<\/h3>\n<p>Fail2Ban&#8217;\u0131n sunucu g\u00fcvenli\u011findeki rol\u00fc ve sundu\u011fu avantajlar, onu vazge\u00e7ilmez bir ara\u00e7 haline getirmektedir. \u0130\u015fte ba\u015fl\u0131ca nedenler:<\/p>\n<p>*   <strong>Otomatik Koruma:<\/strong> Fail2Ban, manuel m\u00fcdahaleye gerek kalmadan 7\/24 otomatik koruma sa\u011flar. Log dosyalar\u0131n\u0131 s\u00fcrekli izler ve tehditleri an\u0131nda tespit ederek harekete ge\u00e7er. Bu, \u00f6zellikle yo\u011fun sald\u0131r\u0131 alt\u0131nda olan sunucular i\u00e7in b\u00fcy\u00fck bir avantajd\u0131r.<br \/>\n*   <strong>Kaba Kuvvet Sald\u0131r\u0131lar\u0131na Kar\u015f\u0131 Etkililik:<\/strong> SSH, FTP, web sunucular\u0131 gibi bir\u00e7ok hizmete y\u00f6nelik kaba kuvvet sald\u0131r\u0131lar\u0131n\u0131 etkin bir \u015fekilde engeller. Belirli bir say\u0131da ba\u015far\u0131s\u0131z denemenin ard\u0131ndan sald\u0131rgan\u0131n IP adresini yasaklayarak, sald\u0131r\u0131n\u0131n ba\u015far\u0131 \u015fans\u0131n\u0131 ortadan kald\u0131r\u0131r.<br \/>\n*   <strong>Kaynak Verimlili\u011fi:<\/strong> Fail2Ban, sistem kaynaklar\u0131n\u0131 minimum d\u00fczeyde kullanarak \u00e7al\u0131\u015f\u0131r. Log dosyalar\u0131n\u0131 verimli bir \u015fekilde tarar ve sadece gerekti\u011finde IP adreslerini engellemek i\u00e7in <code>iptables<\/code> gibi g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 g\u00fcnceller. Bu, performans kayg\u0131s\u0131 olmadan g\u00fcvenlik sa\u011flaman\u0131n anahtar\u0131d\u0131r.<br \/>\n*   <strong>Esnek Yap\u0131land\u0131rma:<\/strong> Yaz\u0131l\u0131m, &#8220;jail&#8221; (hapishane) ad\u0131 verilen yap\u0131land\u0131rma birimleri arac\u0131l\u0131\u011f\u0131yla son derece esnek bir yap\u0131ya sahiptir. Her bir hizmet (SSH, Apache, Nginx vb.) i\u00e7in ayr\u0131 ayr\u0131 kurallar tan\u0131mlanabilir. Yasaklama s\u00fcreleri, deneme limitleri ve beyaz listeler gibi parametreler kolayca \u00f6zelle\u015ftirilebilir.<br \/>\n*   <strong>Proaktif Savunma:<\/strong> Fail2Ban, bir sald\u0131r\u0131 ba\u015flamadan \u00f6nce (veya ilk a\u015famalar\u0131nda) devreye girerek potansiyel tehditleri bertaraf eder. Bu proaktif yakla\u015f\u0131m, sald\u0131rganlar\u0131n sisteme s\u0131zmas\u0131n\u0131 engeller ve sunucunun b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korur.<br \/>\n*   <strong>Kullan\u0131m Kolayl\u0131\u011f\u0131:<\/strong> Kurulumu ve temel yap\u0131land\u0131rmas\u0131 olduk\u00e7a basittir. \u00c7o\u011fu Linux da\u011f\u0131t\u0131m\u0131n\u0131n paket depolar\u0131nda bulunur ve birka\u00e7 komutla kurulabilir. Varsay\u0131lan ayarlar\u0131 bile SSH i\u00e7in etkili bir koruma sa\u011flar.<\/p>\n<p>Bu avantajlar g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, Fail2Ban&#8217;\u0131n herhangi bir internete a\u00e7\u0131k Ubuntu 14.04 sunucusunda SSH g\u00fcvenli\u011fini sa\u011flamak i\u00e7in olmazsa olmaz bir ara\u00e7 oldu\u011fu a\u00e7\u0131kt\u0131r.<\/p>\n<h3>Ubuntu 14.04 \u00dczerinde Fail2Ban Kurulumu<\/h3>\n<p>Ubuntu 14.04 \u00fczerinde Fail2Ban kurulumu olduk\u00e7a basittir ve birka\u00e7 temel komutla ger\u00e7ekle\u015ftirilebilir. \u0130\u015fte ad\u0131m ad\u0131m kurulum s\u00fcreci:<\/p>\n<h4>Sistem Paket Listesini G\u00fcncelleme<\/h4>\n<p>Kuruluma ba\u015flamadan \u00f6nce, sisteminizdeki paket listesini g\u00fcncelleyerek en son yaz\u0131l\u0131m s\u00fcr\u00fcmlerine ve ba\u011f\u0131ml\u0131l\u0131klara eri\u015fti\u011finizden emin olun. Bu, herhangi bir potansiyel uyumluluk sorununu \u00f6nlemeye yard\u0131mc\u0131 olur.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update<\/code><\/pre>\n<p>Bu komut, yerel paket indeksinizi Ubuntu&#8217;nun resmi depolar\u0131ndaki en son bilgilerle senkronize eder.<\/p>\n<h4>Fail2Ban Paketini Kurma<\/h4>\n<p>Paket listesi g\u00fcncellendikten sonra, Fail2Ban&#8217;\u0131 <code>apt-get<\/code> komutuyla kolayca kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install fail2ban<\/code><\/pre>\n<p>Kurulum s\u0131ras\u0131nda, sistem sizden onay isteyebilir. <code>Y<\/code> tu\u015funa bas\u0131p Enter&#8217;a basarak devam edin. <code>apt-get<\/code> komutu, Fail2Ban paketini ve gerekli t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 indirip sisteminize y\u00fckleyecektir.<\/p>\n<h4>Kurulumu Do\u011frulama ve Servis Durumunu Kontrol Etme<\/h4>\n<p>Kurulum tamamland\u0131ktan sonra, Fail2Ban servisinin d\u00fczg\u00fcn bir \u015fekilde \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo service fail2ban status<\/code><\/pre>\n<p>Bu komut, Fail2Ban servisinin durumunu g\u00f6sterecektir. \u00c7\u0131kt\u0131da genellikle &#8220;fail2ban is running&#8221; veya benzeri bir ifade g\u00f6rmelisiniz. E\u011fer servis \u00e7al\u0131\u015fm\u0131yorsa, a\u015fa\u011f\u0131daki komutla ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo service fail2ban start<\/code><\/pre>\n<p>Ayr\u0131ca, Fail2Ban&#8217;\u0131n kurulu oldu\u011funu ve temel komutlar\u0131n\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in <code>fail2ban-client<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client status<\/code><\/pre>\n<p>Bu komut, \u00e7al\u0131\u015fan jail&#8217;leri (hen\u00fcz yap\u0131land\u0131rma yapmad\u0131\u011f\u0131m\u0131z i\u00e7in muhtemelen hi\u00e7bir jail listelenmeyecektir) ve Fail2Ban&#8217;\u0131n genel durumunu g\u00f6sterecektir.<\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, Fail2Ban ba\u015far\u0131yla kurulmu\u015f ve varsay\u0131lan ayarlar\u0131yla \u00e7al\u0131\u015fmaya ba\u015flam\u0131\u015f olacakt\u0131r. Ancak, SSH korumas\u0131n\u0131 etkinle\u015ftirmek ve ayarlar\u0131 ihtiya\u00e7lar\u0131n\u0131za g\u00f6re \u00f6zelle\u015ftirmek i\u00e7in yap\u0131land\u0131rma ad\u0131mlar\u0131na ge\u00e7memiz gerekmektedir.<\/p>\n<h3>Fail2Ban Yap\u0131land\u0131rmas\u0131na Giri\u015f<\/h3>\n<p>Fail2Ban&#8217;\u0131n g\u00fcc\u00fc, esnek yap\u0131land\u0131rma yeteneklerinden gelir. Temel olarak, Fail2Ban \u00fc\u00e7 ana bile\u015fen etraf\u0131nda d\u00f6ner: <strong>Jail&#8217;ler (Hapishaneler)<\/strong>, <strong>Filtreler<\/strong> ve <strong>Eylemler (Actions)<\/strong>.<\/p>\n<p>*   <strong>Jail&#8217;ler:<\/strong> Bir &#8220;jail&#8221;, belirli bir hizmet (\u00f6rne\u011fin SSH, Apache, Nginx) i\u00e7in tan\u0131mlanm\u0131\u015f bir dizi kural\u0131 temsil eder. Her jail, hangi log dosyas\u0131n\u0131n izlenece\u011fini, hangi filtrenin kullan\u0131laca\u011f\u0131n\u0131, bir IP adresinin ne zaman yasaklanaca\u011f\u0131n\u0131 ve yasakland\u0131\u011f\u0131nda hangi eylemin ger\u00e7ekle\u015ftirilece\u011fini belirtir.<br \/>\n*   <strong>Filtreler:<\/strong> Filtreler, log dosyalar\u0131ndaki k\u00f6t\u00fc niyetli giri\u015fleri tan\u0131mlamak i\u00e7in kullan\u0131lan d\u00fczenli ifadeler (regex) i\u00e7erir. \u00d6rne\u011fin, bir SSH filtresi, ba\u015far\u0131s\u0131z SSH giri\u015f denemelerini g\u00f6steren log sat\u0131rlar\u0131n\u0131 tan\u0131mak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Fail2Ban, bir\u00e7ok pop\u00fcler hizmet i\u00e7in \u00f6nceden tan\u0131mlanm\u0131\u015f filtrelerle gelir.<br \/>\n*   <strong>Eylemler:<\/strong> Eylemler, bir IP adresi bir jail taraf\u0131ndan yasakland\u0131\u011f\u0131nda ne yap\u0131laca\u011f\u0131n\u0131 tan\u0131mlar. En yayg\u0131n eylem, sald\u0131rgan\u0131n IP adresini g\u00fcvenlik duvar\u0131 (genellikle <code>iptables<\/code>) \u00fczerinden engellemektir. Di\u011fer eylemler aras\u0131nda e-posta bildirimleri g\u00f6nderme veya \u00f6zel komut dosyalar\u0131 \u00e7al\u0131\u015ft\u0131rma yer alabilir.<\/p>\n<p>Fail2Ban&#8217;\u0131n yap\u0131land\u0131rma dosyalar\u0131 <code>\/etc\/fail2ban\/<\/code> dizininde bulunur. Bu dizindeki en \u00f6nemli dosyalar <code>jail.conf<\/code> ve <code>jail.d\/<em>.conf<\/code> ile <code>jail.local<\/code> ve <code>jail.d\/<\/em>.local<\/code> dosyalar\u0131d\u0131r.<\/p>\n<h3><code>jail.conf<\/code> ve <code>jail.local<\/code> Dosyalar\u0131<\/h3>\n<p>Fail2Ban yap\u0131land\u0131rmas\u0131n\u0131n temelini <code>jail.conf<\/code> dosyas\u0131 olu\u015fturur. Bu dosya, t\u00fcm varsay\u0131lan jail&#8217;leri, filtreleri ve eylemleri i\u00e7erir. <strong>Ancak, <code>jail.conf<\/code> dosyas\u0131n\u0131 do\u011frudan d\u00fczenlemek kesinlikle \u00f6nerilmez.<\/strong> Bunun nedeni, Fail2Ban paketi g\u00fcncellendi\u011finde bu dosyan\u0131n \u00fczerine yaz\u0131labilmesi ve yapt\u0131\u011f\u0131n\u0131z t\u00fcm de\u011fi\u015fikliklerin kaybolabilmesidir.<\/p>\n<p>Do\u011fru yakla\u015f\u0131m, <code>jail.conf<\/code> dosyas\u0131n\u0131 kopyalayarak veya bir <code>jail.local<\/code> dosyas\u0131 olu\u015fturarak de\u011fi\u015fiklikleri bu dosyada yapmakt\u0131r. Fail2Ban, <code><em>.local<\/code> uzant\u0131l\u0131 dosyalar\u0131 <code><\/em>.conf<\/code> dosyalar\u0131ndan sonra y\u00fckler ve <code><em>.local<\/code> dosyalar\u0131ndaki ayarlar, <code><\/em>.conf<\/code> dosyalar\u0131ndaki ayn\u0131 adl\u0131 ayarlar\u0131 ge\u00e7ersiz k\u0131lar. Bu, varsay\u0131lan ayarlar\u0131 g\u00fcvenli bir \u015fekilde \u00f6zelle\u015ftirmenizi sa\u011flar.<\/p>\n<h4><code>jail.local<\/code> Dosyas\u0131n\u0131 Olu\u015fturma<\/h4>\n<p>En iyi uygulama, <code>jail.conf<\/code> dosyas\u0131n\u0131 <code>jail.local<\/code> olarak kopyalayarak ba\u015flamakt\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo cp \/etc\/fail2ban\/jail.conf \/etc\/fail2ban\/jail.local<\/code><\/pre>\n<p>Bu komut, <code>jail.conf<\/code> dosyas\u0131n\u0131n t\u00fcm i\u00e7eri\u011fini <code>jail.local<\/code> dosyas\u0131na kopyalar. Art\u0131k t\u00fcm de\u011fi\u015fikliklerinizi <code>jail.local<\/code> dosyas\u0131 i\u00e7inde yapabilirsiniz. Bu, varsay\u0131lan ayarlar\u0131 korurken kendi \u00f6zelle\u015ftirmelerinizi yapman\u0131z\u0131 sa\u011flar.<\/p>\n<p>E\u011fer sadece belirli bir jail&#8217;i (\u00f6rne\u011fin <code>sshd<\/code>) yap\u0131land\u0131rmak istiyorsan\u0131z, <code>jail.local<\/code> dosyan\u0131zda sadece o jail&#8217;e ait b\u00f6l\u00fcm\u00fc tutabilir veya sadece de\u011fi\u015ftirmek istedi\u011finiz parametreleri ekleyebilirsiniz. Fail2Ban, <code>jail.local<\/code> dosyas\u0131nda bulunmayan ayarlar i\u00e7in <code>jail.conf<\/code> dosyas\u0131ndaki varsay\u0131lan de\u011ferleri kullanmaya devam edecektir.<\/p>\n<p>\u00d6rne\u011fin, <code>jail.local<\/code> dosyas\u0131n\u0131 a\u00e7\u0131p sadece genel ayarlar\u0131 ve <code>[sshd]<\/code> jail&#8217;ini de\u011fi\u015ftirmek i\u00e7in kullanabilirsiniz. Bu yakla\u015f\u0131m, yap\u0131land\u0131rma dosyan\u0131z\u0131 daha temiz ve y\u00f6netilebilir hale getirir.<\/p>\n<h3>SSH Korumas\u0131 i\u00e7in Temel Yap\u0131land\u0131rma<\/h3>\n<p><code>jail.local<\/code> dosyam\u0131z\u0131 olu\u015fturduktan sonra, SSH hizmetini korumak i\u00e7in gerekli temel yap\u0131land\u0131rmalar\u0131 yapabiliriz. Bu ad\u0131mlar, Fail2Ban&#8217;\u0131n SSH kaba kuvvet sald\u0131r\u0131lar\u0131n\u0131 alg\u0131lamas\u0131n\u0131 ve engellemesini sa\u011flayacakt\u0131r.<\/p>\n<p>\u0130lk olarak, <code>jail.local<\/code> dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n. <code>nano<\/code> veya <code>vim<\/code> kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/fail2ban\/jail.local<\/code><\/pre>\n<p>Dosyay\u0131 a\u00e7t\u0131ktan sonra, genel yap\u0131land\u0131rma ayarlar\u0131n\u0131 ve \u00f6zellikle <code>[sshd]<\/code> b\u00f6l\u00fcm\u00fcn\u00fc bulman\u0131z gerekecek.<\/p>\n<h4>Genel Ayarlar<\/h4>\n<p>Dosyan\u0131n ba\u015f\u0131nda, t\u00fcm jail&#8217;ler i\u00e7in ge\u00e7erli olacak genel ayarlar bulunur. Bunlar genellikle <code>[DEFAULT]<\/code> b\u00f6l\u00fcm\u00fcnde tan\u0131mlan\u0131r:<\/p>\n<p>*   <strong><code>bantime<\/code><\/strong>: Bir IP adresinin yasakl\u0131 kalaca\u011f\u0131 s\u00fcre saniye cinsinden. Varsay\u0131lan genellikle 10 dakika (600 saniye) veya daha fazlad\u0131r. \u00d6rne\u011fin, 1 saat i\u00e7in 3600.<br \/>\n*   <strong><code>findtime<\/code><\/strong>: Belirtilen say\u0131da ba\u015far\u0131s\u0131z denemenin ger\u00e7ekle\u015fmesi i\u00e7in g\u00f6z \u00f6n\u00fcnde bulundurulacak zaman aral\u0131\u011f\u0131 saniye cinsinden. Varsay\u0131lan genellikle 10 dakika (600 saniye) veya daha azd\u0131r.<br \/>\n*   <strong><code>maxretry<\/code><\/strong>: Bir IP adresinin yasaklanmadan \u00f6nce izin verilen ba\u015far\u0131s\u0131z deneme say\u0131s\u0131. Varsay\u0131lan genellikle 5&#8217;tir.<\/p>\n<p>\u00d6rnek genel ayarlar:<\/p>\n<pre><code class=\"language-ini\">[DEFAULT]\n<h2>Varsay\u0131lan yasaklama s\u00fcresi (saniye cinsinden). \u00d6rne\u011fin 1 saat.<\/h2>\nbantime = 3600\n<h2>Belirtilen say\u0131da denemenin ger\u00e7ekle\u015fmesi i\u00e7in zaman aral\u0131\u011f\u0131 (saniye cinsinden). \u00d6rne\u011fin 10 dakika.<\/h2>\nfindtime = 600\n<h2>Yasaklanmadan \u00f6nce izin verilen maksimum ba\u015far\u0131s\u0131z deneme say\u0131s\u0131.<\/h2>\nmaxretry = 5\n<h2>ignoreip = 127.0.0.1\/8 ::1<\/code><\/pre>\n<\/h2>\n<p>Bu ayarlar, varsay\u0131lan olarak t\u00fcm jail&#8217;ler i\u00e7in ge\u00e7erli olacakt\u0131r. E\u011fer SSH i\u00e7in farkl\u0131 ayarlar isterseniz, bunlar\u0131 <code>[sshd]<\/code> b\u00f6l\u00fcm\u00fcnde ge\u00e7ersiz k\u0131labilirsiniz.<\/p>\n<h4><code>[sshd]<\/code> Jail&#8217;ini Etkinle\u015ftirme<\/h4>\n<p><code>jail.local<\/code> dosyas\u0131nda a\u015fa\u011f\u0131 kayd\u0131rarak <code>[sshd]<\/code> b\u00f6l\u00fcm\u00fcn\u00fc bulun. Bu b\u00f6l\u00fcm genellikle a\u015fa\u011f\u0131daki gibi g\u00f6r\u00fcn\u00fcr:<\/p>\n<pre><code class=\"language-ini\">[sshd]\nenabled = true\nport = ssh\nfilter = sshd\nlogpath = \/var\/log\/auth.log\nmaxretry = 5\nbantime = 3600<\/code><\/pre>\n<p>Bu b\u00f6l\u00fcmde dikkat etmeniz gereken ana ayarlar \u015funlard\u0131r:<\/p>\n<p>*   <strong><code>enabled = true<\/code><\/strong>: Bu sat\u0131r, SSH jail&#8217;ini etkinle\u015ftirir. Varsay\u0131lan olarak <code>false<\/code> olabilir, bu y\u00fczden <code>true<\/code> olarak de\u011fi\u015ftirdi\u011finizden emin olun.<br \/>\n*   <strong><code>port = ssh<\/code><\/strong>: SSH hizmetinin kulland\u0131\u011f\u0131 portu belirtir. Varsay\u0131lan SSH portu 22&#8217;dir. E\u011fer SSH portunuzu de\u011fi\u015ftirdiyseniz (\u00f6rne\u011fin 2222), bu de\u011feri <code>port = 2222<\/code> olarak g\u00fcncellemeyi unutmay\u0131n. <code>ssh<\/code> anahtar kelimesi, <code>\/etc\/services<\/code> dosyas\u0131ndan 22 numaral\u0131 portu otomatik olarak al\u0131r.<br \/>\n*   <strong><code>filter = sshd<\/code><\/strong>: Bu, Fail2Ban&#8217;\u0131n SSH loglar\u0131n\u0131 analiz etmek i\u00e7in kullanaca\u011f\u0131 filtredir. <code>sshd<\/code> filtresi, <code>\/etc\/fail2ban\/filter.d\/sshd.conf<\/code> dosyas\u0131nda tan\u0131mlanm\u0131\u015ft\u0131r ve SSH ba\u015far\u0131s\u0131z giri\u015f denemelerini tan\u0131mak i\u00e7in d\u00fczenli ifadeler i\u00e7erir.<br \/>\n*   <strong><code>logpath = \/var\/log\/auth.log<\/code><\/strong>: SSH loglar\u0131n\u0131n bulundu\u011fu dosyan\u0131n yolunu belirtir. Ubuntu sistemlerinde SSH loglar\u0131 genellikle <code>\/var\/log\/auth.log<\/code> dosyas\u0131nda tutulur. E\u011fer sisteminizde farkl\u0131 bir log yolu kullan\u0131l\u0131yorsa, bu de\u011feri g\u00fcncelleyin.<br \/>\n*   <strong><code>maxretry<\/code><\/strong>: Bu jail i\u00e7in \u00f6zel olarak ayarlanm\u0131\u015f ba\u015far\u0131s\u0131z deneme say\u0131s\u0131. E\u011fer genel ayardan farkl\u0131 bir de\u011fer istiyorsan\u0131z burada belirtebilirsiniz.<br \/>\n*   <strong><code>bantime<\/code><\/strong>: Bu jail i\u00e7in \u00f6zel olarak ayarlanm\u0131\u015f yasaklama s\u00fcresi. E\u011fer genel ayardan farkl\u0131 bir de\u011fer istiyorsan\u0131z burada belirtebilirsiniz.<\/p>\n<p>Yukar\u0131daki \u00f6rnek ayarlar, bir IP adresinin 10 dakika i\u00e7inde 5 kez ba\u015far\u0131s\u0131z SSH denemesi yapmas\u0131 durumunda 1 saat boyunca yasaklanmas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<p>De\u011fi\u015fiklikleri kaydetmek i\u00e7in <code>nano<\/code> kullan\u0131yorsan\u0131z <code>Ctrl+O<\/code>, Enter ve ard\u0131ndan <code>Ctrl+X<\/code> tu\u015flar\u0131na bas\u0131n.<\/p>\n<h4>Fail2Ban Servisini Yeniden Ba\u015flatma<\/h4>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in Fail2Ban servisini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo service fail2ban restart<\/code><\/pre>\n<p>Servis yeniden ba\u015flat\u0131ld\u0131ktan sonra, Fail2Ban SSH loglar\u0131n\u0131 izlemeye ba\u015flayacak ve k\u00f6t\u00fc niyetli denemeleri engellemek i\u00e7in yap\u0131land\u0131r\u0131lm\u0131\u015f kurallar\u0131 uygulayacakt\u0131r.<\/p>\n<h3>Fail2Ban Servisinin Y\u00f6netimi<\/h3>\n<p>Fail2Ban servisini y\u00f6netmek, sistem y\u00f6neticileri i\u00e7in temel bir beceridir. Servisin durumunu kontrol etmek, durdurmak, ba\u015flatmak, yeniden ba\u015flatmak veya belirli IP adreslerinin yasaklar\u0131n\u0131 kald\u0131rmak gibi i\u015flemler s\u0131k\u00e7a gerekebilir.<\/p>\n<h4>Servis Durumunu Kontrol Etme<\/h4>\n<p>Fail2Ban servisinin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 ve genel durumunu kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo service fail2ban status<\/code><\/pre>\n<p>Bu komut, servisin aktif olup olmad\u0131\u011f\u0131n\u0131 ve son \u00e7\u0131kt\u0131s\u0131n\u0131 g\u00f6sterecektir.<\/p>\n<h4>Servisi Ba\u015flatma, Durdurma ve Yeniden Ba\u015flatma<\/h4>\n<p>*   <strong>Ba\u015flatma:<\/strong> E\u011fer Fail2Ban servisi \u00e7al\u0131\u015fm\u0131yorsa veya manuel olarak durdurulduysa, a\u015fa\u011f\u0131daki komutla ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo service fail2ban start<\/code><\/pre>\n<p>*   <strong>Durdurma:<\/strong> Fail2Ban&#8217;\u0131 ge\u00e7ici olarak durdurmak isterseniz:<\/p>\n<pre><code class=\"language-bash\">sudo service fail2ban stop<\/code><\/pre>\n<p>*   <strong>Yeniden Ba\u015flatma:<\/strong> Yap\u0131land\u0131rma dosyalar\u0131nda de\u011fi\u015fiklik yapt\u0131ktan sonra bu de\u011fi\u015fikliklerin uygulanmas\u0131 i\u00e7in servisi yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo service fail2ban restart<\/code><\/pre>\n<h4>Fail2Ban \u0130stemcisi ile Y\u00f6netim<\/h4>\n<p><code>fail2ban-client<\/code> komutu, Fail2Ban&#8217;\u0131n durumunu daha ayr\u0131nt\u0131l\u0131 bir \u015fekilde sorgulamak ve y\u00f6netim i\u015flemleri yapmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>*   <strong>T\u00fcm Jail&#8217;lerin Durumunu G\u00f6r\u00fcnt\u00fcleme:<\/strong> Hangi jail&#8217;lerin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve ka\u00e7 IP adresinin yasakland\u0131\u011f\u0131n\u0131 g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client status<\/code><\/pre>\n<p>    Bu komutun \u00e7\u0131kt\u0131s\u0131, etkin jail&#8217;lerin listesini ve her bir jail&#8217;in toplam yasaklama say\u0131s\u0131n\u0131 g\u00f6sterecektir.<\/p>\n<p>*   <strong>Belirli Bir Jail&#8217;in Durumunu G\u00f6r\u00fcnt\u00fcleme:<\/strong> \u00d6rne\u011fin, <code>sshd<\/code> jail&#8217;inin durumunu ve hangi IP adreslerinin yasakland\u0131\u011f\u0131n\u0131 g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client status sshd<\/code><\/pre>\n<p>    Bu komut, <code>sshd<\/code> jail&#8217;i taraf\u0131ndan yasaklanm\u0131\u015f IP adreslerinin bir listesini g\u00f6sterecektir.<\/p>\n<p>*   <strong>Bir IP Adresinin Yasa\u011f\u0131n\u0131 Kald\u0131rma (Unban):<\/strong> Yanl\u0131\u015fl\u0131kla kendinizi veya g\u00fcvenilir bir IP adresini yasaklad\u0131ysan\u0131z, yasa\u011f\u0131 kald\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client set sshd unbanip IP_ADRES\u0130<\/code><\/pre>\n<p>    <code>IP_ADRES\u0130<\/code> yerine yasaklamas\u0131n\u0131 kald\u0131rmak istedi\u011finiz IP adresini yaz\u0131n. \u00d6rne\u011fin: <code>sudo fail2ban-client set sshd unbanip 192.168.1.100<\/code>.<\/p>\n<p>*   <strong>Bir IP Adresini Manuel Olarak Yasaklama (Ban):<\/strong> Gerekirse, belirli bir IP adresini manuel olarak yasaklayabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client set sshd banip IP_ADRES\u0130<\/code><\/pre>\n<p>Bu y\u00f6netim komutlar\u0131, Fail2Ban&#8217;\u0131n sunucunuzdaki etkinli\u011fini izlemenize ve gerekti\u011finde m\u00fcdahale etmenize olanak tan\u0131r.<\/p>\n<h3>Geli\u015fmi\u015f Fail2Ban Yap\u0131land\u0131rmalar\u0131<\/h3>\n<p>Fail2Ban&#8217;\u0131n temel kurulumu SSH&#8217;\u0131 korumak i\u00e7in yeterli olsa da, g\u00fcvenlik duru\u015funuzu daha da g\u00fc\u00e7lendirmek ve \u00f6zel ihtiya\u00e7lar\u0131n\u0131za g\u00f6re ayarlamalar yapmak i\u00e7in geli\u015fmi\u015f yap\u0131land\u0131rma se\u00e7eneklerini kullanabilirsiniz.<\/p>\n<h4>Yasaklama S\u00fcresi (<code>bantime<\/code>) ve Yeniden Deneme Say\u0131s\u0131 (<code>maxretry<\/code>)<\/h4>\n<p>Bu parametreler, Fail2Ban&#8217;\u0131n agresifli\u011fini do\u011frudan etkiler.<\/p>\n<p>*   <strong><code>bantime<\/code> (Yasaklama S\u00fcresi):<\/strong> Bir IP adresinin ne kadar s\u00fcreyle yasakl\u0131 kalaca\u011f\u0131n\u0131 belirler (saniye cinsinden).<br \/>\n    *   <code>bantime = 600<\/code> (10 dakika) varsay\u0131lan bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r.<br \/>\n    *   Daha ciddi sald\u0131r\u0131lar i\u00e7in s\u00fcreyi art\u0131rabilirsiniz, \u00f6rne\u011fin <code>bantime = 3600<\/code> (1 saat) veya <code>bantime = 86400<\/code> (1 g\u00fcn).<br \/>\n    *   Kal\u0131c\u0131 yasaklama i\u00e7in <code>bantime = -1<\/code> olarak ayarlayabilirsiniz. Ancak, kal\u0131c\u0131 yasaklamalar\u0131 dikkatli kullan\u0131n, \u00e7\u00fcnk\u00fc yanl\u0131\u015fl\u0131kla bir IP adresini kal\u0131c\u0131 olarak yasaklamak sorunlara yol a\u00e7abilir.<br \/>\n*   <strong><code>findtime<\/code> (Bulma S\u00fcresi):<\/strong> Belirtilen say\u0131da ba\u015far\u0131s\u0131z denemenin bu s\u00fcre i\u00e7inde ger\u00e7ekle\u015fmesi gerekir.<br \/>\n    *   <code>findtime = 600<\/code> (10 dakika) varsay\u0131lan bir de\u011ferdir.<br \/>\n    *   Bu s\u00fcreyi k\u0131saltmak (\u00f6rne\u011fin 300 saniye), daha h\u0131zl\u0131 tepki vermeyi sa\u011flar ancak yanl\u0131\u015f pozitifleri art\u0131rabilir.<br \/>\n*   <strong><code>maxretry<\/code> (Maksimum Yeniden Deneme):<\/strong> Bir IP adresinin yasaklanmadan \u00f6nce ka\u00e7 kez ba\u015far\u0131s\u0131z deneme yapabilece\u011fini belirler.<br \/>\n    *   <code>maxretry = 5<\/code> varsay\u0131lan bir de\u011ferdir.<br \/>\n    *   Daha agresif bir koruma i\u00e7in bu de\u011feri d\u00fc\u015f\u00fcrebilirsiniz (\u00f6rne\u011fin <code>maxretry = 3<\/code>). Ancak, bu da yanl\u0131\u015f pozitif olas\u0131l\u0131\u011f\u0131n\u0131 art\u0131rabilir.<\/p>\n<p>Bu \u00fc\u00e7 parametre aras\u0131ndaki dengeyi iyi ayarlamak \u00f6nemlidir. \u00c7ok agresif ayarlar me\u015fru kullan\u0131c\u0131lar\u0131 engelleyebilirken, \u00e7ok gev\u015fek ayarlar sald\u0131rganlara daha fazla f\u0131rsat tan\u0131r.<\/p>\n<p>\u00d6rnek olarak, <code>jail.local<\/code> dosyan\u0131zda <code>[DEFAULT]<\/code> b\u00f6l\u00fcm\u00fcnde veya <code>[sshd]<\/code> b\u00f6l\u00fcm\u00fcnde bu de\u011ferleri ayarlayabilirsiniz:<\/p>\n<pre><code class=\"language-ini\">[DEFAULT]\nbantime = 3600\nfindtime = 600\nmaxretry = 3\n\n[sshd]\n<h2>Sadece sshd i\u00e7in farkl\u0131 bir bantime belirtebilirsiniz.<\/h2>\n<h2>bantime = 7200<\/code><\/pre>\n<\/h2>\n<h4>Beyaz Liste (<code>ignoreip<\/code>)<\/h4>\n<p>G\u00fcvenilir IP adreslerinin (\u00f6rne\u011fin kendi ofisinizin IP adresi, VPN sunucunuzun IP adresi) yanl\u0131\u015fl\u0131kla yasaklanmas\u0131n\u0131 \u00f6nlemek i\u00e7in bir beyaz liste olu\u015fturabilirsiniz. Bu IP adresleri, Fail2Ban taraf\u0131ndan hi\u00e7bir zaman yasaklanmayacakt\u0131r.<\/p>\n<p><code>jail.local<\/code> dosyan\u0131zdaki <code>[DEFAULT]<\/code> b\u00f6l\u00fcm\u00fcnde <code>ignoreip<\/code> parametresini bulun veya ekleyin:<\/p>\n<pre><code class=\"language-ini\">[DEFAULT]\n<h2>Beyaz listeye al\u0131nacak IP adresleri veya IP aral\u0131klar\u0131. Birden fazla IP adresi bo\u015flukla ayr\u0131l\u0131r.<\/h2>\nignoreip = 127.0.0.1\/8 ::1 192.168.1.0\/24 203.0.113.42<\/code><\/pre>\n<p>*   <code>127.0.0.1\/8<\/code> ve <code>::1<\/code> yerel ana bilgisayar\u0131 temsil eder. Bunlar\u0131 genellikle beyaz listede tutmal\u0131s\u0131n\u0131z.<br \/>\n*   <code>192.168.1.0\/24<\/code> gibi CIDR notasyonunu kullanarak t\u00fcm bir IP aral\u0131\u011f\u0131n\u0131 beyaz listeye alabilirsiniz.<br \/>\n*   <code>203.0.113.42<\/code> gibi belirli bir IP adresini de ekleyebilirsiniz.<\/p>\n<p><code>ignoreip<\/code> ayar\u0131n\u0131 <code>[DEFAULT]<\/code> b\u00f6l\u00fcm\u00fcne ekledi\u011finizde, bu ayar t\u00fcm jail&#8217;ler i\u00e7in ge\u00e7erli olacakt\u0131r. E\u011fer sadece belirli bir jail i\u00e7in beyaz liste olu\u015fturmak isterseniz, ilgili jail&#8217;in b\u00f6l\u00fcm\u00fcne ekleyebilirsiniz.<\/p>\n<h4>E-posta Bildirimleri<\/h4>\n<p>Fail2Ban, bir IP adresi yasakland\u0131\u011f\u0131nda size e-posta bildirimleri g\u00f6nderecek \u015fekilde yap\u0131land\u0131r\u0131labilir. Bu, sunucunuzdaki g\u00fcvenlik olaylar\u0131ndan haberdar olman\u0131z\u0131 sa\u011flar.<\/p>\n<p>E-posta bildirimlerini etkinle\u015ftirmek i\u00e7in <code>jail.local<\/code> dosyas\u0131ndaki <code>[DEFAULT]<\/code> b\u00f6l\u00fcm\u00fcnde veya ilgili jail b\u00f6l\u00fcm\u00fcnde a\u015fa\u011f\u0131daki parametreleri ayarlay\u0131n:<\/p>\n<pre><code class=\"language-ini\">[DEFAULT]\n<h2>Kime e-posta g\u00f6nderilece\u011fi<\/h2>\ndestemail = sizin_eposta_adresiniz@example.com\n<h2>Kimden e-posta g\u00f6nderilece\u011fi<\/h2>\nsendername = Fail2Ban\n<h2>E-posta g\u00f6ndermek i\u00e7in kullan\u0131lacak MTA (Mail Transfer Agent)<\/h2>\nmta = sendmail # veya postfix, ssmtp vb.\n\n<h2>Eylem: IP'yi yasakla ve bana e-posta g\u00f6nder.<\/h2>\n<h2>action = %(action_mw)s<\/h2>\n<h2>Veya daha fazla bilgi i\u00e7eren bir e-posta i\u00e7in:<\/h2>\naction = %(action_mwl)s<\/code><\/pre>\n<p>*   <strong><code>destemail<\/code><\/strong>: Bildirimlerin g\u00f6nderilece\u011fi e-posta adresi.<br \/>\n*   <strong><code>sendername<\/code><\/strong>: G\u00f6nderen ad\u0131.<br \/>\n*   <strong><code>mta<\/code><\/strong>: E-posta g\u00f6ndermek i\u00e7in sunucunuzda kurulu olan posta g\u00f6nderme arac\u0131s\u0131 (\u00f6rne\u011fin <code>sendmail<\/code>, <code>postfix<\/code>, <code>ssmtp<\/code>). Sunucunuzda bir MTA&#8217;n\u0131n kurulu ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekir.<br \/>\n*   <strong><code>action<\/code><\/strong>: Bu parametre, bir IP adresi yasakland\u0131\u011f\u0131nda hangi eylemin ger\u00e7ekle\u015ftirilece\u011fini belirler.<br \/>\n    *   <code>%(action_)s<\/code>: Sadece IP&#8217;yi yasaklar.<br \/>\n    *   <code>%(action_mw)s<\/code>: IP&#8217;yi yasaklar ve yasaklama hakk\u0131nda bir e-posta g\u00f6nderir.<br \/>\n    *   <code>%(action_mwl)s<\/code>: IP&#8217;yi yasaklar ve yasaklama ile ilgili log sat\u0131rlar\u0131n\u0131 i\u00e7eren bir e-posta g\u00f6nderir. Bu, genellikle daha bilgilendiricidir.<\/p>\n<p>Bu ayarlar\u0131 yapt\u0131ktan sonra Fail2Ban servisini yeniden ba\u015flatmay\u0131 unutmay\u0131n.<\/p>\n<h4>\u00d6zel Log Dosyalar\u0131<\/h4>\n<p>E\u011fer SSH loglar\u0131n\u0131z <code>\/var\/log\/auth.log<\/code> d\u0131\u015f\u0131nda bir yolda bulunuyorsa (ki Ubuntu 14.04 i\u00e7in varsay\u0131lan budur, ancak \u00f6zel durumlarda de\u011fi\u015febilir), <code>logpath<\/code> parametresini g\u00fcncelleyebilirsiniz:<\/p>\n<pre><code class=\"language-ini\">[sshd]\nenabled = true\nport = ssh\nfilter = sshd\nlogpath = \/path\/to\/your\/custom\/auth.log\nmaxretry = 5\nbantime = 3600<\/code><\/pre>\n<p>Bu geli\u015fmi\u015f yap\u0131land\u0131rmalar, Fail2Ban&#8217;\u0131n g\u00fcc\u00fcn\u00fc tam olarak kullanman\u0131z\u0131 ve sunucunuzun g\u00fcvenli\u011fini \u00f6zel ihtiya\u00e7lar\u0131n\u0131za g\u00f6re \u00f6zelle\u015ftirmenizi sa\u011flar. Her de\u011fi\u015fiklikten sonra Fail2Ban servisini yeniden ba\u015flatmay\u0131 unutmay\u0131n.<\/p>\n<h3>Fail2Ban&#8217;\u0131n \u00c7al\u0131\u015fmas\u0131n\u0131 Test Etme<\/h3>\n<p>Fail2Ban&#8217;\u0131 yap\u0131land\u0131rd\u0131ktan sonra, d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 test etmek \u00f6nemlidir. Bu, ayarlar\u0131n\u0131z\u0131n do\u011fru oldu\u011funu ve sunucunuzun kaba kuvvet sald\u0131r\u0131lar\u0131na kar\u015f\u0131 korundu\u011funu do\u011frular.<\/p>\n<p><strong>Uyar\u0131:<\/strong> Bu testleri yaparken, kendinizi yanl\u0131\u015fl\u0131kla sunucunuzdan yasaklamamaya dikkat edin. <code>ignoreip<\/code> ayar\u0131n\u0131 do\u011fru yapt\u0131\u011f\u0131n\u0131zdan veya farkl\u0131 bir IP adresinden test etti\u011finizden emin olun.<\/p>\n<h4>Test Ad\u0131mlar\u0131:<\/h4>\n<p>1.  <strong>Ba\u015fka Bir Makineden SSH Denemesi Yap\u0131n:<\/strong><br \/>\n    Sunucunuzdan farkl\u0131 bir bilgisayardan (veya bir sanal makineden) SSH ba\u011flant\u0131s\u0131 kurmaya \u00e7al\u0131\u015f\u0131n. Bilerek yanl\u0131\u015f kullan\u0131c\u0131 ad\u0131 veya \u015fifre girerek ba\u015far\u0131s\u0131z denemeler yap\u0131n. <code>maxretry<\/code> de\u011ferinize ula\u015fana kadar bu i\u015flemi tekrarlay\u0131n. \u00d6rne\u011fin, <code>maxretry = 3<\/code> ise 3 veya daha fazla yanl\u0131\u015f deneme yap\u0131n.<\/p>\n<pre><code class=\"language-bash\">ssh kullan\u0131c\u0131_ad\u0131@sunucu_ip_adresi<\/code><\/pre>\n<p>    Her denemede yanl\u0131\u015f bir \u015fifre girin.<\/p>\n<p>2.  <strong>Fail2Ban Durumunu Kontrol Edin:<\/strong><br \/>\n    Yanl\u0131\u015f denemeleri yapt\u0131ktan sonra, sunucunuza (e\u011fer yasaklanmad\u0131ysan\u0131z veya beyaz listedeyseniz) veya ba\u015fka bir SSH oturumundan ba\u011flanarak Fail2Ban&#8217;\u0131n durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client status sshd<\/code><\/pre>\n<p>    Bu komutun \u00e7\u0131kt\u0131s\u0131nda, test etti\u011finiz IP adresinin <code>Currently banned: 1<\/code> veya daha fazla bir say\u0131 alt\u0131nda listelendi\u011fini g\u00f6rmelisiniz.<\/p>\n<p>    \u00d6rnek \u00e7\u0131kt\u0131:<\/p>\n<pre><code class=\"language-\">Status for jail sshd:\n    |- filter\n    |  |- currently failed : 5\n    |  |- total failed   : 15\n    |  <code>- file list    : \/var\/log\/auth.log\n    <\/code>- actions\n       |- currently banned : 1\n       |- total banned   : 1\n       <code>- banned IP list : 203.0.113.100<\/code><\/pre>\n<p>    Burada <\/code>203.0.113.100<code> test etti\u011finiz IP adresi olmal\u0131d\u0131r.<\/p>\n<p>3.  <strong><\/code>iptables<code> Kurallar\u0131n\u0131 Kontrol Edin:<\/strong><br \/>\n    Fail2Ban, yasaklama i\u015flemleri i\u00e7in <\/code>iptables<code> g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 kullan\u0131r. Yasaklanan IP adresinin <\/code>iptables<code> kurallar\u0131na eklenip eklenmedi\u011fini kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo iptables -L -n<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da, <\/code>fail2ban-SSH<code> (veya kulland\u0131\u011f\u0131n\u0131z jail ad\u0131na g\u00f6re) zincirinde test etti\u011finiz IP adresinin engellendi\u011fini g\u00f6steren bir kural g\u00f6rmelisiniz.<\/p>\n<p>    \u00d6rnek \u00e7\u0131kt\u0131 (ilgili b\u00f6l\u00fcm):<\/p>\n<pre><code class=\"language-\">Chain fail2ban-SSH (1 references)\n    target     prot opt source               destination\n    DROP       all  --  203.0.113.100        0.0.0.0\/0\n    RETURN     all  --  0.0.0.0\/0            0.0.0.0\/0<\/code><\/pre>\n<p>4.  <strong>Fail2Ban Loglar\u0131n\u0131 Kontrol Edin:<\/strong><br \/>\n    Fail2Ban'\u0131n kendi log dosyas\u0131 olan <\/code>\/var\/log\/fail2ban.log<code> dosyas\u0131n\u0131 kontrol ederek yasaklama olaylar\u0131n\u0131 g\u00f6rebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/fail2ban.log<\/code><\/pre>\n<p>    Bu komutun \u00e7\u0131kt\u0131s\u0131nda, Fail2Ban'\u0131n test etti\u011finiz IP adresini nas\u0131l alg\u0131lad\u0131\u011f\u0131n\u0131 ve yasaklad\u0131\u011f\u0131n\u0131 g\u00f6steren sat\u0131rlar\u0131 g\u00f6rmelisiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-\">... fail2ban.actions: WARNING [sshd] Ban 203.0.113.100<\/code><\/pre>\n<p>5.  <strong>Yasaklanan IP Adresinden Tekrar Ba\u011flanmay\u0131 Deneyin:<\/strong><br \/>\n    Test etti\u011finiz IP adresinden tekrar SSH ba\u011flant\u0131s\u0131 kurmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zda, ba\u011flant\u0131n\u0131n reddedildi\u011fini veya zaman a\u015f\u0131m\u0131na u\u011frad\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<pre><code class=\"language-bash\">ssh kullan\u0131c\u0131_ad\u0131@sunucu_ip_adresi<\/code><\/pre>\n<p>    Bu, Fail2Ban'\u0131n ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve sald\u0131rgan IP adreslerini engelledi\u011fini g\u00f6sterir.<\/p>\n<p>6.  <strong>Yasa\u011f\u0131 Kald\u0131r\u0131n (Opsiyonel):<\/strong><br \/>\n    Testiniz bittikten sonra, yasaklanan IP adresinin yasa\u011f\u0131n\u0131 kald\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client set sshd unbanip TEST_IP_ADRES\u0130<\/code><\/pre>\n<p>Bu test ad\u0131mlar\u0131, Fail2Ban kurulumunuzun ve yap\u0131land\u0131rman\u0131z\u0131n beklendi\u011fi gibi \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olman\u0131z\u0131 sa\u011flar.<\/p>\n<h3>Fail2Ban ile SSH G\u00fcvenli\u011fini Art\u0131rma \u0130pu\u00e7lar\u0131<\/h3>\n<p>Fail2Ban, SSH g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131ran harika bir ara\u00e7t\u0131r, ancak tek ba\u015f\u0131na yeterli de\u011fildir. SSH g\u00fcvenli\u011finizi maksimum d\u00fczeye \u00e7\u0131karmak i\u00e7in Fail2Ban'\u0131 di\u011fer g\u00fcvenlik en iyi uygulamalar\u0131yla birlikte kullanmal\u0131s\u0131n\u0131z.<\/p>\n<p>1.  <strong>Varsay\u0131lan SSH Portunu De\u011fi\u015ftirin:<\/strong><br \/>\n    SSH'\u0131n varsay\u0131lan 22 numaral\u0131 portu, kaba kuvvet sald\u0131rganlar\u0131 taraf\u0131ndan en \u00e7ok hedeflenen porttur. Portu daha y\u00fcksek, standart d\u0131\u015f\u0131 bir numaraya (\u00f6rne\u011fin 2222 veya 50000'lerin \u00fczeri) de\u011fi\u015ftirmek, otomatik bot taramalar\u0131n\u0131n \u00e7o\u011fundan ka\u00e7\u0131nman\u0131za yard\u0131mc\u0131 olur. Bu, sald\u0131r\u0131 hacmini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<br \/>\n    *   <\/code>\/etc\/ssh\/sshd_config<code> dosyas\u0131n\u0131 d\u00fczenleyin: <\/code>Port 22<code> sat\u0131r\u0131n\u0131 <\/code>Port YEN\u0130_PORT_NUMARASI<code> olarak de\u011fi\u015ftirin.<br \/>\n    *   <\/code>sudo service ssh restart<code> komutuyla SSH servisini yeniden ba\u015flat\u0131n.<br \/>\n    *   Fail2Ban <\/code>jail.local<code> dosyas\u0131ndaki <\/code>port = ssh<code> ayar\u0131n\u0131 <\/code>port = YEN\u0130_PORT_NUMARASI<code> olarak g\u00fcncellemeyi unutmay\u0131n.<\/p>\n<p>2.  <strong>\u015eifre Yerine Anahtar Tabanl\u0131 Kimlik Do\u011frulama Kullan\u0131n:<\/strong><br \/>\n    Parola tabanl\u0131 kimlik do\u011frulama, kaba kuvvet sald\u0131r\u0131lar\u0131na kar\u015f\u0131 her zaman savunmas\u0131zd\u0131r. SSH anahtar \u00e7iftleri (genel ve \u00f6zel anahtar), \u015fifrelerden \u00e7ok daha g\u00fcvenlidir. \u00d6zel anahtar\u0131n\u0131z\u0131 asla kimseyle payla\u015fmay\u0131n ve onu bir parola ile koruyun.<br \/>\n    *   SSH anahtar \u00e7ifti olu\u015fturun: <\/code>ssh-keygen<code>.<br \/>\n    *   Genel anahtar\u0131n\u0131z\u0131 sunucuya kopyalay\u0131n: <\/code>ssh-copy-id kullan\u0131c\u0131@sunucu_ip_adresi<code>.<br \/>\n    *   Sunucunuzdaki <\/code>\/etc\/ssh\/sshd_config<code> dosyas\u0131nda <\/code>PasswordAuthentication no<code> olarak ayarlayarak \u015fifre tabanl\u0131 kimlik do\u011frulamay\u0131 tamamen devre d\u0131\u015f\u0131 b\u0131rak\u0131n.<\/p>\n<p>3.  <strong>Root ile SSH Eri\u015fimini Devre D\u0131\u015f\u0131 B\u0131rak\u0131n:<\/strong><br \/>\n    <\/code>root<code> kullan\u0131c\u0131s\u0131, sistemdeki en yetkili kullan\u0131c\u0131d\u0131r ve bu hesab\u0131n g\u00fcvenli\u011fi kritik \u00f6neme sahiptir. <\/code>root<code> kullan\u0131c\u0131s\u0131 ile do\u011frudan SSH eri\u015fimini devre d\u0131\u015f\u0131 b\u0131rakmak, sald\u0131rganlar\u0131n hedefini daralt\u0131r. Bunun yerine, normal bir kullan\u0131c\u0131yla giri\u015f yap\u0131n ve gerekti\u011finde <\/code>sudo<code> komutunu kullanarak y\u00fckseltilmi\u015f ayr\u0131cal\u0131klar elde edin.<br \/>\n    *   <\/code>\/etc\/ssh\/sshd_config<code> dosyas\u0131nda <\/code>PermitRootLogin no<code> olarak ayarlay\u0131n.<\/p>\n<p>4.  <strong>Sadece Belirli Kullan\u0131c\u0131lar i\u00e7in SSH Eri\u015fimi:<\/strong><br \/>\n    Sunucunuza SSH ile ba\u011flanmas\u0131na izin verilen kullan\u0131c\u0131lar\u0131 a\u00e7\u0131k\u00e7a tan\u0131mlayarak g\u00fcvenlik riskini azaltabilirsiniz.<br \/>\n    *   <\/code>\/etc\/ssh\/sshd_config<code> dosyas\u0131nda <\/code>AllowUsers kullan\u0131c\u01311 kullan\u0131c\u01312<code> \u015feklinde bir sat\u0131r ekleyin. Sadece belirtilen kullan\u0131c\u0131lar SSH ile ba\u011flanabilir.<\/p>\n<p>5.  <strong>G\u00fc\u00e7l\u00fc \u015eifre Politikalar\u0131 Uygulay\u0131n:<\/strong><br \/>\n    E\u011fer \u015fifre tabanl\u0131 kimlik do\u011frulamay\u0131 tamamen devre d\u0131\u015f\u0131 b\u0131rakam\u0131yorsan\u0131z, t\u00fcm kullan\u0131c\u0131lar i\u00e7in g\u00fc\u00e7l\u00fc ve karma\u015f\u0131k \u015fifreler kullan\u0131lmas\u0131n\u0131 sa\u011flay\u0131n. \u015eifrelerin d\u00fczenli olarak de\u011fi\u015ftirilmesini te\u015fvik edin.<\/p>\n<p>6.  <strong>SSH Ba\u011flant\u0131lar\u0131n\u0131 S\u0131n\u0131rlay\u0131n:<\/strong><br \/>\n    Baz\u0131 durumlarda, SSH eri\u015fimini sadece belirli IP adresleriyle veya IP aral\u0131klar\u0131yla s\u0131n\u0131rlayabilirsiniz. Bu, g\u00fcvenlik duvar\u0131 (iptables) kurallar\u0131yla veya <\/code>\/etc\/ssh\/sshd_config<code> dosyas\u0131ndaki <\/code>AllowUsers<code> veya <\/code>AllowGroups<code> ile birle\u015ftirilerek yap\u0131labilir.<\/p>\n<p>7.  <strong>Sisteminizi G\u00fcncel Tutun:<\/strong><br \/>\n    Ubuntu 14.04 art\u0131k resmi g\u00fcvenlik g\u00fcncellemeleri almasa da, m\u00fcmk\u00fcnse daha yeni ve desteklenen bir Ubuntu s\u00fcr\u00fcm\u00fcne ge\u00e7meyi d\u00fc\u015f\u00fcnmelisiniz. E\u011fer bu m\u00fcmk\u00fcn de\u011filse, kurulu olan t\u00fcm paketleri g\u00fcncel tutmak ve bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 yamamak i\u00e7in elinizden geleni yap\u0131n.<\/p>\n<p>Bu ipu\u00e7lar\u0131n\u0131 Fail2Ban ile birle\u015ftirerek, SSH hizmetinizin ve dolay\u0131s\u0131yla sunucunuzun genel g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilirsiniz. G\u00fcvenlik, katmanl\u0131 bir yakla\u015f\u0131mla sa\u011flan\u0131r ve her bir katman, sald\u0131rganlar\u0131n sisteme s\u0131zmas\u0131n\u0131 zorla\u015ft\u0131r\u0131r.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Fail2Ban yap\u0131land\u0131rmas\u0131 s\u0131ras\u0131nda veya sonras\u0131nda baz\u0131 yayg\u0131n sorunlarla kar\u015f\u0131la\u015fabilirsiniz. \u0130\u015fte bunlardan baz\u0131lar\u0131 ve olas\u0131 \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>1. Fail2Ban Ba\u015flam\u0131yor veya Yeniden Ba\u015flat\u0131lam\u0131yor<\/h4>\n<p>*   <strong>Sorun:<\/strong> <\/code>sudo service fail2ban restart<code> komutu hata veriyor veya servis ba\u015flam\u0131yor.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <strong>Loglar\u0131 Kontrol Edin:<\/strong> En \u00f6nemli ad\u0131m, Fail2Ban'\u0131n kendi log dosyas\u0131n\u0131 (<\/code>\/var\/log\/fail2ban.log<code>) ve sistem loglar\u0131n\u0131 (<\/code>\/var\/log\/syslog<code> veya <\/code>\/var\/log\/auth.log<code>) kontrol etmektir. Hata mesajlar\u0131 genellikle sorunun k\u00f6kenini g\u00f6sterir.<br \/>\n    *   <strong>Yap\u0131land\u0131rma Dosyas\u0131 S\u00f6zdizimi:<\/strong> <\/code>jail.local<code> veya di\u011fer yap\u0131land\u0131rma dosyalar\u0131n\u0131zda bir s\u00f6zdizimi hatas\u0131 (\u00f6rne\u011fin, yanl\u0131\u015f yaz\u0131lm\u0131\u015f bir parametre ad\u0131, eksik e\u015fittir i\u015fareti) olabilir. \u00d6zellikle son yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri g\u00f6zden ge\u00e7irin.<br \/>\n    *   <strong>\u0130zinler:<\/strong> Log dosyalar\u0131na veya Fail2Ban yap\u0131land\u0131rma dosyalar\u0131na eri\u015fim izinleri sorunlu olabilir. <\/code>ls -l<code> ile izinleri kontrol edin ve gerekirse <\/code>chmod<code> veya <\/code>chown<code> ile d\u00fczeltin.<\/p>\n<h4>2. IP Adresleri Yasaklanm\u0131yor<\/h4>\n<p>*   <strong>Sorun:<\/strong> Kaba kuvvet denemeleri yapman\u0131za ra\u011fmen <\/code>fail2ban-client status sshd<code> komutunda IP adreslerinin yasakland\u0131\u011f\u0131n\u0131 g\u00f6rm\u00fcyorsunuz.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <strong><\/code>enabled = true<code>:<\/strong> \u0130lgili jail'in (\u00f6rne\u011fin <\/code>[sshd]<code>) <\/code>jail.local<code> dosyas\u0131nda <\/code>enabled = true<code> olarak ayarland\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   <strong><\/code>logpath<code> Do\u011fru mu?:<\/strong> <\/code>logpath<code> parametresinin SSH loglar\u0131n\u0131z\u0131n do\u011fru yolunu g\u00f6sterdi\u011finden emin olun (<\/code>\/var\/log\/auth.log<code> \u00e7o\u011fu Ubuntu sisteminde do\u011frudur). Log dosyas\u0131n\u0131n i\u00e7eri\u011fini <\/code>tail -f \/var\/log\/auth.log<code> ile kontrol ederek ba\u015far\u0131s\u0131z giri\u015f denemelerinin bu dosyaya yaz\u0131ld\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   <strong><\/code>filter<code> Do\u011fru mu?:<\/strong> <\/code>filter<code> parametresinin do\u011fru filtreyi g\u00f6sterdi\u011finden emin olun (\u00f6rne\u011fin <\/code>filter = sshd<code>). Filtrenin i\u00e7eri\u011fi (<\/code>\/etc\/fail2ban\/filter.d\/sshd.conf<code>) logdaki hata mesajlar\u0131n\u0131 do\u011fru \u015fekilde e\u015fle\u015ftirebiliyor mu kontrol edin.<br \/>\n    *   <strong><\/code>maxretry<code> ve <\/code>findtime<code>:<\/strong> <\/code>maxretry<code> de\u011ferine ula\u015ft\u0131\u011f\u0131n\u0131zdan ve bu denemelerin <\/code>findtime<code> i\u00e7inde ger\u00e7ekle\u015fti\u011finden emin olun. Belki de \u00e7ok y\u00fcksek bir <\/code>maxretry<code> veya \u00e7ok k\u0131sa bir <\/code>findtime<code> ayarlad\u0131n\u0131z.<br \/>\n    *   <strong><\/code>iptables<code> \u00c7ak\u0131\u015fmalar\u0131:<\/strong> Ba\u015fka bir g\u00fcvenlik duvar\u0131 (\u00f6rne\u011fin <\/code>ufw<code>) kullan\u0131yorsan\u0131z, Fail2Ban'\u0131n <\/code>iptables<code> kurallar\u0131yla \u00e7ak\u0131\u015f\u0131yor olabilir. Fail2Ban, <\/code>iptables<code> kurallar\u0131n\u0131 do\u011frudan y\u00f6netir. UFW kullan\u0131yorsan\u0131z, Fail2Ban'\u0131n UFW'ye entegrasyonu i\u00e7in \u00f6zel ayarlar gerekebilir (ancak Ubuntu 14.04'te bu genellikle sorunsuz \u00e7al\u0131\u015f\u0131r).<\/p>\n<h4>3. Kendimi Yanl\u0131\u015fl\u0131kla Yasaklad\u0131m<\/h4>\n<p>*   <strong>Sorun:<\/strong> Kendi IP adresinizi yanl\u0131\u015fl\u0131kla yasaklad\u0131n\u0131z ve sunucuya eri\u015femiyorsunuz.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <strong><\/code>fail2ban-client unbanip<code>:<\/strong> E\u011fer ba\u015fka bir SSH oturumunuz varsa veya sunucuya farkl\u0131 bir IP adresinden eri\u015febiliyorsan\u0131z, <\/code>sudo fail2ban-client set sshd unbanip S\u0130Z\u0130N_IP_ADRES\u0130N\u0130Z<code> komutunu kullanarak yasa\u011f\u0131 kald\u0131r\u0131n.<br \/>\n    *   <strong>Konsol Eri\u015fimi:<\/strong> E\u011fer tamamen kilitlendiyseniz, sunucunun fiziksel konsoluna veya sanal makine sa\u011flay\u0131c\u0131n\u0131z\u0131n y\u00f6netim aray\u00fcz\u00fcnden konsol eri\u015fimine ihtiyac\u0131n\u0131z olacakt\u0131r. Oradan <\/code>fail2ban-client<code> komutunu \u00e7al\u0131\u015ft\u0131rarak yasa\u011f\u0131 kald\u0131rabilirsiniz.<br \/>\n    *   <strong><\/code>ignoreip<code> Kullan\u0131n:<\/strong> Bu sorunu \u00f6nlemek i\u00e7in, kendi IP adreslerinizi veya g\u00fcvendi\u011finiz a\u011flar\u0131 <\/code>jail.local<code> dosyas\u0131ndaki <\/code>ignoreip<code> parametresine ekleyin.<\/p>\n<h4>4. E-posta Bildirimleri Gelmiyor<\/h4>\n<p>*   <strong>Sorun:<\/strong> E-posta bildirimlerini yap\u0131land\u0131rd\u0131n\u0131z ancak yasaklama olaylar\u0131nda e-posta alm\u0131yorsunuz.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <strong><\/code>destemail<code> ve <\/code>sendername<code>:<\/strong> Bu parametrelerin do\u011fru ayarland\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   <strong><\/code>mta<code> Ayar\u0131:<\/strong> Sunucunuzda yap\u0131land\u0131r\u0131lm\u0131\u015f bir MTA (Mail Transfer Agent) kurulu ve \u00e7al\u0131\u015f\u0131yor olmal\u0131d\u0131r (\u00f6rne\u011fin <\/code>sendmail<code>, <\/code>postfix<code>, <\/code>ssmtp<code>). <\/code>mta<code> parametresinin do\u011fru MTA'y\u0131 g\u00f6sterdi\u011finden emin olun.<br \/>\n    *   <strong>MTA Loglar\u0131:<\/strong> MTA'n\u0131z\u0131n loglar\u0131n\u0131 kontrol edin (\u00f6rne\u011fin <\/code>\/var\/log\/mail.log<code> veya <\/code>\/var\/log\/syslog<code>). E-postan\u0131n g\u00f6nderilmeye \u00e7al\u0131\u015f\u0131l\u0131p \u00e7al\u0131\u015f\u0131lmad\u0131\u011f\u0131n\u0131 ve herhangi bir hata olup olmad\u0131\u011f\u0131n\u0131 g\u00f6sterir.<br \/>\n    *   <strong>Spam Klas\u00f6r\u00fc:<\/strong> E-postalar\u0131n\u0131z\u0131n spam klas\u00f6r\u00fcne d\u00fc\u015f\u00fcp d\u00fc\u015fmedi\u011fini kontrol edin.<br \/>\n    *   <strong><\/code>action<code> Ayar\u0131:<\/strong> <\/code>action<code> parametresinin <\/code>%(action_mw)s<code> veya <\/code>%(action_mwl)s` gibi e-posta g\u00f6nderen bir eylem olarak ayarland\u0131\u011f\u0131ndan emin olun.<\/p>\n<p>Bu sorun giderme ipu\u00e7lar\u0131, Fail2Ban ile kar\u015f\u0131la\u015fabilece\u011finiz \u00e7o\u011fu yayg\u0131n sorunu \u00e7\u00f6zmenize yard\u0131mc\u0131 olacakt\u0131r. Her zaman log dosyalar\u0131n\u0131 kontrol etmekle ba\u015flay\u0131n; bunlar genellikle sorunun nedenine dair en iyi ipu\u00e7lar\u0131n\u0131 verir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ubuntu 14.04 i\u015fletim sistemi \u00fczerinde SSH hizmetinizi Fail2Ban ile nas\u0131l koruyaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceledik. Fail2Ban'\u0131n kurulumundan temel yap\u0131land\u0131rmas\u0131na, geli\u015fmi\u015f ayarlardan servis y\u00f6netimine ve s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlara kadar geni\u015f bir yelpazede bilgi sunduk.<\/p>\n<p>Fail2Ban, sunucular\u0131n\u0131z\u0131 kaba kuvvet sald\u0131r\u0131lar\u0131na kar\u015f\u0131 otomatik olarak koruyan, esnek ve kaynak dostu bir ara\u00e7t\u0131r. SSH, FTP, web sunucular\u0131 gibi bir\u00e7ok hizmet i\u00e7in proaktif bir savunma katman\u0131 sa\u011flayarak sunucunuzun g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. \u00d6zellikle Ubuntu 14.04 gibi art\u0131k g\u00fcvenlik g\u00fcncellemeleri almayan sistemlerde, Fail2Ban gibi ek g\u00fcvenlik katmanlar\u0131 hayati \u00f6neme sahiptir.<\/p>\n<p>Ancak, unutulmamal\u0131d\u0131r ki Fail2Ban tek ba\u015f\u0131na m\u00fckemmel bir g\u00fcvenlik \u00e7\u00f6z\u00fcm\u00fc de\u011fildir. SSH portunu de\u011fi\u015ftirmek, anahtar tabanl\u0131 kimlik do\u011frulamay\u0131 kullanmak, root ile do\u011frudan eri\u015fimi yasaklamak ve g\u00fc\u00e7l\u00fc \u015fifre politikalar\u0131 uygulamak gibi di\u011fer g\u00fcvenlik en iyi uygulamalar\u0131yla birle\u015ftirildi\u011finde, sunucunuzun g\u00fcvenlik duru\u015fu en \u00fcst d\u00fczeye \u00e7\u0131kar\u0131labilir. G\u00fcvenlik, s\u00fcrekli bir s\u00fcre\u00e7tir ve katmanl\u0131 bir yakla\u015f\u0131mla ele al\u0131nmal\u0131d\u0131r.<\/p>\n<p>Bu makaledeki ad\u0131mlar\u0131 takip ederek, Ubuntu 14.04 sunucunuzdaki SSH hizmetini Fail2Ban ile etkin bir \u015fekilde koruyabilir ve k\u00f6t\u00fc niyetli sald\u0131rganlar\u0131n sunucunuza s\u0131zma giri\u015fimlerini \u00f6nemli \u00f6l\u00e7\u00fcde azaltabilirsiniz. Sunucunuzun g\u00fcvenli\u011fini ciddiye almak, verilerinizin ve hizmetlerinizin b\u00fct\u00fcnl\u00fc\u011f\u00fc i\u00e7in kritik \u00f6neme sahiptir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 14.04 \u00dczerinde SSH&#8217;\u0131 Fail2Ban ile Koruma\nSunucular\u0131n g\u00fcvenli\u011fi, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda kritik bir \u00f6neme sahiptir. \u00d6zellikle","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-39230","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ubuntu 14.04 \u00dczerinde SSH&#039;\u0131 Fail2Ban ile Koruma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 14.04 \u00dczerinde SSH&#039;\u0131 Fail2Ban ile Koruma\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 14.04 \u00dczerinde SSH&#039;\u0131 Fail2Ban ile Koruma Sunucular\u0131n g\u00fcvenli\u011fi, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda kritik bir \u00f6neme sahiptir. \u00d6zellikle\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-17T03:40:56+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"27 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 14.04 \u00dczerinde SSH&#8217;\u0131 Fail2Ban ile Koruma\",\"datePublished\":\"2026-02-17T03:40:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/\"},\"wordCount\":3846,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/\",\"name\":\"Ubuntu 14.04 \u00dczerinde SSH'\u0131 Fail2Ban ile Koruma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-17T03:40:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 14.04 \u00dczerinde SSH&#8217;\u0131 Fail2Ban ile Koruma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ubuntu 14.04 \u00dczerinde SSH'\u0131 Fail2Ban ile Koruma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 14.04 \u00dczerinde SSH'\u0131 Fail2Ban ile Koruma","og_description":"Ubuntu 14.04 \u00dczerinde SSH'\u0131 Fail2Ban ile Koruma Sunucular\u0131n g\u00fcvenli\u011fi, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda kritik bir \u00f6neme sahiptir. \u00d6zellikle","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-17T03:40:56+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"27 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 14.04 \u00dczerinde SSH&#8217;\u0131 Fail2Ban ile Koruma","datePublished":"2026-02-17T03:40:56+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/"},"wordCount":3846,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/","name":"Ubuntu 14.04 \u00dczerinde SSH'\u0131 Fail2Ban ile Koruma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-17T03:40:56+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-sshi-fail2ban-ile-koruma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 14.04 \u00dczerinde SSH&#8217;\u0131 Fail2Ban ile Koruma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=39230"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39230\/revisions"}],"predecessor-version":[{"id":39231,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39230\/revisions\/39231"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}