Odoo Sunucularında Bot Saldırılarına Karşı Fail2Ban ile Etkin Koruma

Konu

Odoo

Bu yazıda, Odoo sunucularında oluşan istenmeyen isteklerin otomatik olarak engellenmesi için geliştirilen bir Fail2Ban yapılandırmasını adım adım paylaşıyoruz.

Blog

Bilgi

Odoo Sunucularında Bot Saldırılarına Karşı Fail2Ban ile Etkin Koruma

Odoo altyapısıyla çalışan sistemler, zaman zaman yetkisiz taramalar ve zararlı bot aktiviteleri nedeniyle performans sorunlarıyla karşı karşıya kalabilir. Özellikle doğrudan HTTP portuna yönlendirilen uygunsuz HTTPS istekleri, sunucularda werkzeug loglarında hatalara yol açarak sistemin yavaşlamasına ve yeniden başlatılmasına neden olabilir.

Bu yazıda, Odoo sunucularında oluşan istenmeyen isteklerin otomatik olarak engellenmesi için geliştirilen bir Fail2Ban yapılandırmasını adım adım paylaşıyoruz. Hafif, yazılımsal ve etkili bu yöntemle, sistem performansı artırılırken, log dosyalarının da daha anlamlı kalması sağlanıyor.

Fail2Ban Nedir ve Neden Kullanılmalı?

Fail2Ban, sunucu loglarını analiz ederek belirli kalıplara uyan hatalı girişimleri tespit eder ve bu IP adreslerini otomatik olarak engeller. Bu yaklaşım sayesinde, Odoo sunucusu aşağıdaki tehditlere karşı proaktif bir koruma elde eder:

  • Bilindik saldırı yollarına (örn. /login, /cgi-bin) gelen tarayıcı istekleri

  • Sürekli başarısız olan ve log dosyalarını dolduran bot aktiviteleri

  • Odoo'nun thread limitlerini aşan gereksiz bağlantılar

Adım Adım Fail2Ban Yapılandırması

1. Fail2Ban Kurulumu

İlk adım olarak sunucunuza Fail2Ban kurulumu yapılmalıdır:

sudo apt update  

sudo apt install fail2ban

2. Odoo İçin Özel Filtre Oluşturulması

Aşağıdaki özel filtre, botların hedef aldığı yaygın URL kalıplarını tespit eder:

sudo nano /etc/fail2ban/filter.d/nginx-odoo.conf

İçerik:

[Definition]

failregex = ^<HOST> -.*"(GET|POST).*(/login|/cgi-bin|/web/database/selector|/manage/account|/+CSCOE+|/doc/index.html|/robots.txt).*" (404|400|403)

ignoreregex =

3. Jail Konfigürasyonu

Fail2Ban’in bu filtreye göre çalışabilmesi için jail.local dosyasına şu yapı eklenir:

sudo nano /etc/fail2ban/jail.local

[nginx-odoo]

enabled = true

port = http,https

filter = nginx-odoo

logpath = /var/log/nginx/access.log

maxretry = 5

findtime = 600

bantime = 3600

Yani 10 dakika içinde 5 başarısız istek gelirse, ilgili IP adresi 1 saat süreyle engellenir.

4. Fail2Ban Servisinin Yeniden Başlatılması

sudo systemctl restart fail2ban  

sudo fail2ban-client status nginx-odoo

5. Test Süreci

Aşağıdaki örneklerle yapılandırmanın çalıştığı test edilebilir:

curl -k https://[domain]/cgi-bin/test  

curl -k https://[domain]/+CSCOE+/logon.html

Bu isteklerden bir süre sonra IP adresinizin engellendiğini ve erişimin kesildiğini görebilirsiniz.

Gereksiz Erişimleri Engelleyerek Sistem Performansını Artırın

Fail2Ban yapılandırması sayesinde:

  • Odoo log dosyaları temiz ve analiz edilebilir kalır

  • Thread kilitlenmeleri ve sistem reload sorunları ortadan kalkar

  • Güvenlik duvarına ek yük bindirmeden etkin bir filtreleme sağlanır

  • Bot aktivitelerine karşı sistem otomatik olarak tepki verir

Ayrıca, engellenen IP’yi manuel olarak kaldırmak gerekirse:

sudo fail2ban-client unban <ip>

komutu kullanılabilir.

Sonuç: Odoo İçin Proaktif ve Hafif Güvenlik Katmanı

Fail2Ban ile sağlanan bu yapılandırma, Odoo sunucularında güvenliği ve kararlılığı artırmak adına uygulanabilecek en basit ama en etkili yöntemlerden biridir. Özellikle üretim ortamlarında, gereksiz müdahalelerin önüne geçmek ve log kalitesini korumak adına bu önlem kritik öneme sahiptir.

Unutulmamalıdır ki bu yapı “yapıldı bitti” değil; her kurumsal sunucuda sürekli olarak aktif olması gereken bir güvenlik katmanıdır.

Yazar

Volkan Akkurt

Odoo Uzmanı

Yazar