CentOS 6 ve Apache 2de ModSecurity ve OWASP

ModSecurity, IIS, Apache2 ve Nginx ile çalışmak üzere tasarlanmış bir web uygulama katmanı güvenlik duvarıdır. Apache lisans 2.0 altında yayınlanan ücretsiz, açık kaynaklı bir yazılımdır. ModSecurity, web sitenizin trafiğini izleyerek ve analiz ederek web sunucunuzun güvenliğini sağlamaya yardımcı olur. Bunu, düzenli ifadeler kullanarak en bilinen istismarlardan gelen saldırıları tespit etmek ve engellemek için gerçek zamanlı olarak yapar. Tek başına, ModSecurity sınırlı koruma sağlar ve korumayı en üst düzeye çıkarmak için kural setlerine güvenir.

Açık Web Uygulaması Güvenlik Projesi (OWASP) Çekirdek Kural Seti (CRS), herhangi bir web uygulaması için temel bir koruma düzeyi sağlayan bir dizi genel saldırı algılama kuralıdır. Kural seti ücretsiz, açık kaynaklıdır ve şu anda Spider Labs tarafından desteklenmektedir.

OWASP CRS şunları sağlar:

  • HTTP Koruması - HTTP protokolünün ve yerel olarak tanımlanmış bir kullanım ilkesinin ihlallerini algılama.
  • Gerçek Zamanlı Kara Liste Aramaları - 3. Taraf IP itibarını kullanır.
  • HTTP Hizmet Reddi Koruması - HTTP seli ve yavaş HTTP DoS saldırılarına karşı savunma.
  • Ortak Web Saldırı Koruması - yaygın web uygulaması güvenlik saldırılarını tespit eder.
  • Otomasyon Algılama - Botları, tarayıcıları, tarayıcıları ve diğer yüzey zararlı etkinliklerini algılama.
  • AV Dosya Yüklemeleri için Tarama - web uygulaması üzerinden yüklenen kötü amaçlı dosyaları algılar.
  • Hassas Verileri İzleme - Kredi kartı kullanımını izler ve sızıntıları engeller.
  • Truva Koruması - Truva atlarını algılar.
  • Uygulama Kusurlarının Belirlenmesi - uygulama yanlış konfigürasyonları hakkında uyarılar.
  • Hata Algılama ve Gizleme - Sunucu tarafından gönderilen hata mesajlarını gizleme.

Kurulum

Bu kılavuz, Apache 2 çalıştıran CentOS 6'ya ModSecurity ve OWASP kural setini nasıl kuracağınızı gösterir.

İlk olarak, sisteminizin güncel olduğundan emin olmanız gerekir.

 yum -y update

Apache 2'yi yüklemediyseniz, şimdi yükleyin.

 yum -y install httpd

Şimdi ModSecurity'nin çalışması için bazı bağımlılıklar yüklemeniz gerekiyor. Sunucu yapılandırmanıza bağlı olarak, bu paketlerin bazıları veya tümü zaten yüklenmiş olabilir. Yum, sahip olmadığınız paketleri kuracak ve paketlerden herhangi birinin kurulu olup olmadığını size bildirecektir.

 yum -y install httpd-devel git gcc make libxml2 pcre-devel libxml2-devel curl-devel

Dizini değiştirin ve ModSecuity web sitesinden kaynak kodunu indirin. Mevcut kararlı sürüm 2.8'dir.

 cd /opt/
 wget https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz

Paketi ayıklayın ve dizinine değiştirin.

 tar xzfv modsecurity-2.8.0.tar.gz 
 cd modsecurity-2.8.0

Kaynak kodunu yapılandırın ve derleyin.

 ./configure
 make
 make install

Varsayılan ModSecurity yapılandırmasını ve unicode eşleme dosyasını Apache dizinine kopyalayın.

 cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
 cp unicode.mapping /etc/httpd/conf.d/

Apache'yi ModSecurity'yi kullanacak şekilde yapılandırın. Bunu yapmanın 2 yolu vardır.

 echo LoadModule security2_module modules/mod_security2.so >> /etc/httpd/conf/httpd.conf

... veya nano gibi bir metin düzenleyicisi kullanın:

 nano /etc/httpd/conf/httpd.conf

Dosyanın altına, ayrı bir satıra şunu ekleyin:

 LoadModule security2_module modules/mod_security2.so

Artık Apache'yi başlatabilir ve önyükleme sırasında başlayacak şekilde yapılandırabilirsiniz.

 service httpd start
 chkconfig httpd on

Bu kılavuzu kullanmadan önce Apache yüklediyseniz, yeniden başlatmanız gerekir.

 service httpd restart

Şimdi OWASP temel kural setini indirebilirsiniz.

 cd /etc/httpd
 git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

