Drupal Web Sitesi Güvenliği İçin Alınması Gereken Teknik Önlemler

Drupal, içerik yönetim sistemleri (CMS) arasında en güvenli platformlardan biri olarak bilinir. Öyle ki, dünya çapında birçok hükümet sitesi, üniversite platformu ve kurumsal portal Drupal altyapısını tercih etmektedir. Ancak unutulmamalıdır ki hiçbir sistem, kendi başına %100 güvenli değildir. Drupal’in güçlü yapısı, doğru yapılandırma ve teknik önlemlerle desteklendiğinde gerçek potansiyelini ortaya koyar.
Bu yazıda Drupal ile kurulmuş bir web sitesinde güvenliği artırmak için alınması gereken temel teknik önlemleri adım adım detaylandıracağız. Geliştiricilerden içerik yöneticilerine kadar herkesin uygulayabileceği ipuçlarıyla Drupal sitenizi saldırılara karşı daha dayanıklı hale getirebilirsiniz.
1. Güncellemeleri Geciktirmeyin
a) Drupal Core Güncellemeleri
Drupal çekirdek yapısı, düzenli olarak güncellenir ve güvenlik açıkları hızla kapatılır. Sitenizin güvenliği için:
-
Yeni sürüm çıktığında hemen yedek alın.
-
Önce test ortamında deneme yapın, sonra canlıya geçin.
-
Drupal security advisories sayfasını takip edin.
b) Modül ve Tema Güncellemeleri
Üçüncü parti modüller, açıkların en sık görüldüğü yerdir. Özellikle “Dev” sürüm modüller kullanıyorsanız ekstra dikkatli olun.
-
Geliştirici desteği süren modüller tercih edin.
-
Otomatik modül güncelleme eklentileriyle bildirim alın.
2. Kullanıcı Rolü ve Yetki Kontrolleri
Drupal’in ACL (Access Control List) yapısı son derece güçlüdür. Ancak varsayılan ayarlar çoğu zaman yeterli değildir. Şunlara dikkat edin:
-
“Administer site configuration” yetkisini yalnızca güvenilir yöneticilere verin.
-
Her içerik türü için özel roller tanımlayın.
-
Gerekirse “Content Moderation” modülünü kullanarak içerik onay akışı oluşturun.
-
“User roles” ve “permissions” ekranlarını düzenli olarak gözden geçirin.
Bilinmeyen kişilere site yönetim paneline erişim vermek en büyük risk faktörlerinden biridir.
3. Güvenli Giriş (Login) ve Şifre Politikaları
Drupal kullanıcı giriş ekranı genellikle /user/login
adresinde bulunur ve otomatik botlar bu adresi sıkça hedef alır. Alınabilecek önlemler:
-
Giriş URL’sini özelleştirin (Redirect veya PathAuto modülleriyle).
-
Login Security modülünü kullanarak:
-
Belirli deneme sayısından sonra IP engelleme yapın.
-
Şifre karmaşıklık kuralları belirleyin.
-
-
Two-Factor Authentication (2FA) modülünü kurarak, girişleri çift katmanlı doğrulama ile güvence altına alın.
Ayrıca kullanıcı şifreleri asla düz metin olarak saklanmamalı, hashing algoritmaları (örneğin bcrypt) kullanılmalıdır.
4. SSL/TLS Sertifikası ve HTTPS Zorunluluğu
Tüm Drupal siteleri HTTPS protokolüyle çalışmalıdır. SSL sertifikası sayesinde:
-
Veri iletimi şifrelenir.
-
Giriş bilgileri, ödeme verileri korunur.
-
Google sıralamalarında avantaj sağlanır.
Drupal admin panelde HTTPS’ye geçiş yaptıktan sonra tüm iç bağlantıların HTTPS olarak değiştirildiğinden emin olun. Ayrıca .htaccess dosyası ile HTTP’den HTTPS’ye yönlendirme ekleyin.
5. Güvenlik Duvarı (WAF) Kullanımı
Drupal sitenizi sadece yazılımsal değil, ağ düzeyinde de korumalısınız. Bunun için:
-
Cloudflare gibi CDN + WAF çözümleri ile temel koruma sağlayın.
-
Daha gelişmiş saldırı senaryoları için Sucuri veya Imperva gibi premium hizmetleri değerlendirin.
Dış IP’leri filtrelemek, bot saldırılarını ve DDoS risklerini azaltmak için gereklidir.
6. Güvenlik Eklentileri ve Modüller
Drupal için özel geliştirilmiş bazı güvenlik modülleri vardır. En çok kullanılanlar:
-
Security Kit: XSS, CSRF gibi saldırılara karşı koruma sağlar.
-
Paranoia: Tehlikeli izinlerin verilmesini engeller.
-
Automated Logout: Belirli süre sonra kullanıcıları otomatik oturum dışı bırakır.
-
Captcha / reCAPTCHA: Formlara bot koruması ekler.
Bu modüller sayesinde Drupal siteniz çok daha dirençli hale gelir.
7. Dosya ve Klasör İzinleri
Sunucu dosya izinleri yanlış ayarlanmış bir Drupal sitesi, hacker’lar için açık davetiye olabilir. Standart öneriler:
-
/sites/default/files
klasörü 755 olmalı -
PHP dosyalarının çalıştırılmasına izin verilen klasörler sınırlandırılmalı
-
settings.php
dosyası 444 izniyle korunmalı -
.htaccess
dosyası dış erişime karşı korunmalı
Ayrıca adminer
gibi araçlarla sunucuya doğrudan veri tabanı erişimi açılmamalıdır.
8. SQL Injection ve XSS Koruması
Drupal’in çekirdek yapısı zaten SQL injection’a karşı oldukça dirençlidir. Ancak temalar veya özel modüller aracılığıyla açıklık oluşabilir.
-
Her zaman Drupal API fonksiyonları ile veri çekin (db_query yerine db_select kullanımı).
-
Kullanıcıdan alınan verileri sanitize (temizleme) işlemlerinden geçirin.
-
Twig template motorunun XSS’e karşı korumalı olduğunu unutmayın, ancak bypass edilmemesine dikkat edin.
9. Otomatik Yedekleme ve Geri Yükleme
Siteniz saldırıya uğrasa bile geri dönmeniz için günlük/haftalık yedekleme sistemleri kurmalısınız:
-
Akeeba Backup veya Backup and Migrate modülleri tercih edilebilir.
-
Veritabanı ve dosya sistemi ayrı ayrı yedeklenmeli
-
Yedekler harici bir sunucu veya Google Drive gibi bir platformda saklanmalı
Yedekler her ay test edilerek gerçekten çalıştığından emin olun.
10. Güvenlik Denetimleri ve Sürekli İzleme
Drupal sitenizi kurduktan sonra güvenlik için “bir kere ayarla unut” yaklaşımı geçerli değildir. Düzenli olarak:
-
Drupal Security Team’in yayınladığı bildirimleri takip edin
-
Güvenlik testleri (penetrasyon testi) yaptırın
-
Kullanıcı etkinlik loglarını takip edin
-
Zayıf şifre kontrolü yapın
Ayrıca OWASP Top 10 listesine göre site güvenliğinizi yılda en az bir kere analiz edin.
Sonuç: Drupal Güvenlidir, Ama Doğru Yapılandırılırsa
Drupal, varsayılan olarak diğer birçok CMS’e göre daha güvenli bir altyapıya sahiptir. Ancak bu güvenliği sürdürebilir kılmak için teknik önlemler ve düzenli bakım gereklidir. Güçlü bir kullanıcı yetki sistemi, sağlam modül seçimleri, iyi yapılandırılmış sunucu ortamı ve düzenli güncellemelerle Drupal siteniz hem hızlı hem de saldırılara karşı dirençli bir kale olacaktır.
Unutmayın: Güvenlik bir seçenek değil, dijital varlıkların sigortasıdır.