Mod_security Belirli Bir Web Uygulamasını Engelliyor, Nasıl İstisna Tanımlayabilirim?

1

CWP Panel üzerinde barındırdığım bir web uygulaması, son zamanlarda bazı işlevlerini yerine getiremiyor. Yaptığım kontrollerde mod_security loglarında 'Access denied' kayıtları gördüm. Uygulamanın düzgün çalışması için bu engellemeyi nasıl aşabilirim ve mod_security'ye belirli bir istisna nasıl tanımlayabilirim?

Cevaplar (2)

2

Mod_Security loglarında 'Access denied' kayıtlarını görmek, web uygulamanın belirli isteklerinin bir güvenlik kuralına takıldığını açıkça gösterir. Bu durumu çözmek için en doğru yöntem, ilgili Mod_Security kural kimliğini (Rule ID) tespit edip, bu kuralı uygulaman için istisna olarak tanımlamaktır.

Öncelikle, CWP Panel'e yönetici olarak giriş yapmalısın. Ardından, genellikle 'WebServers' menüsü altında bulacağın 'Mod_Security Conf' veya 'Apache Settings' > 'Mod_Security Config' bölümüne gitmen gerekiyor. Burada, Mod_Security kurallarını yönetebileceğin bir arayüzle karşılaşacaksın.

Uygulamanın çalıştığı domain için özel bir istisna tanımlamak en sağlıklısıdır. Genellikle bu bölümde 'Mod_Security Rules List' veya 'Disable Rules' gibi bir seçenek bulacaksın. Buraya, loglarda gördüğün Kural kimliğini (örneğin, 942100 gibi bir sayı) girerek istisna ekleyebilirsin. Bazı durumlarda, belirli bir URL yolu için de istisna tanımlama imkanı sunulur; bu, tüm domain yerine sadece soruna neden olan belirli bir URL kalıbını hedeflemeni sağlar.

Benzer bir sorunla karşılaştığımda, ilk başta tüm kuralları devre dışı bırakmak cazip gelse de, bunun güvenlik açığı oluşturabileceğini fark ettim. Bu yüzden, her zaman logları detaylı inceleyip Spesifik kural kimliğini belirlemek ve sadece o kuralı istisna olarak eklemek en doğru yaklaşımdır. Eğer kural kimliğini bulmakta zorlanırsan, log dosyasında 'id:' ile başlayan satırlara odaklanmalısın. İstisnayı ekledikten sonra, Apache hizmetini yeniden başlatman gerekebilir ki değişiklikler aktif olsun.

Eğer CWP arayüzü üzerinden doğrudan bir seçenek bulamazsan, bazen manuel olarak yapılandırma dosyalarına müdahale etmek gerekebilir. Ancak CWP, çoğu zaman bu tür işlemler için kullanıcı dostu bir arayüz sunar. İstisna kuralı genellikle şu formatta olacaktır:

SecRuleRemoveById 942100

Bu komutu, ilgili domain'in Mod_Security yapılandırmasına ekleyerek veya CWP arayüzündeki uygun alana girerek kuralı devre dışı bırakabilirsin. Unutma, bu işlemden sonra uygulamanın işlevlerini test etmeyi ihmal etme.

1

Arkadaşın anlattığına harfiyen katılıyorum. Özellikle 'tüm kuralları devre dışı bırakma' uyarısı çok yerinde, yoksa başımız ağrıyabilir sonradan. Mod_Security loglarını dikkatli incelemek ve sadece o kuralı istisna olarak eklemek en güvenli yol.

Görsel

Tecrübeyle sabit, bazen sadece kural ID'sini değil, logda engellenen isteğin tam URL'sini ve POST verilerini de kontrol etmek gerekiyor. Çünkü aynı kural farklı senaryolarda tetiklenebilir ve sadece ID'yi kaldırmak başka yerlerde sorun yaratabilir. Eğer CWP arayüzünden istisna eklerken zorlanırsan, manuel olarak ilgili vhost config dosyasına SecRuleRemoveById komutunu eklemek de bir çözüm. Ama dediği gibi, CWP genellikle bunun için arayüz sunar. Bir de, istisnayı ekledikten sonra sadece Apache'yi değil, web uygulamasının kendi önbelleğini (varsa) de temizlemeyi unutma, bazen değişiklikler anında yansımaz.

Bu arada, @gizem_tas19 da bu konuyu 'CWP Panel mod_security Hatası Siteye Girişi Engelliyor: mod_security Nasıl Devre Dışı Bırakılır?' başlığında tartışmıştı, oraya da bir göz atabilirsin.

Kullanıcılar