CWP Panelde mod_security hatası nedeniyle sitenize erişememeniz can sıkıcı bir durum. mod_security, web sitenizi çeşitli saldırılara karşı koruyan bir güvenlik duvarıdır ancak bazen yanlış pozitifler üreterek meşru istekleri de engelleyebilir. mod_security'i devre dışı bırakmak yerine, soruna neden olan spesifik kuralı bulup onu geçici veya kalıcı olarak devre dışı bırakmak daha güvenli bir yaklaşımdır.
Ancak acil durumlar için mod_security'i tamamen kapatmanın yolları şunlardır:
1. CWP Panel Arayüzünden (Mümkünse):
- CWP Panelde genellikle Security (Güvenlik) veya Web Server Settings (Web Sunucusu Ayarları) gibi bir bölümde mod_security ayarları bulunur. Bu bölümden mod_security'i etkinleştirme/devre dışı bırakma seçeneği olabilir. Bu seçenek genellikle bir checkbox veya açılır menü şeklinde sunulur. Eğer bu seçenek varsa, buradan Disable (Devre Dışı Bırak) seçeneğini seçip kaydedin. Ardından web sunucusunu yeniden başlatmanız gerekebilir (CWP Panelde ilgili servisleri yeniden başlatma seçeneği bulunur).
2. SSH Üzerinden Manuel Olarak (Daha Yaygın Yöntem):
Eğer panelde direkt bir seçenek bulamazsanız, SSH üzerinden aşağıdaki adımları izleyebilirsiniz:
- Öncelikle sunucunuza SSH ile bağlanın.
- Mod_security kurallarının bulunduğu dizini bulmanız gerekecek. Bu genellikle
/etc/httpd/conf.d/mod_security.conf
- veya benzeri bir konumdadır.
- Bu yapılandırma dosyasını bir metin editörü ile açın. Örneğin Nano veya Vi kullanabilirsiniz:
Sudo nano /etc/httpd/conf.d/mod_security.conf
- Dosyanın içinde SecRuleEngine On gibi bir satır göreceksiniz. Bu satır mod_security'nin etkin olduğunu belirtir. Bu satırı bulun ve aşağıdaki gibi değiştirin:
SecRuleEngine Off
- Eğer dosyanın içinde SecRuleEngine On satırı yoksa, dosyanın sonuna bu satırı ekleyebilirsiniz.
- Değişiklikleri kaydedip dosyadan çıkın (nano için Ctrl+X, Y, Enter).
- Ardından web sunucusunu yeniden başlatın. Eğer Apache kullanıyorsanız:
Sudo systemctl restart httpd
- Eğer nginx kullanıyorsanız (mod_security Nginx ile de kullanılabilir ancak Apache kadar yaygın değildir):
Sudo systemctl restart nginx
Spesifik Kuralları Devre Dışı Bırakma (Önerilen Yöntem):
Mod_security'i tamamen kapatmak yerine, soruna neden olan kuralı bulup onu geçici olarak etkisiz hale getirmek daha güvenlidir. Bunun için:
- Sunucunuzdaki Apache veya Nginx hata loglarını inceleyin;
/var/log/httpd/error_log
/var/log/nginx/error.log
- 403 hatası aldığınızda hangi mod_security kuralının tetiklendiğine dair bilgiler loglarda yer alacaktır.
Loglarda gördüğünüz kural ID'sini (örneğin [client 1.2.3.4] AH01630: client denied by server configuration: /var/www/html/index.php gibi bir hata mesajı ve ardından mod_security ile ilgili bir uyarı olabilir) kullanarak, bu kuralı ana mod_security yapılandırmasına ekleyeceğiniz bir
/etc/httpd/modsecurity/disable_rules.conf
dosyası gibi özel bir dosyada devre dışı bırakabilirsiniz. Bu dosya da ana mod_security yapılandırması tarafından dahil edilmelidir. Örneğin, Disable_rules.conf içine aşağıdaki gibi bir satır ekleyebilirsiniz:
SecRuleRemoveById 123456
- Buradaki 123456 yerine hata loglarında gördüğünüz gerçek kural ID'sini yazmalısınız.
Önemli Not: mod_security'i devre dışı bırakmak sunucunuzu güvenlik açıklarına karşı daha savunmasız hale getirebilir. Bu nedenle, sorunu tespit ettikten sonra ilgili kuralı güncelleyerek veya güvenlik ekibinizle iletişime geçerek kalıcı bir çözüm bulmanız önerilir. Sadece geçici bir çözüm olarak kullanın ve mümkün olan en kısa sürede tekrar etkinleştirin.