Fail2ban Nedir?
Fail2ban, Linux tabanlı sistemlerde, belirli bir süre içinde tekrarlanan başarısız girişimlerin ardından IP adreslerini engelleyerek saldırılara karşı önlem alan harika bir güvenlik aracıdır. SSH, Apache, Nginx gibi servislerde güvenlik sağlamak için çok etkilidir.
Haydi, şimdi Fail2ban'ı nasıl kuracağımızı ve kullanacağımızı adım adım inceleyelim!
Fail2ban Kurulum ve Yapılandırma
Fail2ban'ı Linux Sunucunuza Kurma
Fail2ban, genellikle çoğu Linux dağıtımında varsayılan olarak bulunur, ancak yoksa, aşağıdaki komutla kolayca kurabilirsiniz:
sudo apt update
sudo apt install fail2banKurulum tamamlandığında, Fail2ban otomatik olarak başlatılacaktır. Ancak, Fail2ban'ı yapılandırmak için biraz daha işlem yapmamız gerekiyor.
Fail2ban Yapılandırması
Fail2ban’ın temel yapılandırma dosyası /etc/fail2ban/jail.conf'tadır. Ancak, bu dosyayı doğrudan düzenlemek yerine jail.local dosyasını kullanmanızı öneririz. Böylece güncellemeler sırasında yapılandırmalarınız kaybolmaz.
Yapılandırma Dosyasını Düzenleme
Öncelikle jail.local dosyasını oluşturmalıyız:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localŞimdi, jail.local dosyasını düzenleyebiliriz:
sudo nano /etc/fail2ban/jail.localBu dosyada yapmanız gereken ilk şey, enabled = true ayarlarını aktif hale getirmektir. Bu sayede Fail2ban aktif olacaktır.
SSH Güvenliği ile Başlayalım
Linux sunucularında en yaygın saldırı türlerinden biri, SSH protokolü üzerinden yapılan brute force (kaba kuvvet) saldırılarıdır. Fail2ban, SSH üzerinde başarısız giriş denemelerini takip eder ve bu tür saldırılara karşı anında engellemeler yapar.
Aşağıdaki satırları jail.local dosyasına ekleyin veya mevcut olan satırları şu şekilde düzenleyin:
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 3
bantime = 600Yukarıdaki ayarlarla, Fail2ban, bir IP'nin 3 defa hatalı şifre girerek giriş yapmaya çalışması durumunda o IP'yi 10 dakika süreyle engelleyecektir. Bantime, engelleme süresini dakika olarak belirtir.
Apache ve Nginx İçin Yapılandırma
Apache veya Nginx gibi web sunucuları da sıklıkla hedef alınır. Bu sunucularda brute force saldırıları, özellikle yönetici paneli girişlerinde yoğunlaşır. Fail2ban’ı bu sunucular için de yapılandırarak güvenliğinizi artırabilirsiniz.
Apache İçin Fail2ban Yapılandırması:
[apache]
enabled = true
logpath = /var/log/apache*error.log
maxretry = 3
bantime = 600Nginx İçin Fail2ban Yapılandırması:
[nginx-http-auth]
enabled = true
logpath = /var/log/nginx/*access.log
maxretry = 3
bantime = 600Fail2ban'ı Yeniden Başlatma
Yapılandırma değişikliklerini kaydettikten sonra Fail2ban’ı yeniden başlatmanız gerekecek:
sudo systemctl restart fail2banBundan sonra Fail2ban, belirlediğiniz kurallar doğrultusunda çalışmaya başlayacaktır.
Fail2ban'ı Test Etmek
Fail2ban'ı doğru bir şekilde yapılandırdığınızdan emin olmak için, test etmeniz önemlidir. Bir SSH bağlantısı üzerinden başarısız bir giriş denemesi yaparak, Fail2ban’ın doğru şekilde IP’yi engellediğini kontrol edebilirsiniz.
Testi yapmak için, SSH üzerinden yanlış bir kullanıcı adı veya şifre ile giriş yapmayı deneyin. 3 başarısız giriş sonrası, Fail2ban’ın o IP'yi engellediğini gözlemleyeceksiniz.
Fail2ban Durumunu Kontrol Etme:
Engellenen IP'leri kontrol etmek için şu komutu kullanabilirsiniz:
sudo fail2ban-client status sshdSonuç: Linux Sunucunuzda Güvenlik Sağlama
Fail2ban, Linux tabanlı sunucularda güvenliği artırmanın en etkili ve basit yollarından birisidir. Yapılandırmayı doğru şekilde yaparak, sunucunuzun güvenliğini büyük ölçüde artırabilir ve olası saldırılara karşı sağlam bir savunma duvarı oluşturabilirsiniz.
Unutmayın, güvenlik bir süreçtir ve sürekli olarak güncel tutulması gerekir. Fail2ban gibi araçlar, size önemli bir avantaj sağlar ancak diğer güvenlik önlemleriyle birleşerek etkili bir sonuç verir.