Şimdi OWASP kural setini yapılandırın.

 cd modsecurity-crs
 cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf

Ardından, Apache yapılandırmasına kural kümesini eklemeniz gerekir. Yine bunu iki şekilde yapabiliriz.

 echo Include modsecurity-crs/modsecurity_crs_10_config.conf >> /etc/httpd/conf/httpd.conf
 echo Include modsecurity-crs/base_rules/*.conf >> /etc/httpd/conf/httpd.conf

... veya bir metin düzenleyicisiyle:

 nano /etc/httpd/conf/httpd.conf

Ayrı satırlardaki dosyanın altına şunu ekleyin:

 Include modsecurity-crs/modsecurity_crs_10_config.conf
 Include modsecurity-crs/base_rules/*.conf

Şimdi Apache'yi yeniden başlatın.

 service httpd restart

Son olarak, kurulum dosyalarını silin.

 yum erase /opt/modsecurity-2.8.0
 yum erase /opt/modsecurity-2.8.0.tar.gz

ModSecurity'yi Kullanma

Varsayılan olarak, ModSecurity yalnızca algılama modunda çalışır, yani tüm kural kesmelerini günlüğe kaydeder ancak herhangi bir işlem yapmaz. Bu, Apache hata günlüğünde oluşturulan olayları izleyebilmeniz için yeni kurulumlar için önerilir. Günlüğü inceledikten sonra, koruma moduna geçmeden önce kural kümesinde herhangi bir değişiklik yapılmasına veya kuralın devre dışı bırakılmasına (aşağıya bakın) karar verilmesine karar verebilirsiniz.

Apache hata günlüğünü görüntülemek için:

 cat /var/log/httpd/error_log

Apache hata günlüğündeki ModSecurity satırı dokuz öğeye ayrılmıştır. Her öğe, etkinliğin neden tetiklendiği hakkında bilgi sağlar.

  • İlk bölüm bu olayı hangi kural dosyasının tetiklediğini anlatır.
  • İkinci bölüm, kural dosyasında kuralın hangi satırda başladığını anlatır.
  • Üçüncü unsur size hangi kuralın tetiklendiğini söyler.
  • Dördüncü unsur size kuralın revizyonunu anlatır.
  • Beşinci öğe, hata ayıklama amacıyla özel veriler içerir.
  • Altıncı öğe, bu olayın önem derecesinin günlük önem derecesini tanımlar.
  • Yedinci bölüm hangi eylemin gerçekleştiğini ve hangi aşamada gerçekleştiğini açıklar.

Sunucunuzun yapılandırmasına bağlı olarak bazı öğelerin bulunmayabileceğini unutmayın.

ModSecurity'yi koruma moduna değiştirmek için conf dosyasını bir metin düzenleyicisinde açın:

 nano /etc/httpd/conf.d/modsecurity.conf

... ve değişim:

 SecRuleEngine DetectionOnly

için:

 SecRuleEngine On

ModSecurity çalışırken herhangi bir blokla karşılaşırsanız, HTTP hata günlüğünde kuralı tanımlamanız gerekir. "Tail" komutu günlükleri gerçek zamanlı olarak izlemenizi sağlar:

 tail -f /var/log/httpd/error_log

Günlüğü izlerken bloğa neden olan eylemi tekrarlayın.

Kural Kümesini Değiştirme / Kural Kimliğini Devre Dışı Bırakma

Bir kural kümesini değiştirmek bu öğreticinin kapsamı dışındadır.

Belirli bir kuralı devre dışı bırakmak için, üçüncü öğede bulunan kural kimliğini (örneğin [id = 200000]) tanımlar ve ardından Apache yapılandırma dosyasında devre dışı bırakırsınız:

 nano /etc/httpd/conf/httpd.conf

... kural kimliğiyle dosyanın altına aşağıdakileri ekleyerek:

<IfModule mod_security2.c>
SecRuleRemoveById 200000
</IfModule>

ModSecurity'nin web sitenizdeki / sitelerinizdeki tüm eylemleri engellediğini fark ederseniz, "Çekirdek Kural Seti" muhtemelen "Bağımsız" modundadır. Bunu, yalnızca anormallikleri algılayan ve engelleyen "İşbirlikçi Algılama" olarak değiştirmeniz gerekir. Aynı zamanda, "Müstakil" seçeneklere bakabilir ve isterseniz bunları değiştirebilirsiniz.

 nano /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf

"Algılama" yı "Bağımsız" olarak değiştirin.

ModSecurity'yi, günlüğe kaydetmeden web uygulaması güvenlik duvarı (WAF) üzerinden IP'nize izin verecek şekilde de yapılandırabilirsiniz:

 SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=Off

... veya günlük kaydıyla:

 SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=DetectionOnly


Leave a Comment

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?