{"id":43366,"date":"2026-07-16T08:00:30","date_gmt":"2026-07-16T05:00:30","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=43366"},"modified":"2026-07-16T08:00:51","modified_gmt":"2026-07-16T05:00:51","slug":"rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/","title":{"rendered":"Rocky Linux 9&#8217;da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama"},"content":{"rendered":"<h2>Rocky Linux 9&#8217;da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama<\/h2>\n<p>SSH (Secure Shell), sunucular\u0131n\u0131za g\u00fcvenli bir \u015fekilde uzaktan eri\u015fim sa\u011flaman\u0131n temel yoludur. Ancak, internete a\u00e7\u0131k bir SSH servisi, k\u00f6t\u00fc niyetli sald\u0131rganlar\u0131n hedefi haline gelebilir. Kaba kuvvet sald\u0131r\u0131lar\u0131 (brute-force attacks), parolay\u0131 tahmin etme giri\u015fimleri ve di\u011fer yetkisiz eri\u015fim denemeleri, sunucunuzun g\u00fcvenli\u011fini ciddi \u015fekilde tehlikeye atabilir. Bu t\u00fcr sald\u0131r\u0131lara kar\u015f\u0131 proaktif bir savunma mekanizmas\u0131 olu\u015fturmak hayati \u00f6nem ta\u015f\u0131r. Rocky Linux 9 \u00fczerinde SSH g\u00fcvenli\u011fini art\u0131rmak i\u00e7in etkili bir ara\u00e7 olan Fail2Ban&#8217;\u0131 nas\u0131l kurup yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 bu makalede detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z.<\/p>\n<p>Fail2Ban, log dosyalar\u0131n\u0131 izleyerek belirli bir e\u015fi\u011fi a\u015fan ba\u015far\u0131s\u0131z giri\u015f denemelerini tespit eden ve bu IP adreslerini ge\u00e7ici veya kal\u0131c\u0131 olarak engelleyen bir uygulamad\u0131r. Otomatikle\u015ftirilmi\u015f bu s\u00fcre\u00e7, manuel m\u00fcdahaleye gerek kalmadan sunucunuzu s\u00fcrekli olarak koruma alt\u0131na al\u0131r.<\/p>\n<h3>Rocky Linux 9&#8217;da Fail2Ban Kurulumu<\/h3>\n<p>Fail2Ban&#8217;\u0131 Rocky Linux 9 sisteminize kurmak olduk\u00e7a basittir. Sisteminizin g\u00fcncel oldu\u011fundan emin olmakla ba\u015flayal\u0131m.<\/p>\n<h4>Sistem G\u00fcncellemesi<\/h4>\n<p>Kuruluma ba\u015flamadan \u00f6nce, paket listelerini g\u00fcncelleyerek ve mevcut paketleri y\u00fckselterek sisteminizin en son s\u00fcr\u00fcme sahip oldu\u011fundan emin olun. Bu, olas\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n kapat\u0131lmas\u0131na ve uyumluluk sorunlar\u0131n\u0131n \u00f6nlenmesine yard\u0131mc\u0131 olur.<\/p>\n<pre><code class=\"language-bash\">sudo dnf update -y<\/code><\/pre>\n<p>Bu komut, sisteminizdeki t\u00fcm paketleri en son s\u00fcr\u00fcmlerine g\u00fcncelleyecektir.<\/p>\n<h4>Fail2Ban Paketinin Kurulumu<\/h4>\n<p>Rocky Linux 9&#8217;da Fail2Ban, varsay\u0131lan olarak AppStream deposunda bulunur. A\u015fa\u011f\u0131daki komutu kullanarak Fail2Ban&#8217;\u0131 kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo dnf install fail2ban -y<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, Fail2Ban servisinin otomatik olarak ba\u015flamas\u0131 ve sistem ba\u015flang\u0131c\u0131nda aktif olmas\u0131 i\u00e7in gerekli yap\u0131land\u0131rmay\u0131 yapmam\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable fail2ban\nsudo systemctl start fail2ban<\/code><\/pre>\n<p>Servisin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status fail2ban<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;active (running)&#8221; ifadesini g\u00f6rmelisiniz.<\/p>\n<h3>Fail2Ban Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Fail2Ban&#8217;\u0131n temel yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/fail2ban\/jail.conf<\/code>&#8216;tur. Ancak, bu dosyay\u0131 do\u011frudan d\u00fczenlemek yerine, de\u011fi\u015fiklikleri <code>jail.local<\/code> adl\u0131 bir dosyada yapman\u0131z \u00f6nerilir. Bu, paket g\u00fcncellemeleri s\u0131ras\u0131nda <code>jail.conf<\/code> dosyas\u0131n\u0131n \u00fczerine yaz\u0131ld\u0131\u011f\u0131nda ayarlar\u0131n\u0131z\u0131n kaybolmas\u0131n\u0131 \u00f6nler.<\/p>\n<h4>jail.local Dosyas\u0131n\u0131n Olu\u015fturulmas\u0131<\/h4>\n<p>\u00d6ncelikle, <code>jail.conf<\/code> dosyas\u0131n\u0131n bir kopyas\u0131n\u0131 <code>jail.local<\/code> dosyas\u0131na olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo cp \/etc\/fail2ban\/jail.conf \/etc\/fail2ban\/jail.local<\/code><\/pre>\n<p>\u015eimdi, <code>\/etc\/fail2ban\/jail.local<\/code> dosyas\u0131n\u0131 tercih etti\u011finiz metin d\u00fczenleyici ile a\u00e7\u0131n ve SSH servisinin g\u00fcvenli\u011fini sa\u011flamak i\u00e7in gerekli ayarlamalar\u0131 yap\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/fail2ban\/jail.local<\/code><\/pre>\n<p>Veya <code>vim<\/code> kullan\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo vim \/etc\/fail2ban\/jail.local<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7inde dikkat etmeniz gereken baz\u0131 \u00f6nemli b\u00f6l\u00fcmler \u015funlard\u0131r:<\/p>\n<h4>Genel Ayarlar ([DEFAULT] B\u00f6l\u00fcm\u00fc)<\/h4>\n<p><code>[DEFAULT]<\/code> b\u00f6l\u00fcm\u00fc, Fail2Ban&#8217;\u0131n genel davran\u0131\u015f\u0131n\u0131 belirler. Bu b\u00f6l\u00fcmdeki ayarlar, \u00f6zel olarak yap\u0131land\u0131r\u0131lmam\u0131\u015f di\u011fer servisler i\u00e7in varsay\u0131lan de\u011ferler olarak kullan\u0131l\u0131r.<\/p>\n<p>*   <strong><code>ignoreip<\/code><\/strong>: Bu parametre, engellenmemesi gereken IP adreslerini veya IP aral\u0131klar\u0131n\u0131 belirtir. Kendi a\u011f\u0131n\u0131zdaki veya g\u00fcvenilir g\u00f6rd\u00fc\u011f\u00fcn\u00fcz IP adreslerini buraya ekleyebilirsiniz. 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<\/code><\/pre>\n<p>*   <strong><code>bantime<\/code><\/strong>: Bir IP adresinin ne kadar s\u00fcreyle engellenece\u011fini belirler. S\u00fcre, saniye cinsinden belirtilir. \u00d6rne\u011fin, <code>10m<\/code> 10 dakika, <code>1h<\/code> 1 saat, <code>1d<\/code> 1 g\u00fcn anlam\u0131na gelir. Varsay\u0131lan olarak genellikle <code>10m<\/code> olarak ayarlanm\u0131\u015ft\u0131r. Daha uzun bir s\u00fcre belirlemek, sald\u0131rganlar\u0131n tekrar deneme \u015fans\u0131n\u0131 azalt\u0131r.<\/p>\n<pre><code class=\"language-ini\">bantime = 1h<\/code><\/pre>\n<p>*   <strong><code>findtime<\/code><\/strong>: Bir IP adresinin engellenmesi i\u00e7in belirli bir s\u00fcre i\u00e7inde ka\u00e7 ba\u015far\u0131s\u0131z deneme yapmas\u0131 gerekti\u011fini belirler. Bu s\u00fcre de saniye cinsinden veya zaman birimleri ile ifade edilir.<\/p>\n<pre><code class=\"language-ini\">findtime = 10m<\/code><\/pre>\n<p>*   <strong><code>maxretry<\/code><\/strong>: Bir IP adresinin <code>findtime<\/code> s\u00fcresi i\u00e7inde ka\u00e7 kez ba\u015far\u0131s\u0131z deneme yapmas\u0131 durumunda engellenece\u011fini belirler.<\/p>\n<pre><code class=\"language-ini\">maxretry = 5<\/code><\/pre>\n<p>*   <strong><code>backend<\/code><\/strong>: Fail2Ban&#8217;\u0131n log dosyalar\u0131n\u0131 nas\u0131l izleyece\u011fini belirler. Genellikle <code>auto<\/code> olarak b\u0131rak\u0131l\u0131r, bu da Fail2Ban&#8217;\u0131n sisteminiz i\u00e7in en uygun backend&#8217;i otomatik olarak se\u00e7mesini sa\u011flar.<\/p>\n<pre><code class=\"language-ini\">backend = auto<\/code><\/pre>\n<p>*   <strong><code>destemail<\/code><\/strong>: Engellenen IP adresleri hakk\u0131nda bildirim almak istedi\u011finiz e-posta adresini belirtir. Bu \u00f6zelli\u011fin \u00e7al\u0131\u015fmas\u0131 i\u00e7in sunucunuzda bir e-posta g\u00f6nderme mekanizmas\u0131n\u0131n (\u00f6rne\u011fin <code>sendmail<\/code> veya <code>postfix<\/code>) yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekir.<\/p>\n<pre><code class=\"language-ini\">destemail = your_email@example.com<\/code><\/pre>\n<p>*   <strong><code>sendername<\/code><\/strong>: E-posta bildirimlerinde kullan\u0131lacak g\u00f6nderici ad\u0131n\u0131 belirtir.<\/p>\n<pre><code class=\"language-ini\">sendername = Fail2Ban<\/code><\/pre>\n<p>*   <strong><code>mta<\/code><\/strong>: E-posta g\u00f6ndermek i\u00e7in kullan\u0131lacak posta aktar\u0131m ajans\u0131n\u0131 (Mail Transfer Agent &#8211; MTA) belirtir. Yayg\u0131n se\u00e7enekler <code>sendmail<\/code> veya <code>postfix<\/code>&#8216;tir.<\/p>\n<pre><code class=\"language-ini\">mta = sendmail<\/code><\/pre>\n<p>*   <strong><code>action<\/code><\/strong>: Bir IP adresi engellendi\u011finde hangi eylemlerin ger\u00e7ekle\u015ftirilece\u011fini belirler. Varsay\u0131lan olarak genellikle \u015funlar\u0131 i\u00e7erir:<\/p>\n<pre><code class=\"language-ini\">action = %(action_mw)s<\/code><\/pre>\n<p>    Bu, IP adresini engellemek (<code>action_<\/code>) ve ilgili loglar\u0131 e-posta ile g\u00f6ndermek (<code>mw<\/code> &#8211; mail with whois) anlam\u0131na gelir. Farkl\u0131 eylem se\u00e7enekleri mevcuttur:<br \/>\n    *   <code>%(action_)s<\/code>: Sadece engelleme.<br \/>\n    *   <code>%(action_mw)s<\/code>: Engelleme ve whois bilgisiyle e-posta g\u00f6nderme.<br \/>\n    *   <code>%(action_mwl)s<\/code>: Engelleme, whois bilgisi ve log sat\u0131rlar\u0131yla e-posta g\u00f6nderme.<br \/>\n    *   <code>%(action_xbl)s<\/code>: Engelleme ve AbuseIPDB gibi harici servislere bildirim g\u00f6nderme (ek yap\u0131land\u0131rma gerektirebilir).<\/p>\n<h4>SSH Korumas\u0131 ([sshd] B\u00f6l\u00fcm\u00fc)<\/h4>\n<p>SSH servisinin korunmas\u0131n\u0131 etkinle\u015ftirmek i\u00e7in <code>[sshd]<\/code> b\u00f6l\u00fcm\u00fcn\u00fc bulman\u0131z ve a\u015fa\u011f\u0131daki ayarlar\u0131 yapman\u0131z gerekir. E\u011fer bu b\u00f6l\u00fcm yoksa, kendiniz ekleyebilirsiniz.<\/p>\n<p>*   <strong><code>enabled<\/code><\/strong>: Bu ayar\u0131 <code>true<\/code> olarak de\u011fi\u015ftirerek SSH korumas\u0131n\u0131 etkinle\u015ftirin.<\/p>\n<pre><code class=\"language-ini\">enabled = true<\/code><\/pre>\n<p>*   <strong><code>port<\/code><\/strong>: SSH servisinizin \u00e7al\u0131\u015ft\u0131\u011f\u0131 portu belirtin. Varsay\u0131lan port 22&#8217;dir. E\u011fer SSH portunuzu de\u011fi\u015ftirdiyseniz, buraya do\u011fru port numaras\u0131n\u0131 girin.<\/p>\n<pre><code class=\"language-ini\">port = ssh<\/code><\/pre>\n<p>    Veya \u00f6zel bir port kullan\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-ini\">port = 2222<\/code><\/pre>\n<p>*   <strong><code>filter<\/code><\/strong>: Bu, Fail2Ban&#8217;\u0131n hangi filtreyi kullanaca\u011f\u0131n\u0131 belirtir. <code>sshd<\/code> filtresi, SSH loglar\u0131nda ba\u015far\u0131s\u0131z giri\u015f denemelerini tespit etmek i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bu genellikle varsay\u0131lan olarak do\u011fru \u015fekilde ayarlanm\u0131\u015ft\u0131r.<\/p>\n<pre><code class=\"language-ini\">filter = sshd<\/code><\/pre>\n<p>*   <strong><code>logpath<\/code><\/strong>: Fail2Ban&#8217;\u0131n SSH loglar\u0131n\u0131 izleyece\u011fi yolu belirtir. Rocky Linux 9&#8217;da bu genellikle <code>\/var\/log\/secure<\/code>&#8216;dur.<\/p>\n<pre><code class=\"language-ini\">logpath = %(sshd_log)s<\/code><\/pre>\n<p>    <code>%(sshd_log)s<\/code> genellikle <code>\/var\/log\/secure<\/code>&#8216;a i\u015faret eder.<\/p>\n<p>*   <strong><code>maxretry<\/code><\/strong> ve <strong><code>findtime<\/code><\/strong>: Bu parametreler, <code>[DEFAULT]<\/code> b\u00f6l\u00fcm\u00fcndeki ayarlar\u0131 ge\u00e7ersiz k\u0131labilir. SSH i\u00e7in daha s\u0131k\u0131 veya daha gev\u015fek kurallar belirlemek isterseniz, bu de\u011ferleri burada yeniden tan\u0131mlayabilirsiniz. \u00d6rne\u011fin, SSH i\u00e7in 5 yerine 3 ba\u015far\u0131s\u0131z denemede engelleme yapmak isteyebilirsiniz.<\/p>\n<pre><code class=\"language-ini\">maxretry = 3\n    findtime = 5m<\/code><\/pre>\n<p>*   <strong><code>bantime<\/code><\/strong>: SSH i\u00e7in de \u00f6zel bir engelleme s\u00fcresi belirleyebilirsiniz.<\/p>\n<pre><code class=\"language-ini\">bantime = 1d<\/code><\/pre>\n<p>T\u00fcm ayarlar\u0131 yapt\u0131ktan sonra, <code>jail.local<\/code> dosyas\u0131n\u0131 kaydedip kapat\u0131n.<\/p>\n<h4>Fail2Ban Servisini Yeniden Ba\u015flatma<\/h4>\n<p>Yap\u0131land\u0131rma de\u011fi\u015fikliklerinin etkili olmas\u0131 i\u00e7in Fail2Ban servisini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart fail2ban<\/code><\/pre>\n<p>### Fail2Ban Durumunu Kontrol Etme ve Y\u00f6netme<\/p>\n<p>Fail2Ban&#8217;\u0131n do\u011fru \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek ve y\u00f6netmek i\u00e7in baz\u0131 komutlar kullanabilirsiniz.<\/p>\n<p>#### Fail2Ban Durumunu G\u00f6r\u00fcnt\u00fcleme<\/p>\n<p>Fail2Ban servisinin genel durumunu <code>systemctl status fail2ban<\/code> ile zaten kontrol ettik. Ancak, belirli bir koruma (jail) i\u00e7in durumu g\u00f6rmek isterseniz <code>fail2ban-client<\/code> arac\u0131n\u0131 kullanabilirsiniz.<\/p>\n<p>\u00d6rne\u011fin, SSH korumas\u0131n\u0131n durumunu g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client status sshd<\/code><\/pre>\n<p>Bu komut, aktif olan SSH korumas\u0131 hakk\u0131nda bilgi verecektir. E\u011fer koruma aktifse, engellenen IP adreslerinin bir listesini de g\u00f6rebilirsiniz.<\/p>\n<p>#### Engellenen IP Adreslerini Listeleme<\/p>\n<p>T\u00fcm aktif korumalar i\u00e7in engellenen IP adreslerini listelemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client status<\/code><\/pre>\n<p>Bu komut, Fail2Ban taraf\u0131ndan y\u00f6netilen t\u00fcm servisleri ve her bir servis i\u00e7in engellenen IP adreslerinin say\u0131s\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>#### Bir IP Adresini Manuel Olarak Engelleme<\/p>\n<p>Belirli bir IP adresini manuel olarak engellemek isterseniz:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client set sshd banip &lt;IP_ADRESI&gt;<\/code><\/pre>\n<p>\u00d6rne\u011fin, <code>192.168.1.100<\/code> IP adresini SSH i\u00e7in engellemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client set sshd banip 192.168.1.100<\/code><\/pre>\n<p>#### Bir IP Adresini Manuel Olarak Engellemeyi Kald\u0131rma<\/p>\n<p>Yanl\u0131\u015fl\u0131kla engellenen bir IP adresinin engellemesini kald\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client set sshd unbanip &lt;IP_ADRESI&gt;<\/code><\/pre>\n<p>\u00d6rne\u011fin, <code>192.168.1.100<\/code> IP adresinin engellemesini kald\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client set sshd unbanip 192.168.1.100<\/code><\/pre>\n<p>#### Fail2Ban&#8217;\u0131 Durdurma, Ba\u015flatma ve Yeniden Y\u00fckleme<\/p>\n<p>*   <strong>Durdurma<\/strong>:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop fail2ban<\/code><\/pre>\n<p>*   <strong>Ba\u015flatma<\/strong>:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start fail2ban<\/code><\/pre>\n<p>*   <strong>Yeniden Ba\u015flatma<\/strong>:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart fail2ban<\/code><\/pre>\n<p>*   <strong>Yap\u0131land\u0131rmay\u0131 Yeniden Y\u00fckleme<\/strong>: Yap\u0131land\u0131rma dosyalar\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin ard\u0131ndan servisi yeniden ba\u015flatmak yerine, sadece yap\u0131land\u0131rmay\u0131 yeniden y\u00fcklemek de m\u00fcmk\u00fcnd\u00fcr. Bu, servisin kesintiye u\u011framas\u0131n\u0131 \u00f6nler.<\/p>\n<pre><code class=\"language-bash\">sudo fail2ban-client reload<\/code><\/pre>\n<p>### Ek G\u00fcvenlik \u0130pu\u00e7lar\u0131 ve \u0130leri Yap\u0131land\u0131rmalar<\/p>\n<p>Fail2Ban, SSH g\u00fcvenli\u011fini art\u0131rmak i\u00e7in harika bir ara\u00e7t\u0131r, ancak tek ba\u015f\u0131na yeterli de\u011fildir. Daha g\u00fc\u00e7l\u00fc bir g\u00fcvenlik duru\u015fu i\u00e7in a\u015fa\u011f\u0131daki ek ipu\u00e7lar\u0131n\u0131 da g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131s\u0131n\u0131z:<\/p>\n<p>*   <strong>SSH Portunu De\u011fi\u015ftirme<\/strong>: Varsay\u0131lan SSH portu olan 22&#8217;yi kullanmak, otomatik taramalar\u0131n ilk hedefi olman\u0131za neden olur. Farkl\u0131 bir port numaras\u0131na ge\u00e7mek, sald\u0131rganlar\u0131n i\u015fini zorla\u015ft\u0131r\u0131r. <code>jail.local<\/code> dosyas\u0131nda <code>port<\/code> parametresini g\u00fcncellemeyi unutmay\u0131n.<\/p>\n<p>*   <strong>Parola Kimlik Do\u011frulamay\u0131 Devre D\u0131\u015f\u0131 B\u0131rakma ve SSH Anahtarlar\u0131n\u0131 Kullanma<\/strong>: Parola kimlik do\u011frulamas\u0131, kaba kuvvet sald\u0131r\u0131lar\u0131na kar\u015f\u0131 daha savunmas\u0131zd\u0131r. SSH anahtar \u00e7iftleri kullanarak parola gereksinimini kald\u0131r\u0131n. Bu, kimlik do\u011frulama i\u015flemini \u00e7ok daha g\u00fcvenli hale getirir. <code>sshd_config<\/code> dosyas\u0131nda <code>PasswordAuthentication no<\/code> ayar\u0131n\u0131 yaparak bunu etkinle\u015ftirebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/ssh\/sshd_config\n    # ...\n    PasswordAuthentication no\n    # ...\n    sudo systemctl restart sshd<\/code><\/pre>\n<p>*   <strong>Root Giri\u015fini Engelleme<\/strong>: Do\u011frudan <code>root<\/code> kullan\u0131c\u0131s\u0131 olarak SSH ile giri\u015f yapmay\u0131 engellemek, sald\u0131rganlar\u0131n en yetkili hesaba do\u011frudan eri\u015fimini zorla\u015ft\u0131r\u0131r. <code>sshd_config<\/code> dosyas\u0131nda <code>PermitRootLogin no<\/code> ayar\u0131n\u0131 yap\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/ssh\/sshd_config\n    # ...\n    PermitRootLogin no\n    # ...\n    sudo systemctl restart sshd<\/code><\/pre>\n<p>    Bu de\u011fi\u015fikli\u011fi yapmadan \u00f6nce, normal bir kullan\u0131c\u0131 hesab\u0131n\u0131zdan <code>sudo<\/code> komutunu kullanabildi\u011finizden emin olun.<\/p>\n<p>*   <strong>Fail2Ban Filtrelerini \u00d6zelle\u015ftirme<\/strong>: <code>\/etc\/fail2ban\/filter.d\/<\/code> dizininde bulunan filtre dosyalar\u0131n\u0131 (\u00f6rne\u011fin <code>sshd.conf<\/code>) inceleyerek veya kendi filtrelerinizi olu\u015fturarak Fail2Ban&#8217;\u0131n loglar\u0131 nas\u0131l analiz etti\u011fini daha spesifik hale getirebilirsiniz. Bu, daha karma\u015f\u0131k sald\u0131r\u0131 desenlerini tespit etmenize yard\u0131mc\u0131 olabilir.<\/p>\n<p>*   <strong>Fail2Ban Loglar\u0131n\u0131 \u0130zleme<\/strong>: Fail2Ban&#8217;\u0131n kendisi de loglar \u00fcretir. Bu loglar\u0131 d\u00fczenli olarak incelemek, potansiyel sorunlar\u0131 veya beklenmedik engellemeleri tespit etmenize yard\u0131mc\u0131 olabilir. Fail2Ban loglar\u0131 genellikle <code>\/var\/log\/fail2ban.log<\/code> dosyas\u0131nda bulunur.<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/fail2ban.log<\/code><\/pre>\n<p>*   <strong>Di\u011fer Servisleri Koruma<\/strong>: Fail2Ban sadece SSH ile s\u0131n\u0131rl\u0131 de\u011fildir. Web sunucular\u0131 (Apache, Nginx), FTP sunucular\u0131, e-posta sunucular\u0131 ve di\u011fer a\u011f servisleri i\u00e7in de Fail2Ban korumas\u0131 etkinle\u015ftirebilirsiniz. Her servis i\u00e7in ayr\u0131 bir <code>jail.local<\/code> b\u00f6l\u00fcm\u00fc olu\u015fturulur (\u00f6rne\u011fin <code>[apache-auth]<\/code>, <code>[nginx-http-auth]<\/code>).<\/p>\n<p>### Sonu\u00e7<\/p>\n<p>Rocky Linux 9 sisteminizde Fail2Ban&#8217;\u0131 kurup yap\u0131land\u0131rmak, SSH servisinizin g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131racakt\u0131r. Otomatikle\u015ftirilmi\u015f engelleme mekanizmas\u0131 sayesinde, sunucunuzu s\u00fcrekli olarak kaba kuvvet sald\u0131r\u0131lar\u0131na ve di\u011fer yetkisiz eri\u015fim denemelerine kar\u015f\u0131 koruyabilirsiniz. Yukar\u0131da belirtilen ek g\u00fcvenlik ipu\u00e7lar\u0131n\u0131 da uygulayarak, sunucunuzun genel g\u00fcvenlik duru\u015funu daha da g\u00fc\u00e7lendirebilirsiniz. Unutmay\u0131n ki g\u00fcvenlik s\u00fcrekli bir s\u00fcre\u00e7tir ve d\u00fczenli olarak sisteminizi g\u00f6zden ge\u00e7irmek, g\u00fcncel tutmak ve g\u00fcvenlik \u00f6nlemlerini iyile\u015ftirmek \u00f6nemlidir.<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/fail2ban-ssh-security-rocky-linux\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/fail2ban-ssh-security-rocky-linux<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"Rocky Linux 9&#8217;da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama SSH (Secure Shell), sunucular\u0131n\u0131za g\u00fcvenli bir \u015fekilde uzaktan eri\u015fim sa\u011flaman\u0131n temel yoludur.","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-43366","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>Rocky Linux 9&#039;da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama - 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\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rocky Linux 9&#039;da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama\" \/>\n<meta property=\"og:description\" content=\"Rocky Linux 9&#039;da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama SSH (Secure Shell), sunucular\u0131n\u0131za g\u00fcvenli bir \u015fekilde uzaktan eri\u015fim sa\u011flaman\u0131n temel yoludur.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-16T05:00:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-16T05:00:51+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=\"10 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Rocky Linux 9&#8217;da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama\",\"datePublished\":\"2026-07-16T05:00:30+00:00\",\"dateModified\":\"2026-07-16T05:00:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/\"},\"wordCount\":1730,\"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\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/\",\"name\":\"Rocky Linux 9'da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-07-16T05:00:30+00:00\",\"dateModified\":\"2026-07-16T05:00:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rocky Linux 9&#8217;da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama\"}]},{\"@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":"Rocky Linux 9'da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama - 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\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/","og_locale":"tr_TR","og_type":"article","og_title":"Rocky Linux 9'da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama","og_description":"Rocky Linux 9'da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama SSH (Secure Shell), sunucular\u0131n\u0131za g\u00fcvenli bir \u015fekilde uzaktan eri\u015fim sa\u011flaman\u0131n temel yoludur.","og_url":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-07-16T05:00:30+00:00","article_modified_time":"2026-07-16T05:00:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"10 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Rocky Linux 9&#8217;da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama","datePublished":"2026-07-16T05:00:30+00:00","dateModified":"2026-07-16T05:00:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/"},"wordCount":1730,"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\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/","url":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/","name":"Rocky Linux 9'da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-07-16T05:00:30+00:00","dateModified":"2026-07-16T05:00:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9da-ssh-guvenligini-fail2ban-ile-saglama\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Rocky Linux 9&#8217;da SSH G\u00fcvenli\u011fini Fail2Ban ile Sa\u011flama"}]},{"@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\/43366","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=43366"}],"version-history":[{"count":2,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43366\/revisions"}],"predecessor-version":[{"id":43368,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43366\/revisions\/43368"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=43366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=43366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=43366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}