Nginx brute-force saldırılarına karşı koruma nasıl sağlanır? (fail2ban)

Giriş

Brute-force saldırıları, kullanıcı adı ve şifre kombinasyonlarını deneyerek bir sisteme yetkisiz erişim sağlamaya çalışan otomatik saldırılardır. Nginx web sunucuları, bu tür saldırılara maruz kalabilmektedir. Nginx’i kullanan sunucuları korumanın etkili yollarından biri de Fail2ban kullanmaktır. Fail2ban, log dosyalarını izleyerek kötü niyetli IP adreslerini tespit eder ve bu adresleri geçici olarak veya kalıcı olarak engeller. Bu yöntem, brute-force saldırılarına karşı savunmanın önemli bir parçası olarak ön plana çıkmaktadır.

Fail2ban Nedir?

Fail2ban, sistemdeki log dosyalarını analiz eden bir güvenlik aracı olup, belirtilen koşullara uyan IP adreslerini engellemektedir. Genellikle SSH saldırılarına karşı kullanılsa da, birçok farklı hizmet ve uygulama ile entegre çalışabilir. Fail2ban, belirli bir süre içinde belirli bir sayıda başarısız girişim kaydeden IP’lerin engellenmesine olanak tanır. Nginx, web tabanlı bir sunucu olduğundan, Fail2ban’ın konfigürasyonu sayesinde web uygulamalarını da korumak mümkündür.

Nginx Konfigürasyonu

Nginx sunucusu, yapılandırma dosyası olan `nginx.conf` veya sanal ana makine dosyaları üzerinde düzenlemeler yaparak Fail2ban ile çalışacak şekilde ayarlanabilir. İlk olarak, Nginx’in hata loglarının ve erişim loglarının doğru şekilde kaydedildiğinden emin olmak gerekmektedir. Genellikle, bu loglar Nginx’in kurulum dizininde yer alır ve aşağıdaki gibi yapılandırılabilir:

“`
http {

log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;

}
“`

Fail2ban Kurulumu

Fail2ban, çoğu Linux dağıtımında doğrudan paket yöneticileri aracılığıyla kurulum için mevcuttur. Aşağıda, bir Debian veya Ubuntu tabanlı sistemde Fail2ban kurulum adımları verilmiştir:

“`
sudo apt update
sudo apt install fail2ban
“`

Kurulum işlemi tamamlandıktan sonra, Fail2ban hizmeti etkinleştirilmeli ve başlatılmalıdır:

“`
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
“`

Fail2ban Yapılandırması

Fail2ban’ın Nginx ile düzgün çalışabilmesi için yapılandırma dosyaları üzerinde değişiklikler yapmak gerekmektedir. Genellikle yapılandırma dosyaları `/etc/fail2ban/jail.conf` veya `/etc/fail2ban/jail.local` dizininde bulunur. Nginx için spesifik bir yapılandırma eklemek amacıyla aşağıdaki satırlar eklenmelidir:

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

Bu yapılandırma, Nginx erişim loglarına dayanarak üç denemede başarısız olan IP’lerin 10 dakika boyunca engellenmesini sağlar.

Filtreler Oluşturma

Fail2ban’ın işlevselliğinden tam olarak faydalanmak için, uygun filtrelerin oluşturulması gerekmektedir. Örneğin, kullanıcı adı ve şifre hatalarına karşı bir filtre aşağıdaki gibi yapılandırılabilir:

“`
[nginx-http-auth]
failregex = no user/password was provided
ignoreregex =
“`

Bu filtre, Nginx’in hata loglarına bakarak “no user/password was provided” ifadesini arar ve tespit edilen IP’leri engeller.

Log İzleme

Fail2ban, sürekli olarak log dosyalarını izlemektedir. Nginx ile entegrasyon sağlandığında, sistem üzerindeki bütün aktiviteler takip edilebilmektedir. /var/log/fail2ban.log dosyasından Fail2ban’ın aktiviteleri ve hangi IP’lerin engellendiği gözlemlenebilir. Bu log dosyası, güvenlik analizi ve olası yanlış pozitifleri tespit etme konusunda faydalı bilgiler sağlamaktadır.

İleri Düzey Ayarlar

Fail2ban’ın yalnızca temel yapılandırması değil, aynı zamanda gelişmiş ayarları da mevcuttur. Örneğin, bant süresi, maksimum deneme sayısı gibi parametreler kullanıcı ihtiyaçlarına göre özelleştirilebilir. Bant süresi, belirli bir süre boyunca IP adresinin engellenme süresini belirlerken, maksimum deneme sayısı belirtilen sayıda hatalı girişim sonrası engelleme yapar. Bu ayarlar, sistemin güvenlik gereksinimlerine ve kullanıcı alışkanlıklarına göre düzenlenmelidir.

Diğer Koruma Önlemleri

Nginx’i brute-force saldırılarına karşı korumak için yalnızca Fail2ban kullanmak yeterli olmayabilir. Ek koruma önlemleri de düşünülmelidir. Örneğin, güçlü şifre politikaları, IP beyaz listeleri, CAPTCHA kullanımı ve HTTPS zorunluluğu gibi önlemler uygulanabilir. Ayrıca, güvenlik duvarları ve saldırı engelleme sistemleri de dahil edilmelidir.

Sonuç

Nginx sunucularını brute-force saldırılarına karşı korumak için Fail2ban etkili bir yöntem sunmaktadır. Log dosyalarını izleyerek ve kötü niyetli IP adreslerini engelleyerek, sunucunun güvenliğini artırmak mümkündür. Nginx konfigürasyonu, Fail2ban kurulumu ve yapılandırılması dikkatle yapılmalı, gerektiğinde ek güvenlik önlemleri alınmalıdır. Bu tür önlemler, sunucunun genel güvenliğini pekiştirecek ve olası tehditlerin etkilerini azaltacaktır.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR