Header Menu

Linux Sunucularında Fail2Ban ile Güvenlik Sağlama resim

Linux Sunucularında Fail2Ban ile Güvenlik Sağlama

Linux Sunucularında Fail2Ban ile Güvenlik Sağlama

Fail2Ban, Linux sunucularında SSH, Apache, Nginx ve diğer hizmetlere yönelik brute-force saldırılarını engellemek için kullanılan bir güvenlik aracıdır. Şüpheli IP adreslerini belirleyerek, belirli bir süre boyunca bu adresleri yasaklar ve sistemin güvenliğini artırır.


1. Fail2Ban Kurulumu

1.1. Ubuntu/Debian Tabanlı Dağıtımlarda

sudo apt update
sudo apt install fail2ban -y

1.2. CentOS/RHEL Tabanlı Dağıtımlarda

sudo yum install epel-release -y
sudo yum install fail2ban -y

1.3. Fail2Ban Servisini Başlatma ve Etkinleştirme

Kurulumdan sonra, hizmeti başlatıp otomatik başlamasını sağlamak için şu komutları kullanın:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Fail2Ban’ın çalışıp çalışmadığını kontrol etmek için:

sudo systemctl status fail2ban

2. Fail2Ban Yapılandırması

Varsayılan yapılandırma dosyaları /etc/fail2ban/ dizininde bulunur.
Ana yapılandırma dosyası jail.conf dosyasıdır, ancak doğrudan bu dosya üzerinde değişiklik yapmak yerine, jail.local dosyası oluşturarak özelleştirme yapmalıyız:

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

Ardından düzenlemek için:

sudo nano /etc/fail2ban/jail.local

3. Temel Yapılandırma Seçenekleri

jail.local dosyasında aşağıdaki temel ayarları yapılandırabilirsiniz:

[DEFAULT]
# Yasaklanan bir IP'nin ne kadar süreyle engelleneceğini belirler (saniye cinsinden)
bantime = 3600

# Bir IP'nin engellenmesi için kaç hatalı giriş denemesi yapılması gerektiğini belirler
maxretry = 5

# Hangi IP'lerin engellenmeyeceğini belirler (Whitelist)
ignoreip = 127.0.0.1/8 192.168.1.1

# Ban işlemi uygulandığında hangi işlem yapılacak (iptables, firewalld vb.)
banaction = iptables-multiport

# Günlük seviyesini belirler (INFO, WARN, ERROR, DEBUG)
loglevel = INFO

4. SSH Güvenliği İçin Fail2Ban Ayarları

SSH saldırılarını önlemek için [sshd] bölümü aşağıdaki gibi yapılandırılabilir:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600

Eğer SSH, varsayılan 22 portu yerine farklı bir port kullanıyorsa, port satırını güncelleyin:

port = 2222

Fail2Ban’ın Nginx, Apache, vsftpd Gibi Hizmetleri Korumak İçin Yapılandırılması

Aşağıdaki hizmetler için Fail2Ban’ı etkinleştirebilirsiniz:

Apache ve Nginx Koruması:

[apache-auth]
enabled = true
port = http,https
logpath = /var/log/apache2/error.log
maxretry = 5

vsftpd Koruması:

[vsftpd]
enabled = true
port = ftp
logpath = /var/log/vsftpd.log
maxretry = 5

Postfix (E-posta Sunucusu) Koruması:

[postfix]
enabled = true
port = smtp,465,submission
logpath = /var/log/mail.log
maxretry = 5

5. Fail2Ban Servisini Yeniden Başlatma

Yapılan değişikliklerin aktif olması için Fail2Ban servisini yeniden başlatın:

sudo systemctl restart fail2ban

Fail2Ban’ın düzgün çalışıp çalışmadığını doğrulamak için:

sudo fail2ban-client status

Eğer belirli bir jail’i (örneğin SSH) kontrol etmek isterseniz:

sudo fail2ban-client status sshd

6. Fail2Ban ile Yasaklı IP'leri Yönetme

Fail2Ban tarafından yasaklanan IP adreslerini listelemek için:

sudo fail2ban-client status sshd

Belirli bir IP’yi yasaklamak için:

sudo fail2ban-client set sshd banip 192.168.1.100

Belirli bir IP’yi yasaktan çıkarmak için:

sudo fail2ban-client set sshd unbanip 192.168.1.100

7. Fail2Ban Loglarını İnceleme

Fail2Ban, /var/log/fail2ban.log dosyasında olayları kaydeder. Logları görüntülemek için:

sudo tail -f /var/log/fail2ban.log

8. Fail2Ban ile Kalıcı IP Engelleme

Eğer belirli bir IP’yi süresiz olarak engellemek istiyorsanız, iptables kullanabilirsiniz:

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

Bunu kalıcı hale getirmek için iptables kurallarını kaydedin:

sudo iptables-save > /etc/iptables/rules.v4

9. Fail2Ban’i Firewalld ile Kullanma (CentOS/RHEL)

Eğer Firewalld kullanıyorsanız, banaction seçeneğini firewalld olarak ayarlayın:

banaction = firewallcmd-ipset

Ve Firewalld’i yeniden yükleyin:

sudo firewall-cmd --reload

Sonuç

Fail2Ban, Linux sunucularında SSH, web sunucuları, FTP ve e-posta sunucularına karşı güvenlik sağlayarak brute-force saldırılarını engelleyen güçlü bir araçtır. Temel adımlar şunlardır:

Fail2Ban kurulumunu yapın.
SSH ve diğer hizmetleri koruyacak şekilde yapılandırın.
Fail2Ban’ı başlatıp otomatik çalışmasını sağlayın.
Engellenen IP’leri yönetin ve logları takip edin.

Bu adımları uygulayarak, Linux sunucularınızı yetkisiz erişimlere karşı daha güvenli hale getirebilirsiniz. 

76 Görüntüleme