{"id":37803,"date":"2026-01-15T20:40:54","date_gmt":"2026-01-15T17:40:54","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37803"},"modified":"2026-01-15T20:40:54","modified_gmt":"2026-01-15T17:40:54","slug":"sshi-fail2ban-ile-debian-11de-koruma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/","title":{"rendered":"SSH&#8217;i Fail2Ban ile Debian 11&#8217;de Koruma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>SSH&#8217;i Fail2Ban ile Debian 11&#8217;de Koruma Rehberi<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>Sunucular\u0131m\u0131z i\u00e7in en kritik g\u00fcvenlik \u00f6nlemlerinden biri, uzaktan eri\u015fim protokollerini do\u011fru bir \u015fekilde korumakt\u0131r. Secure Shell (SSH), sunuculara g\u00fcvenli bir \u015fekilde uzaktan ba\u011flanmak, dosya transferi yapmak ve komut \u00e7al\u0131\u015ft\u0131rmak i\u00e7in yayg\u0131n olarak kullan\u0131lan bir protokold\u00fcr. Ancak, internete a\u00e7\u0131k her SSH servisi, k\u00f6t\u00fc niyetli akt\u00f6rlerin s\u00fcrekli hedefindedir. Brute-force (kaba kuvvet) ve s\u00f6zl\u00fck sald\u0131r\u0131lar\u0131, yayg\u0131n olarak kar\u015f\u0131la\u015f\u0131lan tehditlerdir. Bu t\u00fcr sald\u0131r\u0131lar, genellikle otomatik botlar taraf\u0131ndan ger\u00e7ekle\u015ftirilir ve milyonlarca farkl\u0131 kullan\u0131c\u0131 ad\u0131 ve \u015fifre kombinasyonunu deneyerek sunucunuza yetkisiz eri\u015fim sa\u011flamay\u0131 ama\u00e7lar. Bu durum sadece g\u00fcvenlik a\u00e7\u0131\u011f\u0131 yaratmakla kalmaz, ayn\u0131 zamanda sunucu kaynaklar\u0131n\u0131 t\u00fcketerek performans\u0131 d\u00fc\u015f\u00fcrebilir ve servis kesintilerine yol a\u00e7abilir.<\/p>\n<p>Bu makalede, Debian 11 i\u015fletim sistemine sahip bir sunucuda SSH servisini bu t\u00fcr sald\u0131r\u0131lardan korumak i\u00e7in g\u00fc\u00e7l\u00fc ve etkili bir ara\u00e7 olan Fail2Ban&#8217;\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve y\u00f6netece\u011finizi ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyece\u011fiz. Fail2Ban, sunucu log dosyalar\u0131n\u0131 izleyerek belirli bir zaman diliminde ba\u015far\u0131s\u0131z oturum a\u00e7ma giri\u015fimleri gibi k\u00f6t\u00fc niyetli davran\u0131\u015flar\u0131 tespit eder ve bu davran\u0131\u015flar\u0131 sergileyen IP adreslerini otomatik olarak yasaklar (banlar). Bu sayede, sunucunuzu s\u00fcrekli deneme sald\u0131r\u0131lar\u0131na kar\u015f\u0131 korurken, sistem y\u00f6neticilerinin manuel m\u00fcdahalesine gerek kalmadan proaktif bir g\u00fcvenlik katman\u0131 sa\u011flar. Debian 11, kararl\u0131 yap\u0131s\u0131 ve geni\u015f paket deste\u011fi ile Fail2Ban gibi g\u00fcvenlik ara\u00e7lar\u0131n\u0131 kolayca entegre edebilece\u011finiz ideal bir platformdur.<\/p>\n<h2>\u00d6nko\u015fullar<\/h2>\n<p>Bu rehberi uygulamak i\u00e7in a\u015fa\u011f\u0131daki \u00f6nko\u015fullara sahip olman\u0131z gerekmektedir:<\/p>\n<ul>\n<li>SSH eri\u015fimi olan ve <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip bir Debian 11 sunucusu.<\/li>\n<li>Temel Linux komut sat\u0131r\u0131 bilgisi.<\/li>\n<li>Sunucunun internet ba\u011flant\u0131s\u0131 olmas\u0131.<\/li>\n<li>G\u00fcvenli\u011finiz i\u00e7in, SSH eri\u015fiminizde anahtar tabanl\u0131 kimlik do\u011frulama kullanman\u0131z \u015fiddetle tavsiye edilir.<\/li>\n<\/ul>\n<h2>Ba\u015flamadan \u00d6nce: SSH En \u0130yi Uygulamalar\u0131<\/h2>\n<p>Fail2Ban, SSH g\u00fcvenli\u011finizi art\u0131ran harika bir ara\u00e7 olsa da, tek ba\u015f\u0131na yeterli de\u011fildir. SSH servisinizi korumak i\u00e7in bir dizi en iyi uygulamay\u0131 Fail2Ban ile birlikte uygulamak, \u00e7ok katmanl\u0131 bir savunma stratejisi olu\u015fturman\u0131za yard\u0131mc\u0131 olacakt\u0131r. Bu uygulamalar, potansiyel sald\u0131rganlar\u0131n i\u015fini zorla\u015ft\u0131r\u0131r ve sunucunuzun genel g\u00fcvenlik duru\u015funu g\u00fc\u00e7lendirir.<\/p>\n<h3>Varsay\u0131lan SSH Portunu De\u011fi\u015ftirin<\/h3>\n<p>SSH&#8217;in varsay\u0131lan portu olan 22, botlar taraf\u0131ndan s\u00fcrekli taranan ve sald\u0131r\u0131lan bir hedeftir. Portu 1024-65535 aral\u0131\u011f\u0131nda, hen\u00fcz ba\u015fka bir servis taraf\u0131ndan kullan\u0131lmayan rastgele bir porta (\u00f6rne\u011fin, 2222, 22022) de\u011fi\u015ftirmek, otomatik taramalar\u0131n ve sald\u0131r\u0131lar\u0131n b\u00fcy\u00fck bir k\u0131sm\u0131n\u0131 engeller.<br \/>\nBunu yapmak i\u00e7in <code>\/etc\/ssh\/sshd_config<\/code> dosyas\u0131n\u0131 d\u00fczenleyin:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/ssh\/sshd_config<\/code><\/pre>\n<p><code>#Port 22<\/code> sat\u0131r\u0131n\u0131 bulun, yorum i\u015faretini kald\u0131r\u0131n ve istedi\u011finiz port numaras\u0131n\u0131 yaz\u0131n (\u00f6rne\u011fin, <code>Port 2222<\/code>). De\u011fi\u015fiklikleri kaydedip SSH servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart ssh<\/code><\/pre>\n<p>Yeni port \u00fczerinden ba\u011flanmay\u0131 unutmay\u0131n: <code>ssh kullan\u0131c\u0131@sunucu_ip -p 2222<\/code>.<\/p>\n<h3>Root Kullan\u0131c\u0131s\u0131 ile SSH Giri\u015fini Devre D\u0131\u015f\u0131 B\u0131rak\u0131n<\/h3>\n<p><code>root<\/code> kullan\u0131c\u0131s\u0131, Linux sistemlerinde en y\u00fcksek ayr\u0131cal\u0131klara sahip oldu\u011fu i\u00e7in sald\u0131rganlar taraf\u0131ndan en \u00e7ok hedeflenen kullan\u0131c\u0131 ad\u0131d\u0131r. <code>root<\/code> kullan\u0131c\u0131s\u0131 ile do\u011frudan SSH giri\u015fini devre d\u0131\u015f\u0131 b\u0131rakmak, sald\u0131rganlar\u0131n tahmin etmesi gereken kullan\u0131c\u0131 ad\u0131 say\u0131s\u0131n\u0131 azalt\u0131r. Bunun yerine, d\u00fc\u015f\u00fck ayr\u0131cal\u0131kl\u0131 bir kullan\u0131c\u0131 ile giri\u015f yap\u0131n ve gerekti\u011finde <code>sudo<\/code> komutunu kullanarak ayr\u0131cal\u0131klar\u0131n\u0131z\u0131 y\u00fckseltin.<br \/>\n<code>\/etc\/ssh\/sshd_config<\/code> dosyas\u0131nda <code>PermitRootLogin<\/code> sat\u0131r\u0131n\u0131 bulun ve <code>no<\/code> olarak ayarlay\u0131n:<\/p>\n<pre><code class=\"language-\">PermitRootLogin no<\/code><\/pre>\n<p>Ard\u0131ndan SSH servisini yeniden ba\u015flat\u0131n.<\/p>\n<h3>SSH Anahtar Tabanl\u0131 Kimlik Do\u011frulamas\u0131n\u0131 Kullan\u0131n<\/h3>\n<p>Parolalar, ne kadar karma\u015f\u0131k olursa olsun, kaba kuvvet sald\u0131r\u0131lar\u0131na kar\u015f\u0131 savunmas\u0131zd\u0131r. SSH anahtar \u00e7iftleri (genel ve \u00f6zel anahtar), parolalardan \u00e7ok daha g\u00fcvenli bir kimlik do\u011frulama y\u00f6ntemi sunar. Genel anahtar sunucuda saklan\u0131r, \u00f6zel anahtar ise yerel bilgisayar\u0131n\u0131zda kal\u0131r ve asla a\u011f \u00fczerinden iletilmez.<br \/>\nAnahtar tabanl\u0131 kimlik do\u011frulamas\u0131n\u0131 kullanmak i\u00e7in:<\/p>\n<ol>\n<li>Yerel makinenizde bir SSH anahtar \u00e7ifti olu\u015fturun: <code>ssh-keygen<\/code>.<\/li>\n<li>Genel anahtar\u0131n\u0131z\u0131 sunucuya kopyalay\u0131n: <code>ssh-copy-id kullan\u0131c\u0131@sunucu_ip<\/code>.<\/li>\n<li><code>\/etc\/ssh\/sshd_config<\/code> dosyas\u0131nda <code>PasswordAuthentication no<\/code> sat\u0131r\u0131n\u0131 ayarlayarak parola ile kimlik do\u011frulamay\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131n (bu ad\u0131m\u0131, anahtar ile ba\u015far\u0131l\u0131 bir \u015fekilde giri\u015f yapt\u0131\u011f\u0131n\u0131zdan emin olduktan sonra yap\u0131n).<\/li>\n<\/ol>\n<p>Bu, parolalar\u0131n tamamen devre d\u0131\u015f\u0131 b\u0131rak\u0131lmas\u0131n\u0131 sa\u011flayarak brute-force sald\u0131r\u0131lar\u0131n\u0131n etkisini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<\/p>\n<h3>Belirli Kullan\u0131c\u0131lar veya Gruplarla SSH Eri\u015fimini S\u0131n\u0131rlay\u0131n<\/h3>\n<p>Yaln\u0131zca belirli kullan\u0131c\u0131lar\u0131n veya belirli bir grubun \u00fcyelerinin SSH arac\u0131l\u0131\u011f\u0131yla sunucuya eri\u015fmesine izin vererek sald\u0131r\u0131 y\u00fczeyini k\u00fc\u00e7\u00fcltebilirsiniz.<br \/>\n<code>\/etc\/ssh\/sshd_config<\/code> dosyas\u0131nda <code>AllowUsers<\/code> veya <code>AllowGroups<\/code> y\u00f6nergelerini kullan\u0131n:<\/p>\n<pre><code class=\"language-\">AllowUsers kullan\u0131c\u01311 kullan\u0131c\u01312\nAllowGroups sshusers<\/code><\/pre>\n<p>Ard\u0131ndan SSH servisini yeniden ba\u015flat\u0131n.<\/p>\n<h3>Sisteminizi ve Paketlerinizi G\u00fcncel Tutun<\/h3>\n<p>G\u00fcvenlik yamalar\u0131 ve yaz\u0131l\u0131m g\u00fcncellemeleri, bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapatmak i\u00e7in kritik \u00f6neme sahiptir. D\u00fczenli olarak sisteminizi g\u00fcncel tutarak potansiyel zafiyetleri ortadan kald\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update && sudo apt upgrade -y<\/code><\/pre>\n<h2>Fail2Ban&#8217;\u0131 Debian 11&#8217;e Kurma<\/h2>\n<p>Fail2Ban&#8217;\u0131 Debian 11 sunucunuza kurmak olduk\u00e7a basittir. Debian&#8217;\u0131n APT paket y\u00f6neticisi sayesinde birka\u00e7 komutla kurulumu tamamlayabilirsiniz.<\/p>\n<h3>Paket Listelerini G\u00fcncelleme<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce, sisteminizin paket listelerini g\u00fcncelledi\u011finizden emin olun. Bu, en son Fail2Ban s\u00fcr\u00fcm\u00fcn\u00fc ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 alman\u0131z\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<h3>Fail2Ban Paketini Kurma<\/h3>\n<p>Paket listeleri g\u00fcncellendikten sonra, Fail2Ban paketini a\u015fa\u011f\u0131daki komutla kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt install fail2ban -y<\/code><\/pre>\n<p>Bu komut, Fail2Ban&#8217;\u0131 ve gerekli t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 sisteminize y\u00fckleyecektir. <code>-y<\/code> bayra\u011f\u0131, kurulum s\u0131ras\u0131nda \u00e7\u0131kan onay sorular\u0131na otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 vermeyi sa\u011flar.<\/p>\n<h3>Kurulumu ve Servis Durumunu Do\u011frulama<\/h3>\n<p>Kurulum tamamland\u0131ktan sonra, Fail2Ban servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status fail2ban<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ibaresini g\u00f6rmelisiniz. Bu, Fail2Ban servisinin ba\u015far\u0131yla ba\u015flat\u0131ld\u0131\u011f\u0131n\u0131 ve \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<br \/>\nE\u011fer servis \u00e7al\u0131\u015fm\u0131yorsa, a\u015fa\u011f\u0131daki komutla ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start fail2ban<\/code><\/pre>\n<p>Ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable fail2ban<\/code><\/pre>\n<h2>Fail2Ban Yap\u0131land\u0131rmas\u0131n\u0131 Anlama<\/h2>\n<p>Fail2Ban, olduk\u00e7a esnek bir yap\u0131land\u0131rmaya sahiptir. Yap\u0131land\u0131rma dosyalar\u0131 genellikle <code>\/etc\/fail2ban\/<\/code> dizini alt\u0131nda bulunur. Bu dizin i\u00e7erisinde \u00e7e\u015fitli yap\u0131land\u0131rma dosyalar\u0131 ve alt dizinler mevcuttur.<\/p>\n<h3><code>jail.conf<\/code> ve <code>jail.local<\/code><\/h3>\n<p>Fail2Ban&#8217;\u0131n ana yap\u0131land\u0131rma dosyas\u0131 <code>jail.conf<\/code>&#8216;tur. Bu dosya, Fail2Ban&#8217;\u0131n t\u00fcm varsay\u0131lan ayarlar\u0131n\u0131 ve \u00e7e\u015fitli servisler (SSH, Apache, Nginx vb.) i\u00e7in \u00f6nceden tan\u0131mlanm\u0131\u015f &#8220;hapishaneleri&#8221; (jails) i\u00e7erir. Ancak, bu dosyay\u0131 do\u011frudan d\u00fczenlemek yerine, <code>jail.local<\/code> ad\u0131nda yeni bir dosya olu\u015fturup \u00fczerinde \u00e7al\u0131\u015fmak en iyi uygulamad\u0131r.<br \/>\nBunun nedeni \u015fudur: <code>jail.conf<\/code> dosyas\u0131, Fail2Ban paketi g\u00fcncellendi\u011finde \u00fczerine yaz\u0131labilir. Kendi de\u011fi\u015fikliklerinizi <code>jail.local<\/code> dosyas\u0131na kaydetti\u011finizde, paket g\u00fcncellemelerinden etkilenmezsiniz. Fail2Ban, \u00f6nce <code>jail.conf<\/code>&#8216;u okur, ard\u0131ndan <code>jail.local<\/code>&#8216;i okur ve <code>jail.local<\/code>&#8216;deki ayarlar <code>jail.conf<\/code>&#8216;taki ayarlar\u0131 ge\u00e7ersiz k\u0131lar.<br \/>\n<code>jail.conf<\/code> dosyas\u0131n\u0131 <code>jail.local<\/code> olarak kopyalayarak ba\u015flayabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo cp \/etc\/fail2ban\/jail.conf \/etc\/fail2ban\/jail.local<\/code><\/pre>\n<p>Art\u0131k t\u00fcm yap\u0131land\u0131rma de\u011fi\u015fikliklerinizi <code>jail.local<\/code> \u00fczerinde yapacaks\u0131n\u0131z.<\/p>\n<h3><code>fail2ban.conf<\/code><\/h3>\n<p>Bu dosya, Fail2Ban&#8217;\u0131n kendi loglama seviyeleri, log dosyas\u0131 yolu ve pid dosyas\u0131 gibi global ayarlar\u0131n\u0131 i\u00e7erir. Genellikle bu dosyada de\u011fi\u015fiklik yapmaya gerek kalmaz.<\/p>\n<h3><code>filter.d<\/code> Dizini<\/h3>\n<p>Bu dizin, Fail2Ban&#8217;\u0131n farkl\u0131 servisler i\u00e7in log dosyalar\u0131n\u0131 nas\u0131l analiz edece\u011fini tan\u0131mlayan filtre dosyalar\u0131n\u0131 i\u00e7erir. Her <code>.conf<\/code> dosyas\u0131, belirli bir servisin loglar\u0131ndaki ba\u015far\u0131s\u0131z giri\u015fimleri tan\u0131mlayan d\u00fczenli ifade (regex) kurallar\u0131n\u0131 bar\u0131nd\u0131r\u0131r. \u00d6rne\u011fin, <code>sshd.conf<\/code> dosyas\u0131, SSH loglar\u0131ndaki ba\u015far\u0131s\u0131z oturum a\u00e7ma giri\u015fimlerini tespit etmek i\u00e7in kullan\u0131lan regex kurallar\u0131n\u0131 i\u00e7erir.<\/p>\n<h3><code>action.d<\/code> Dizini<\/h3>\n<p>Bu dizin, Fail2Ban bir IP adresini yasaklad\u0131\u011f\u0131nda veya yasa\u011f\u0131n\u0131 kald\u0131rd\u0131\u011f\u0131nda hangi eylemlerin ger\u00e7ekle\u015ftirilece\u011fini tan\u0131mlayan komut dosyalar\u0131n\u0131 i\u00e7erir. Varsay\u0131lan eylemler aras\u0131nda IP adresini g\u00fcvenlik duvar\u0131 kurallar\u0131na eklemek (iptables), e-posta bildirimi g\u00f6ndermek veya whois sorgusu yapmak bulunur. \u00d6rne\u011fin, <code>iptables-allports.conf<\/code> dosyas\u0131, iptables kullanarak bir IP adresini t\u00fcm portlardan yasaklama eylemini tan\u0131mlar.<\/p>\n<h2>SSH Korumas\u0131 i\u00e7in Fail2Ban&#8217;\u0131 Yap\u0131land\u0131rma<\/h2>\n<p>\u015eimdi, <code>jail.local<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek SSH servisinizi korumak i\u00e7in Fail2Ban&#8217;\u0131 yap\u0131land\u0131rabiliriz.<\/p>\n<h3><code>jail.local<\/code> Dosyas\u0131n\u0131 D\u00fczenleme<\/h3>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/fail2ban\/jail.local<\/code><\/pre>\n<h3>Temel Global Ayarlar<\/h3>\n<p>Dosyan\u0131n en ba\u015f\u0131nda, t\u00fcm hapishaneler i\u00e7in ge\u00e7erli olacak genel ayarlar\u0131 bulacaks\u0131n\u0131z. Bunlar \u00fczerinde de\u011fi\u015fiklik yapmak, varsay\u0131lan davran\u0131\u015flar\u0131 \u00f6zelle\u015ftirmenizi sa\u011flar.<\/p>\n<ul>\n<li>\n<h4><code>ignoreip<\/code><\/h4>\n<p>        Bu parametre, Fail2Ban taraf\u0131ndan asla yasaklanmayacak IP adreslerini veya IP aral\u0131klar\u0131n\u0131 tan\u0131mlar. Kendi IP adresinizi veya a\u011f\u0131n\u0131z\u0131n IP aral\u0131\u011f\u0131n\u0131 buraya eklemek, yanl\u0131\u015fl\u0131kla kendinizi sunucunuzdan kilitlemenizi \u00f6nlemek i\u00e7in hayati \u00f6neme sahiptir. Birden fazla IP adresi veya aral\u0131\u011f\u0131 bo\u015flukla ay\u0131rarak ekleyebilirsiniz.<\/p>\n<pre><code class=\"language-ini\">ignoreip = 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> localhost&#8217;u ifade eder. Kendi statik d\u0131\u015f IP adresinizi veya genellikle kulland\u0131\u011f\u0131n\u0131z a\u011f\u0131n IP aral\u0131\u011f\u0131n\u0131 eklemeyi unutmay\u0131n.<\/li>\n<li>\n<h4><code>bantime<\/code><\/h4>\n<p>        Bu parametre, bir IP adresinin yasakland\u0131ktan sonra ne kadar s\u00fcreyle yasakl\u0131 kalaca\u011f\u0131n\u0131 saniye cinsinden belirtir. Varsay\u0131lan de\u011fer genellikle 10 dakika (600 saniye) veya 1 saat (3600 saniye) civar\u0131ndad\u0131r. G\u00fcvenlik seviyenize g\u00f6re bu s\u00fcreyi art\u0131rabilirsiniz. \u00d6rne\u011fin, 1 g\u00fcn i\u00e7in <code>86400<\/code> olarak ayarlayabilirsiniz.<\/p>\n<pre><code class=\"language-ini\">bantime = 3600<\/code><\/pre>\n<\/li>\n<li>\n<h4><code>findtime<\/code><\/h4>\n<p>        Bu parametre, Fail2Ban&#8217;\u0131n bir IP adresinden gelen ba\u015far\u0131s\u0131z giri\u015fimleri saymak i\u00e7in geriye d\u00f6n\u00fck olarak ne kadar s\u00fcreye bakaca\u011f\u0131n\u0131 saniye cinsinden belirtir. \u00d6rne\u011fin, <code>findtime = 600<\/code> (10 dakika) olarak ayarland\u0131\u011f\u0131nda, Fail2Ban son 10 dakika i\u00e7indeki ba\u015far\u0131s\u0131z giri\u015fimleri de\u011ferlendirir.<\/p>\n<pre><code class=\"language-ini\">findtime = 600<\/code><\/pre>\n<\/li>\n<li>\n<h4><code>maxretry<\/code><\/h4>\n<p>        Bu parametre, <code>findtime<\/code> s\u00fcresi i\u00e7inde bir IP adresinin ka\u00e7 ba\u015far\u0131s\u0131z oturum a\u00e7ma giri\u015fiminden sonra yasaklanaca\u011f\u0131n\u0131 belirtir. Varsay\u0131lan de\u011fer genellikle 5&#8217;tir. Bu de\u011feri d\u00fc\u015f\u00fcrerek (\u00f6rne\u011fin 3&#8217;e), sald\u0131rganlar\u0131n daha az deneme \u015fans\u0131 olmas\u0131n\u0131 sa\u011flayabilirsiniz, ancak yanl\u0131\u015fl\u0131kla kendini kilitleme riskini art\u0131r\u0131r.<\/p>\n<pre><code class=\"language-ini\">maxretry = 5<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>SSH Jail&#8217;ini Etkinle\u015ftirme<\/h3>\n<p><code>jail.local<\/code> dosyas\u0131nda <code>[sshd]<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 aray\u0131n. Bu b\u00f6l\u00fcm, SSH servisi i\u00e7in \u00f6zel ayarlar\u0131 i\u00e7erir.<\/p>\n<ul>\n<li>\n<h4><code>enabled<\/code><\/h4>\n<p>        Bu sat\u0131r\u0131 <code>true<\/code> olarak ayarlayarak SSH hapishanesini etkinle\u015ftirin. Varsay\u0131lan olarak genellikle devre d\u0131\u015f\u0131d\u0131r.<\/p>\n<pre><code class=\"language-ini\">enabled = true<\/code><\/pre>\n<\/li>\n<li>\n<h4><code>port<\/code><\/h4>\n<p>        Bu parametre, Fail2Ban&#8217;\u0131n hangi portu dinleyece\u011fini belirtir. E\u011fer SSH portunuzu varsay\u0131lan 22&#8217;den farkl\u0131 bir porta de\u011fi\u015ftirdiyseniz (ki bu \u00f6nerilir), bu de\u011feri de de\u011fi\u015ftirmelisiniz. Birden fazla port i\u00e7in virg\u00fclle ay\u0131rarak listeyebilirsiniz.<\/p>\n<pre><code class=\"language-ini\">port = ssh,2222  ; E\u011fer SSH portunuz 2222 ise<\/code><\/pre>\n<p>        Veya sadece \u00f6zel portunuzu belirtin:<\/p>\n<pre><code class=\"language-ini\">port = 2222<\/code><\/pre>\n<\/li>\n<li>\n<h4><code>logpath<\/code><\/h4>\n<p>        Bu parametre, Fail2Ban&#8217;\u0131n ba\u015far\u0131s\u0131z SSH giri\u015fimlerini izlemek i\u00e7in hangi log dosyas\u0131n\u0131 okuyaca\u011f\u0131n\u0131 belirtir. Debian 11&#8217;de SSH kimlik do\u011frulama loglar\u0131 genellikle <code>\/var\/log\/auth.log<\/code> dosyas\u0131nda bulunur. Bu genellikle do\u011fru varsay\u0131lan de\u011ferdir, ancak kontrol etmekte fayda var.<\/p>\n<pre><code class=\"language-ini\">logpath = \/var\/log\/auth.log<\/code><\/pre>\n<\/li>\n<li>\n<h4><code>backend<\/code><\/h4>\n<p>        Bu parametre, Fail2Ban&#8217;\u0131n log dosyalar\u0131n\u0131 izlemek i\u00e7in hangi arka ucu kullanaca\u011f\u0131n\u0131 belirtir. Modern Debian sistemlerinde <code>systemd<\/code> arka ucu \u00f6nerilir, bu sayede systemd journal loglar\u0131 da etkili bir \u015fekilde izlenebilir.<\/p>\n<pre><code class=\"language-ini\">backend = systemd<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>SSH Jail Ayarlar\u0131n\u0131 \u00d6zelle\u015ftirme (Opsiyonel)<\/h3>\n<p>\u0130sterseniz, SSH hapishanesi i\u00e7in global ayarlardan farkl\u0131 <code>bantime<\/code>, <code>findtime<\/code> ve <code>maxretry<\/code> de\u011ferleri belirleyebilirsiniz. Bu, SSH gibi kritik servisler i\u00e7in daha agresif kurallar uygulaman\u0131za olanak tan\u0131r.<\/p>\n<pre><code class=\"language-ini\">[sshd]\nenabled = true\nport = ssh\nfilter = sshd\nlogpath = \/var\/log\/auth.log\nmaxretry = 3\nbantime = 1h\nfindtime = 5m<\/code><\/pre>\n<p>Burada <code>maxretry<\/code> 3&#8217;e, <code>bantime<\/code> 1 saate ve <code>findtime<\/code> 5 dakikaya ayarlanm\u0131\u015ft\u0131r.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydettikten sonra (Ctrl+O, Enter, Ctrl+X), Fail2Ban servisini yeniden ba\u015flatman\u0131z gerekir ki de\u011fi\u015fiklikler etkili olsun:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart fail2ban<\/code><\/pre>\n<h2>Geli\u015fmi\u015f Fail2Ban Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>Fail2Ban, temel koruman\u0131n \u00f6tesinde, daha geli\u015fmi\u015f senaryolar i\u00e7in de yap\u0131land\u0131r\u0131labilir.<\/p>\n<h3>Ban Eylemlerini \u00d6zelle\u015ftirme<\/h3>\n<p>Fail2Ban, bir IP adresini yasaklad\u0131\u011f\u0131nda \u00e7e\u015fitli eylemler ger\u00e7ekle\u015ftirebilir. Bu eylemler, <code>action<\/code> parametresi ile tan\u0131mlan\u0131r.<\/p>\n<ul>\n<li>\n<h4><code>action<\/code> Parametresi<\/h4>\n<p>        <code>action<\/code> parametresi, bir IP yasakland\u0131\u011f\u0131nda veya yasa\u011f\u0131 kald\u0131r\u0131ld\u0131\u011f\u0131nda hangi komut dosyalar\u0131n\u0131n \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131n\u0131 belirtir. En yayg\u0131n kullan\u0131lan eylemlerden baz\u0131lar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>action = %(action_mw)s<\/code>: IP adresini yasaklar ve sistem y\u00f6neticisine e-posta g\u00f6nderir. (<code>m<\/code> mail, <code>w<\/code> whois)<\/li>\n<li><code>action = %(action_mwl)s<\/code>: IP adresini yasaklar, e-posta g\u00f6nderir ve whois bilgilerini loga yazar. (<code>l<\/code> log)<\/li>\n<li><code>action = %(action_x)s<\/code>: Geli\u015fmi\u015f, daha kapsaml\u0131 bir eylem \u015fablonudur.<\/li>\n<\/ul>\n<p>        Varsay\u0131lan olarak, Fail2Ban genellikle <code>iptables-multiport<\/code> eylemini kullan\u0131r. Bu eylem, yasaklanan IP adresini belirli portlardan engellemek i\u00e7in iptables g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 kullan\u0131r.<br \/>\n        SSH hapishanenizin alt\u0131na a\u015fa\u011f\u0131daki gibi bir sat\u0131r ekleyerek e-posta bildirimlerini etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code class=\"language-ini\">action = %(action_mwl)s<\/code><\/pre>\n<\/li>\n<li>\n<h4>E-posta Bildirimleri (<code>destemail<\/code>, <code>sendername<\/code>, <code>mta<\/code>)<\/h4>\n<p>        E-posta bildirimlerini kullanmak istiyorsan\u0131z, <code>jail.local<\/code> dosyas\u0131n\u0131n global b\u00f6l\u00fcm\u00fcnde veya belirli bir hapishanenin alt\u0131nda a\u015fa\u011f\u0131daki parametreleri yap\u0131land\u0131rman\u0131z gerekir:<\/p>\n<pre><code class=\"language-ini\"># Global ayarlar b\u00f6l\u00fcm\u00fcnde\n        destemail = admin@example.com\n        sendername = Fail2Ban\n        mta = sendmail ; veya postfix, mail vb.<\/code><\/pre>\n<p>        <code>destemail<\/code>: Yasaklama bildirimlerinin g\u00f6nderilece\u011fi e-posta adresi.<br \/>\n        <code>sendername<\/code>: E-postalar\u0131n g\u00f6nderilece\u011fi isim.<br \/>\n        <code>mta<\/code>: E-posta g\u00f6ndermek i\u00e7in kullan\u0131lacak posta aktar\u0131m arac\u0131s\u0131 (Mail Transfer Agent). Sunucunuzda <code>sendmail<\/code> veya <code>postfix<\/code> gibi bir MTA&#8217;n\u0131n kurulu ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekir. E\u011fer yoksa, bu \u00f6zelli\u011fi kullanabilmek i\u00e7in bir MTA kurman\u0131z gerekebilir (\u00f6rne\u011fin, <code>sudo apt install postfix<\/code>).<\/li>\n<\/ul>\n<h3>\u00d6zel Hapishaneler Olu\u015fturma<\/h3>\n<p>SSH d\u0131\u015f\u0131nda ba\u015fka servisleri de korumak isteyebilirsiniz (\u00f6rne\u011fin, Nginx, Apache, Postfix, Dovecot vb.). Fail2Ban, bu servisler i\u00e7in de \u00f6zel hapishaneler olu\u015fturman\u0131za olanak tan\u0131r.<br \/>\n\u00d6rnek olarak, Nginx web sunucusunun HTTP kimlik do\u011frulama ba\u015far\u0131s\u0131zl\u0131klar\u0131n\u0131 izlemek i\u00e7in bir hapishane olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-ini\">[nginx-http-auth]\nenabled = true\nport = http,https\nfilter = nginx-http-auth\nlogpath = \/var\/log\/nginx\/error.log\nmaxretry = 6\nbantime = 1h<\/code><\/pre>\n<p>Bu \u00f6rnekte:<\/p>\n<ul>\n<li><code>[nginx-http-auth]<\/code>: Hapishane ad\u0131d\u0131r.<\/li>\n<li><code>enabled = true<\/code>: Hapishaneyi etkinle\u015ftirir.<\/li>\n<li><code>port = http,https<\/code>: Nginx&#8217;in dinledi\u011fi portlar\u0131 belirtir.<\/li>\n<li><code>filter = nginx-http-auth<\/code>: Kullan\u0131lacak filtre dosyas\u0131n\u0131 belirtir. Bu filtre genellikle <code>\/etc\/fail2ban\/filter.d\/nginx-http-auth.conf<\/code> dizininde bulunur ve Nginx hata loglar\u0131ndaki ba\u015far\u0131s\u0131z kimlik do\u011frulama giri\u015fimlerini tan\u0131mlayan regex kurallar\u0131n\u0131 i\u00e7erir.<\/li>\n<li><code>logpath = \/var\/log\/nginx\/error.log<\/code>: Nginx&#8217;in hata log dosyas\u0131n\u0131n yolunu belirtir.<\/li>\n<li><code>maxretry<\/code> ve <code>bantime<\/code>: Bu hapishaneye \u00f6zel yasaklama ayarlar\u0131d\u0131r.<\/li>\n<\/ul>\n<p>Her yeni hapishane i\u00e7in, ilgili servisin log dosyas\u0131n\u0131n yolunu ve varsa \u00f6zel bir filtre dosyas\u0131n\u0131 do\u011fru bir \u015fekilde belirtmeniz \u00f6nemlidir.<\/p>\n<h3>Filtreleri Anlama ve Test Etme<\/h3>\n<p>Filtreler, Fail2Ban&#8217;\u0131n log dosyalar\u0131ndaki k\u00f6t\u00fc niyetli desenleri tan\u0131mas\u0131n\u0131 sa\u011flayan d\u00fczenli ifade (regex) kurallar\u0131d\u0131r. Fail2Ban ile birlikte gelen varsay\u0131lan filtreler \u00e7o\u011fu durum i\u00e7in yeterlidir, ancak bazen \u00f6zel ihtiya\u00e7lar\u0131n\u0131z i\u00e7in kendi filtrelerinizi yazman\u0131z gerekebilir.<\/p>\n<ul>\n<li>\n<h4><code>filter.d\/sshd.conf<\/code> \u00d6rne\u011fi<\/h4>\n<p>        <code>sshd.conf<\/code> dosyas\u0131, SSH loglar\u0131ndaki ba\u015far\u0131s\u0131z giri\u015f denemelerini tespit eden regex kurallar\u0131n\u0131 i\u00e7erir. Bu dosyay\u0131 inceleyerek Fail2Ban&#8217;\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131na dair fikir edinebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo less \/etc\/fail2ban\/filter.d\/sshd.conf<\/code><\/pre>\n<p>        \u0130\u00e7erisinde <code>failregex<\/code> ve <code>ignoreregex<\/code> b\u00f6l\u00fcmlerini g\u00f6receksiniz. <code>failregex<\/code>, yasaklanmas\u0131 gereken desenleri tan\u0131mlar; <code>ignoreregex<\/code> ise g\u00f6z ard\u0131 edilmesi gereken desenleri tan\u0131mlar.<\/li>\n<li>\n<h4>Filtreleri Test Etme (<code>fail2ban-regex<\/code>)<\/h4>\n<p>        Kendi \u00f6zel filtrenizi yazd\u0131ysan\u0131z veya mevcut bir filtrenin belirli bir log girdisiyle e\u015fle\u015fip e\u015fle\u015fmedi\u011fini kontrol etmek istiyorsan\u0131z, <code>fail2ban-regex<\/code> yard\u0131mc\u0131 program\u0131n\u0131 kullanabilirsiniz.<br \/>\n        \u00d6rne\u011fin, <code>sshd<\/code> filtresini <code>\/var\/log\/auth.log<\/code> dosyas\u0131na kar\u015f\u0131 test etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-regex \/var\/log\/auth.log \/etc\/fail2ban\/filter.d\/sshd.conf<\/code><\/pre>\n<p>        Bu komut, filtrenin log dosyas\u0131nda ka\u00e7 e\u015fle\u015fme buldu\u011funu ve hangi IP adreslerinin tespit edildi\u011fini g\u00f6sterir. Bu, filtrelerinizin do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in \u00e7ok de\u011ferli bir ara\u00e7t\u0131r.<\/li>\n<\/ul>\n<h2>Fail2Ban Servisini Y\u00f6netme<\/h2>\n<p>Fail2Ban bir <code>systemd<\/code> servisi olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in, onu standart <code>systemctl<\/code> komutlar\u0131 ile y\u00f6netebilirsiniz.<\/p>\n<ul>\n<li>\n<h4>Fail2Ban&#8217;\u0131 Yeniden Ba\u015flatma<\/h4>\n<p>        Yap\u0131land\u0131rma dosyalar\u0131nda herhangi bir de\u011fi\u015fiklik yapt\u0131ktan sonra, de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in servisi yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart fail2ban<\/code><\/pre>\n<\/li>\n<li>\n<h4>Servis Durumunu Kontrol Etme<\/h4>\n<p>        Servisin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 ve herhangi bir hata olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status fail2ban<\/code><\/pre>\n<\/li>\n<li>\n<h4>Loglar\u0131 G\u00f6r\u00fcnt\u00fcleme<\/h4>\n<p>        Fail2Ban&#8217;\u0131n kendi log dosyas\u0131 <code>\/var\/log\/fail2ban.log<\/code> adresinde bulunur. Bu log dosyas\u0131, hangi IP adreslerinin yasakland\u0131\u011f\u0131n\u0131, yasa\u011f\u0131n\u0131n kald\u0131r\u0131ld\u0131\u011f\u0131n\u0131 ve Fail2Ban&#8217;\u0131n genel \u00e7al\u0131\u015fma durumunu g\u00f6sterir.<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/fail2ban.log<\/code><\/pre>\n<p>        Bu komut, log dosyas\u0131n\u0131 ger\u00e7ek zamanl\u0131 olarak izlemenizi sa\u011flar.<\/li>\n<\/ul>\n<h2>Fail2Ban&#8217;\u0131 \u0130zleme<\/h2>\n<p>Fail2Ban&#8217;\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve istedi\u011finiz gibi koruma sa\u011flad\u0131\u011f\u0131ndan emin olmak i\u00e7in d\u00fczenli olarak izlemeniz \u00f6nemlidir.<\/p>\n<ul>\n<li>\n<h4><code>fail2ban-client status<\/code><\/h4>\n<p>        Bu komut, Fail2Ban&#8217;\u0131n genel durumunu ve etkin olan hapishanelerin bir listesini g\u00f6sterir:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client status<\/code><\/pre>\n<p>        \u00c7\u0131kt\u0131, hangi hapishanelerin etkin oldu\u011funu ve toplamda ka\u00e7 IP adresinin yasakland\u0131\u011f\u0131n\u0131 g\u00f6sterecektir.<\/li>\n<li>\n<h4><code>fail2ban-client status <hapishane_ad\u0131><\/code><\/h4>\n<p>        Belirli bir hapishanenin (\u00f6rne\u011fin, <code>sshd<\/code>) durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client status sshd<\/code><\/pre>\n<p>        Bu komut, <code>sshd<\/code> hapishanesinin ka\u00e7 kez tetiklendi\u011fini, ka\u00e7 IP&#8217;nin yasakl\u0131 oldu\u011funu ve yasakl\u0131 IP adreslerinin bir listesini g\u00f6sterecektir.<\/li>\n<li>\n<h4><code>fail2ban-client get <hapishane_ad\u0131> banned<\/code><\/h4>\n<p>        Belirli bir hapishanede yasakl\u0131 olan t\u00fcm IP adreslerini listelemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client get sshd banned<\/code><\/pre>\n<\/li>\n<li>\n<h4><code>fail2ban-client unban <IP_adresi><\/code><\/h4>\n<p>        Yanl\u0131\u015fl\u0131kla yasaklad\u0131\u011f\u0131n\u0131z bir IP adresinin yasa\u011f\u0131n\u0131 kald\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client unban 203.0.113.1<\/code><\/pre>\n<p>        Bu komut, belirtilen IP adresinin t\u00fcm hapishanelerdeki yasa\u011f\u0131n\u0131 kald\u0131r\u0131r.<\/li>\n<li>\n<h4>Log Dosyalar\u0131n\u0131 G\u00f6zden Ge\u00e7irme<\/h4>\n<p>        Fail2Ban&#8217;\u0131n kendi log dosyas\u0131n\u0131n yan\u0131 s\u0131ra (<code>\/var\/log\/fail2ban.log<\/code>), SSH&#8217;in log dosyas\u0131 olan <code>\/var\/log\/auth.log<\/code> dosyas\u0131n\u0131 da d\u00fczenli olarak kontrol etmek, Fail2Ban&#8217;\u0131n do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve sald\u0131r\u0131 giri\u015fimlerini do\u011fru bir \u015fekilde tespit etti\u011finden emin olman\u0131z\u0131 sa\u011flar.<\/li>\n<\/ul>\n<h2>Fail2Ban&#8217;\u0131 Test Etme<\/h2>\n<p>Yap\u0131land\u0131rman\u0131z\u0131n do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in Fail2Ban&#8217;\u0131 test etmek iyi bir fikirdir.<\/p>\n<ol>\n<li>Ba\u015fka bir bilgisayardan veya farkl\u0131 bir IP adresinden (kendi <code>ignoreip<\/code> listenizde olmayan bir IP&#8217;den), SSH ile sunucunuza ba\u011flanmaya \u00e7al\u0131\u015f\u0131n.<\/li>\n<li>Bilerek yanl\u0131\u015f bir \u015fifre girerek veya yanl\u0131\u015f bir kullan\u0131c\u0131 ad\u0131 kullanarak birka\u00e7 kez (\u00f6rne\u011fin, <code>maxretry<\/code> de\u011feriniz 5 ise 6 kez) ba\u015far\u0131s\u0131z oturum a\u00e7ma giri\u015fimi yap\u0131n.<\/li>\n<li>Birka\u00e7 saniye veya dakika bekleyin (bu s\u00fcre <code>findtime<\/code> de\u011ferinize ba\u011fl\u0131d\u0131r).<\/li>\n<li>Ba\u015far\u0131s\u0131z giri\u015fimleri yapt\u0131\u011f\u0131n\u0131z IP adresinden tekrar SSH ile ba\u011flanmaya \u00e7al\u0131\u015f\u0131n. Ba\u011flant\u0131n\u0131n reddedildi\u011fini g\u00f6rmelisiniz.<\/li>\n<li>Sunucunuzda <code>sudo fail2ban-client status sshd<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak IP adresinin yasakland\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n. Yasakl\u0131 IP&#8217;ler listesinde ilgili IP adresini g\u00f6rmelisiniz.<\/li>\n<li>Test bittikten sonra, e\u011fer test i\u00e7in kulland\u0131\u011f\u0131n\u0131z IP adresini tekrar kullanman\u0131z gerekiyorsa, yasa\u011f\u0131n\u0131 kald\u0131rabilirsiniz: <code>sudo fail2ban-client unban <test_ip_adresi><\/code>.<\/li>\n<\/ol>\n<h2>Dikkate Al\u0131nmas\u0131 Gerekenler ve En \u0130yi Uygulamalar<\/h2>\n<p>Fail2Ban, g\u00fc\u00e7l\u00fc bir ara\u00e7 olsa da, baz\u0131 \u00f6nemli noktalar\u0131 ve ek g\u00fcvenlik \u00f6nlemlerini dikkate almak \u00f6nemlidir.<\/p>\n<ul>\n<li>\n<h4>Kendinizi Kitlemeyin<\/h4>\n<p>        <code>ignoreip<\/code> listesine kendi IP adresinizi veya kulland\u0131\u011f\u0131n\u0131z g\u00fcvenilir a\u011flar\u0131n IP aral\u0131klar\u0131n\u0131 eklemeyi asla unutmay\u0131n. Aksi takdirde, yanl\u0131\u015fl\u0131kla kendinizi sunucunuzdan kilitleyebilirsiniz. Dinamik bir IP adresiniz varsa, bir VPN veya ba\u015fka bir g\u00fcvenilir statik IP \u00fczerinden eri\u015fim sa\u011flamak iyi bir \u00e7\u00f6z\u00fcm olabilir.<\/li>\n<li>\n<h4>D\u00fczenli G\u00fcncellemeler<\/h4>\n<p>        Debian sisteminizi ve Fail2Ban paketini d\u00fczenli olarak g\u00fcncel tutun. Yaz\u0131l\u0131m g\u00fcncellemeleri, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r ve Fail2Ban&#8217;\u0131n en son tehditlere kar\u015f\u0131 etkili kalmas\u0131n\u0131 sa\u011flar.<\/li>\n<li>\n<h4>Loglar\u0131 Periyodik Olarak \u0130nceleyin<\/h4>\n<p>        Fail2Ban ve SSH loglar\u0131n\u0131 (<code>\/var\/log\/fail2ban.log<\/code>, <code>\/var\/log\/auth.log<\/code>) d\u00fczenli olarak g\u00f6zden ge\u00e7irmek, potansiyel g\u00fcvenlik sorunlar\u0131n\u0131 erken a\u015famada tespit etmenize yard\u0131mc\u0131 olur. Anormal aktiviteleri veya s\u00fcrekli sald\u0131r\u0131lar\u0131 fark etmenizi sa\u011flar.<\/li>\n<li>\n<h4>Di\u011fer G\u00fcvenlik \u00d6nlemleriyle Birle\u015ftirin<\/h4>\n<p>        Fail2Ban, katmanl\u0131 bir g\u00fcvenlik stratejisinin yaln\u0131zca bir par\u00e7as\u0131d\u0131r. Onu bir g\u00fcvenlik duvar\u0131 (UFW veya iptables), SSH anahtar tabanl\u0131 kimlik do\u011frulama, iki fakt\u00f6rl\u00fc kimlik do\u011frulama (MFA) ve d\u00fczenli g\u00fcvenlik denetimleri gibi di\u011fer \u00f6nlemlerle birle\u015ftirerek sunucunuzun g\u00fcvenli\u011fini maksimuma \u00e7\u0131kar\u0131n.<\/li>\n<li>\n<h4>Performans Etkisi<\/h4>\n<p>        Fail2Ban, log dosyalar\u0131n\u0131 s\u00fcrekli izledi\u011fi i\u00e7in \u00e7ok az da olsa sistem kaynaklar\u0131n\u0131 kullan\u0131r. Ancak, SSH gibi tek bir servisi izlemek genellikle modern sunucular i\u00e7in ihmal edilebilir bir performans etkisine sahiptir. \u00c7ok say\u0131da hapishane ve karma\u015f\u0131k filtreler kullan\u0131ld\u0131\u011f\u0131nda bu etki artabilir, ancak \u00e7o\u011fu kullan\u0131m senaryosunda endi\u015fe edilecek bir durum de\u011fildir.<\/li>\n<\/ul>\n<h2>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorun Giderme<\/h2>\n<p>Fail2Ban yap\u0131land\u0131rmas\u0131 s\u0131ras\u0131nda veya sonras\u0131nda baz\u0131 sorunlarla kar\u015f\u0131la\u015fabilirsiniz. \u0130\u015fte baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<ul>\n<li>\n<h4>Fail2Ban Ba\u015flam\u0131yor veya Hata Veriyor<\/h4>\n<ul>\n<li><code>sudo systemctl status fail2ban<\/code> komutuyla servisin durumunu kontrol edin.<\/li>\n<li><code>sudo journalctl -u fail2ban<\/code> komutuyla Fail2Ban&#8217;\u0131n systemd loglar\u0131n\u0131 inceleyin. Bu, ba\u015flang\u0131\u00e7 hatalar\u0131n\u0131 ve yap\u0131land\u0131rma sorunlar\u0131n\u0131 g\u00f6sterir.<\/li>\n<li><code>\/var\/log\/fail2ban.log<\/code> dosyas\u0131n\u0131 kontrol edin.<\/li>\n<li>Genellikle yap\u0131land\u0131rma dosyas\u0131ndaki (\u00f6zellikle <code>jail.local<\/code>) bir yaz\u0131m hatas\u0131 veya yanl\u0131\u015f bir parametre bu duruma neden olur. <code>sudo fail2ban-client -t<\/code> komutu ile yap\u0131land\u0131rma dosyan\u0131z\u0131n s\u00f6zdizimini test edebilirsiniz.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h4>Jail Etkin De\u011fil<\/h4>\n<ul>\n<li><code>jail.local<\/code> dosyas\u0131nda ilgili hapishanenin alt\u0131nda <code>enabled = true<\/code> olarak ayarland\u0131\u011f\u0131ndan emin olun.<\/li>\n<li>Fail2Ban servisini yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zdan emin olun: <code>sudo systemctl restart fail2ban<\/code>.<\/li>\n<li><code>sudo fail2ban-client status<\/code> komutuyla hapishanenin listede g\u00f6r\u00fcn\u00fcp g\u00f6r\u00fcnmedi\u011fini kontrol edin.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h4>IP&#8217;ler Yasaklanm\u0131yor<\/h4>\n<ul>\n<li><code>logpath<\/code> parametresinin do\u011fru log dosyas\u0131n\u0131 i\u015faret etti\u011finden emin olun. SSH i\u00e7in bu genellikle <code>\/var\/log\/auth.log<\/code>&#8216;tur.<\/li>\n<li><code>filter<\/code> parametresinin do\u011fru filtre dosyas\u0131n\u0131 (\u00f6rne\u011fin <code>sshd<\/code>) i\u015faret etti\u011finden emin olun.<\/li>\n<li><code>sudo fail2ban-regex <log_dosyas\u0131_yolu> <filtre_dosyas\u0131_yolu><\/code> komutuyla filtrenin log dosyas\u0131ndaki desenlerle e\u015fle\u015fip e\u015fle\u015fmedi\u011fini test edin.<\/li>\n<li><code>maxretry<\/code> ve <code>findtime<\/code> de\u011ferlerinin mant\u0131kl\u0131 oldu\u011fundan emin olun. \u00d6rne\u011fin, <code>findtime<\/code> \u00e7ok k\u0131sa veya <code>maxretry<\/code> \u00e7ok y\u00fcksekse, yasaklama tetiklenmeyebilir.<\/li>\n<li>Kendi IP adresinizin <code>ignoreip<\/code> listesinde olmad\u0131\u011f\u0131ndan emin olun (test yaparken).<\/li>\n<li>G\u00fcvenlik duvar\u0131n\u0131z\u0131n (iptables) Fail2Ban taraf\u0131ndan eklenen kurallar\u0131 kabul etti\u011finden emin olun. <code>sudo iptables -L<\/code> komutuyla mevcut iptables kurallar\u0131n\u0131 kontrol edebilirsiniz. Fail2Ban&#8217;\u0131n ekledi\u011fi zincirleri g\u00f6rmelisiniz (\u00f6rne\u011fin <code>f2b-sshd<\/code>).<\/li>\n<\/ul>\n<\/li>\n<li>\n<h4>Yanl\u0131\u015f Log Yolu veya Filtre<\/h4>\n<p>        Log dosyas\u0131n\u0131n do\u011fru yolda oldu\u011fundan ve Fail2Ban&#8217;\u0131n bu dosyay\u0131 okuma izinlerine sahip oldu\u011fundan emin olun. Filtre dosyas\u0131 i\u00e7inde kullan\u0131lan regex desenlerinin, log dosyas\u0131ndaki hata mesajlar\u0131yla tam olarak e\u015fle\u015fti\u011finden emin olmak i\u00e7in <code>fail2ban-regex<\/code> arac\u0131n\u0131 kullan\u0131n.<\/li>\n<\/ul>\n<h2>Sonu\u00e7<\/h2>\n<p>SSH, modern sunucu y\u00f6netiminin temel ta\u015f\u0131d\u0131r ve bu nedenle g\u00fcvenli\u011finin sa\u011flanmas\u0131 b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r. Bu makalede ele ald\u0131\u011f\u0131m\u0131z gibi, Fail2Ban, Debian 11 sunucunuzdaki SSH servisini brute-force ve s\u00f6zl\u00fck sald\u0131r\u0131lar\u0131na kar\u015f\u0131 korumak i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. Kurulumu ve temel yap\u0131land\u0131rmas\u0131 nispeten basit olsa da, <code>jail.local<\/code> dosyas\u0131n\u0131 do\u011fru bir \u015fekilde ayarlamak, <code>ignoreip<\/code>, <code>bantime<\/code>, <code>findtime<\/code> ve <code>maxretry<\/code> gibi parametreleri ihtiya\u00e7lar\u0131n\u0131za g\u00f6re optimize etmek, etkili bir savunma mekanizmas\u0131 olu\u015fturman\u0131n anahtar\u0131d\u0131r.<\/p>\n<p>Fail2Ban&#8217;\u0131 kullanarak, sunucunuzun log dosyalar\u0131n\u0131 proaktif bir \u015fekilde izleyebilir ve k\u00f6t\u00fc niyetli IP adreslerini otomatik olarak yasaklayarak sald\u0131r\u0131 y\u00fczeyini \u00f6nemli \u00f6l\u00e7\u00fcde azaltabilirsiniz. Ayr\u0131ca, e-posta bildirimleri gibi geli\u015fmi\u015f yap\u0131land\u0131rmalar sayesinde g\u00fcvenlik olaylar\u0131ndan an\u0131nda haberdar olabilirsiniz. SSH portunu de\u011fi\u015ftirme, root giri\u015fini devre d\u0131\u015f\u0131 b\u0131rakma ve anahtar tabanl\u0131 kimlik do\u011frulama kullanma gibi SSH en iyi uygulamalar\u0131n\u0131 Fail2Ban ile birle\u015ftirmek, sunucunuz i\u00e7in \u00e7ok katmanl\u0131 ve sa\u011flam bir g\u00fcvenlik duru\u015fu sa\u011flar.<\/p>\n<p>Unutmay\u0131n ki g\u00fcvenlik s\u00fcrekli bir s\u00fcre\u00e7tir. Sisteminizi ve Fail2Ban&#8217;\u0131 d\u00fczenli olarak g\u00fcncellemek, loglar\u0131 periyodik olarak incelemek ve g\u00fcvenlik yap\u0131land\u0131rmalar\u0131n\u0131z\u0131 g\u00f6zden ge\u00e7irmek, sunucunuzun uzun vadede g\u00fcvende kalmas\u0131n\u0131 sa\u011flayacakt\u0131r. Fail2Ban, bu s\u00fcre\u00e7te size b\u00fcy\u00fck \u00f6l\u00e7\u00fcde yard\u0131mc\u0131 olacak, g\u00fcvenilir ve etkili bir m\u00fcttefiktir. Bu rehberdeki ad\u0131mlar\u0131 takip ederek, Debian 11 sunucunuzdaki SSH servisini sald\u0131r\u0131lara kar\u015f\u0131 \u00e7ok daha diren\u00e7li hale getirebilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"SSH&#8217;i Fail2Ban ile Debian 11&#8217;de Koruma Rehberi\nGiri\u015f\nSunucular\u0131m\u0131z i\u00e7in en kritik g\u00fcvenlik \u00f6nlemlerinden biri, uzaktan eri\u015fim protokollerini d","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":[241],"tags":[],"class_list":{"0":"post-37803","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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>SSH&#039;i Fail2Ban ile Debian 11&#039;de Koruma Rehberi - 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\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SSH&#039;i Fail2Ban ile Debian 11&#039;de Koruma Rehberi\" \/>\n<meta property=\"og:description\" content=\"SSH&#039;i Fail2Ban ile Debian 11&#039;de Koruma Rehberi Giri\u015f Sunucular\u0131m\u0131z i\u00e7in en kritik g\u00fcvenlik \u00f6nlemlerinden biri, uzaktan eri\u015fim protokollerini d\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-15T17:40:54+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=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"SSH&#8217;i Fail2Ban ile Debian 11&#8217;de Koruma Rehberi\",\"datePublished\":\"2026-01-15T17:40:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/\"},\"wordCount\":3864,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/\",\"name\":\"SSH'i Fail2Ban ile Debian 11'de Koruma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-15T17:40:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SSH&#8217;i Fail2Ban ile Debian 11&#8217;de Koruma Rehberi\"}]},{\"@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":"SSH'i Fail2Ban ile Debian 11'de Koruma Rehberi - 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\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"SSH'i Fail2Ban ile Debian 11'de Koruma Rehberi","og_description":"SSH'i Fail2Ban ile Debian 11'de Koruma Rehberi Giri\u015f Sunucular\u0131m\u0131z i\u00e7in en kritik g\u00fcvenlik \u00f6nlemlerinden biri, uzaktan eri\u015fim protokollerini d","og_url":"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-15T17:40:54+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"SSH&#8217;i Fail2Ban ile Debian 11&#8217;de Koruma Rehberi","datePublished":"2026-01-15T17:40:54+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/"},"wordCount":3864,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/","name":"SSH'i Fail2Ban ile Debian 11'de Koruma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-15T17:40:54+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/sshi-fail2ban-ile-debian-11de-koruma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SSH&#8217;i Fail2Ban ile Debian 11&#8217;de Koruma Rehberi"}]},{"@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\/37803","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=37803"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37803\/revisions"}],"predecessor-version":[{"id":37804,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37803\/revisions\/37804"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}