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
Blog
Bilgi Merkezİ