FailToBan kurulumu

Selamlar millet Ubuntu 24.04 üzerinde SSH bağlantınız var ve bunu sürekli olarak rahatsız eden insanlar mı var. 😛 Gelin onları Fail2Ban ile engelleyelim.

Fail2Ban nedir ilk önce bunu açıklamam gerekirse;

Linux sistemlerinde çalıştırabildiğiniz bir güvenlik aracıdır. Birden çok giriş denemesi yapıldığında tespit eder ve o ip adresi hakkında yasal işlemleri başlatır. 😛 yani banlar. Bunu geçici ya da mühebbet yapabilir.

Brute-Force (Kaba kuvvet) ile şifreni sürekli tahmin etmeye çalışan insanı engeller. Log dosyalarınızı takip eder ve hatalı denemeler olursa yargı dağıtır ve otomatik olarak firewall üzerinden engelleme yapar.

Çok hafif yani sisteminizi yormayan bu program, otomatik olarak işlemler yapar ve sizin müdahaleniz olmadan işleri halleder.

– İlk olarak kuruluma başlayalım :

> sudo apt install fail2ban -y
> sudo systemctl status fail2ban
> sudo systemctl enable fail2ban

– SSH bağlantısı için ayarlamaları yapacağız :

> sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Orjinal yapılandırma dosyası değiştirilmemesi gerekmektedir. Ondan dolayı cp komudu ile jail.local adından bir dosya oluşturuyoruz.

> sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
findtime = 600
bantime = 600

sshd alanı bulunur ve alt kısmına yukarıdaki ayarlamaları yaparız.
enabled : sshd kontrol aktifleştirir.
port : ssh portunu belirtmiş oluruz. özelleştirdiyseniz onu yazabilirsiniz.
logpath : ssh loglarını buradan okur. %(sshd_log)s bu bir değişkendir ve /var/log/auth.log’a denk gelir. İstediğimiz gibi değiştirebiliriz bu alanları.
backend : logları nasıl okuyacağını bu ayarla belirler. %(sshd_backend)s bir değişkendir ve systemd’e denk gelir.
maxretry : engellemeden önceki max tekrar sayısı.
findtime : burada yazdığımız saniye içerisinde maxretry hatası yapılırsa engellenir.
bantime : engellenen ip’nin ne kadar süre engelli kalacağını belirtir. Bu alana -1 yazarsanız ip’ler süresiz banlanır ve elle silmeniz gerekir.

> sudo systemctl restart fail2ban

Ayarlamalarımız aktif olması için restart atılır.

> sudo fail2ban-client status
> sudo fail2ban-client status sshd
> sudo tail -f /var/log/fail2ban.log

Komutlarımız sayesinde status ile neleri aktifleştirdiğiniz, sonuna sshd yazarsanız da kaç başarız deneme yapılmış, hangi ip banlanmış onu görebilirsiniz. Test kısmı basit putty açıyorsunuz ve denemeler yapıyorsunuz. Ayrıntılı log‘lar görmek istiyorsanızda fail2ban.log dosyasına bakabilirsiniz.

> nano /etc/fail2ban/paths-arch.conf

%(sshd_log)s ve %(sshd_backend)s gibi değişkenlerin tanımlandığı alanı merak ediyorsanız, yukarıdaki komudu çalıştırabilirsiniz.

– Banlanan ip’yi elle açmak :

> sudo fail2ban-client set sshd unbanip 192.168.1.4

– Birden fazla uygulama için kontrol etmek isterseniz :

> ls /etc/fail2ban/filter.d/

Alanından filtre‘leri kontrol edebilirsiniz. Bu alanda ekleyeceğiniz uygulamanın filtresi olması gerekiyor.

> sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
findtime = 600
bantime = 600

[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 3
findtime = 600
bantime = 600

Yukarıdaki şekilde ayarlamalar yapıyorsunuz. Bazı programların ayarlamaları zaten oluyor. [nginx-http-auth] adlarını aratıp, alt kısımlarında uygulamasını yapabilirsiniz. Yani istediğiniz kadar uygulamayı başlıklarını bulup ekleyebilirsiniz.

> sudo systemctl restart fail2ban
> sudo fail2ban-client status

Daha sonra programımıza Restart atıyoruz ve Status komudu ile hangi filter‘ların etkinleştirildiğini görebilirsiniz.

Bir yazımın daha sonuna geldik IT‘ci dostum. Fail2Ban yapılandırmasını bu şekilde yapabilirsin.

Yazılarımı yararlı buluyorsanız ve bana destek vermek isterseniz de Youtube, Instagram ve Tiktok üzerinden SistemDostu kanalımı bulabilir ve Takip edebilirsiniz. Bu benim için motivasyon kaynağı oluyor arkadaşlar desteğinizi bekliyorum. O zaman herkeslere kolaylıklar diliyorum. 🙂

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir