Apache Web Server Hardening

PwnLab.Me

Admin
Katılım
21 Ocak 2024
Mesajlar
202
Tepkime puanı
9
Puanları
18
Devran Atuğ tarafından yazılmıştır.

[TR] Apache Web Server Hardening​




Dünya üzerinde en çok kullanılan web serverlardan olan Apache’nin yapılandırma ve güvenlik çözümlerinden bahsedeceğim.

Apache server config dosyaları:

Belge kök Dizini: /var/www/html veya /var/www
Ana Yapılandırma dosyası: /etc/httpd/conf/httpd.conf (/CentOS/Fedora) ve /etc/apache2/apache2.conf (Debian/Ubuntu).



Bilgi ifşalarının Önlenmesi​

Selection_002-300x75.png




Yapılandırılmamış Apache serverlarda server bilgisi ve sürüm ifşaları 404 sayfaları gibi sayfalarda ortaya çıkıyor. Bunun önlenmesi için;

# vim /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora)
# vim /etc/apache2/apache2.conf (Debian/Ubuntu)

ServerSignature Off
ServerTokens Prod

sudo systemctl reload apache2

Apache2 serverı’nızı tekrardan başlatın ve sayfayı yenileyin.

Selection_005-300x85.png


Artık Apache 404 sayfasında apache sürümleri gözükmiyecektir.

Apache config dosyasını düzenleme​




Config dosyasını düzenlemeden önce bilinmesi gereken kodlar;

<Directory {path}></Directory>

Directory tag’ına verilen path ile bu path’in nasıl yönetilebileceğini tag’ların içerisinde yönetebilirsiniz.



<DirectoryMatch {path}></DirectoryMatch>

DirectoryMatch tagının ‘Directory’ ile arasındaki tek fark DirectoryMatch tag’ında regex kullanarak path ayarlaması yapabilmemize olanak sağlar

DocumentRoot "{path}"

DocumentRoot web sitenizin dosyalarının bulunduğu dizinin adresini vermeniz gereken kısım.

<LimitExcept {istek yöntemi}></LimitExcept>

LimitExcept tag’ı sunucuya gelen isteklerin hangisine cevap verebileceğini isteğin yöntemine göre seçer.

<VirtualHost {servername-default(*)}:{portname-default(80-443)}></VirtualHost>

VirtualHost tag’ı içerisine alt alan adlarını yönlendirilmesi, log dosyalarının oluşturulması ve konum belirtilmesi gibi birçok özelliği içerisinde bulundurur. Ayrıca herhangi bir porttan gelen isteğin nasıl bir davranış gösterilebileceğini ayarlanmasına olan sağlar.

ServerName {website}

ServerName kısmına web sitenizin adresini yazmanız gereken kısım.

Dizinlerin izinlerinin ayarlanması;​


Herhangi bir dizinin gizlenmesi için;

<DirectoryMatch /var/www/html/serverfile/>
Options -Indexes
</DirectoryMatch>

ya da

<Directory /var/www/html/serverfile>
Options None
</Directory>

Artık ‘/serverfile‘ dizinine gidildiği zaman sayfaya ulaşılmasının engellendiğini göreceksiniz.

İstek metodlarının engellenmesi;​


Kullanıcı tarafından atılan isteklerinin methodlarına bakarak isteği nasıl engelleriz?

<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>

Sitenize gelen isteklerin içerisinde eğer “GET, POST, HEAD” methodları kabul etmeyecektir. Bunun sonucunda size 405 Not Allowed döndürecektir. UNUTMAYIN Trace methodunu LimitExcept içerisinde kullanamazsınız.

Trace mothodunu kapatma;​


Apache üzerinde Trace metodu varsayılan olarak etkindir. Bu metod etkin olduğu durumda, kullanıcı tarafından yapılan istek-cevap döngüsü izlenebiliyor ve Siteler Arası İzleme saldırısı ortaya çıkıyor.


TraceEnable off

TraceEnable off olarak kapatınız.

HTTP/1 portokülünü devre dışı bırakma;​


Öncelikle apache modlarından olan rewrite modülünü yükleyiniz.

sudo a2enmod rewrite

sonrasından apache.conf dosyasına

RewriteEngine On
RewriteCondition %{THE_REQUEST} !HTTP/1.1$
RewriteRule .* - [F]

yazınız. Sonrasında attığınız bütün istekler HTTP2 protokolünü kullanacaktır.
Selection_006-300x38.png


Clickjacking zafiyetnin önlenmesi;​


Öncelikle apache modlarından olan headers modülünü yükleyiniz.

sudo a2enmod headers

Modülü yükledikten sonra ‘apache.conf‘ dosyasına

Header always append X-Frame-Options SAMEORIGIN

ekleyiniz. Artık siteniz iframe ile görüntülenemez.

Selection_007-300x179.png

Eğer almak ister iseniz alaçağınız sonuç bu olacaktır.



Konum bu kadardı, umarım beğenmişsinizdir. Farklı bir konuda görüşmek dileğimle.
 
Moderatör tarafında düzenlendi:
Geri
Üst