Sayfayı Yazdır | Pencereyi Kapat

Apache güvenliði

Nereden Yazdırıldığı: Bilginin Adresi
Kategori: Bilgisayar Güvenliði / Computer Security
Forum Adı: Güvenlik / Security Makaleleri
Forum Tanımlaması: Bilgisayarýnýzý Her Türlü Saldýrýya Karþý Korumak Ýçin Yapmanýz Gerekenler
URL: https://www.bilgineferi.com/forum/forum_posts.asp?TID=7960
Tarih: 04-05-2024 Saat 09:33


Konu: Apache güvenliði
Mesajı Yazan: megabros
Konu: Apache güvenliði
Mesaj Tarihi: 23-08-2009 Saat 23:55

Bu yazýda Apache”nin daðýtýmla gelen halinden daha güvenli bir þekilde çalýþabilmesi için yapmanýzý tavsiye edeceðim bazý deðiþiklerlerden bahsedeceðim. Bu tavsiyelerden birçoðu ayar dosyalarýyla ilgili olacaðýndan dolayý Apache httpd.conf dosyasý hakkýnda bilgi edinmiþ olmanýzý öneririm.

Daðýtýmlarla gelen Apache kurulumlarý çoðu zaman kullanýcýya rahatlýk sunmasý açýsýndan oldukça esnek yapýlandýrýlýrlar. Bu ayarlar basit kullanýmlar için oldukça yararlýdýr fakat güvenliðin on planda olduðu sunucularda gereðinden fazla esnektirler. Bu yüzden ayarlarýnýzý gözden geçirmenizde fayda var. Bu anlatacaðým senaryolarý þirketinizin aynasý ya da belki de ürünü olacak web sunucularýnda yaptýðýnýzý gözönünde bulundurmayý unutmayýn. Örneðin kullanýcý homepage”lerini silin dediðimde, “aaa olur mu öyle sey!” gibi yorumlar duymak istemiyorum :)


Örneklerin çoðu RedHat baz alýnarak verilmiþtir.

Kurulum: Makinaniza dagitimla gelen apache”yi kurmaniz ve bu sekilde birakmaniz demek guvenlik acisindan intihar demektir. Derhal apache”nin son surumunu (ister dagitimin guncelleme kanalindan, ister programin kendisini derleyerek) kurun. Modüller Genelde dagitimla gelen apache Dynamic Shared Object (DSO) ozelligi ile derlenmistir. DSO bize plugin seklinde eklentileri, apache”yle yeniden derlemeye gerek birakmadan kullanmamizi saglar. Dagitimla gelen modullerin bir coguna ihtiyaciniz yoktur. Asagidaki listeden gercektek ihtiyaciniz olmayanlari httpd.conf dosyasindan silin. mod_dav Distributed Authoring and Version


mod_autoindex Dizinlerin icini otomatik olarak gosterir.
mod_include Eger sayfalarinizda sunucu tarafindan include”lar yapmýyorsaniz silin.

mod_info Sunucunun ayarlarini gosterir.
mod_status Sunucunun durumunu gosterir.
mod_userdir Kullanici Home dizinleri.
Tavsiyem ayar dosyasindaki buna benzer mod_* satirlarini inceleyin ve minimum modül aktive edin. Modul referansi icin
http://modules.apache.org/ - http://modules.apache.org/ adresine bakin. Kullanýcý dizini? O da ne? SÝLÝN! :)

UserDir disable

satýrýný httpd.conf dosyasina ekleyin. Daha da paranoyak olmak istiyorsanýz

LoadModule userdir_module modules/mod_userdir.so

satýrýný silin ya da comment out edin. Dizin izinleri:
Web sunucunuzun kök dizinin izin ayarlarýný biraz daha sýkýlaþtýrýn.
Örneðin
Aþaðýdaki ayar yerine: <?php
&lt;Directory /&gt;
Options FollowSymLinks
AllowOverride None
&lt;/Directory&gt;
?> bu ayarlarý deneyin:
<?php
&lt;Directory /&gt;
Options None
AllowOverride None
Order allow,deny
Deny from all
&lt;/Directory&gt;
?> Sunucu bilgi gizleme.
Bir web sunucu korsaninin saldiri icin yapacagi ilk adim belki de sunucu hakkinda bilgi toplamaktir. Bu nedenle sunucumuzun verdigi bilgiyi minimumda tutmamiz ilk korunma duvarimiz olacaktir. httpd.conf dosyasi icinde:

ServerSignature off

yazarsak sunucunun dinamik olarak yarattigi signature/imza satirindan kurtulmus oluruz (Ornegin 404 sayfalarinda)

Bununla beraber apache HTTP basliginda da bilgi saklar ve gosterir.

ServerTokens Prod

satiri bu bilgiyi minimuma indirger. Bazi sunucu sayfalarinda ise sistemin yoneticisinin email adresi gosterilir. (Spamciler icin ideal! :)

ServerAdmin root@localhost

satýrý bu emaili de saf dýþý birakir. cgi-bin dizinin yok et:
Eger web sunucunuz CGI calistirmayacaksa derhal gerekli ayarlari yokedin! :) (PHP degil, cgi…) Su satirlari silin ya da comment out edin. <?php
LoadModule cgi_module modules/mod_cgi.so
LoadModule env_module modules/mod_env.so
AddModule mod_cgi.c
AddModule mod_env.c
ScriptAlias /cgi-bin/ &quot;/var/www/cgi-bin/&quot;
&lt;Directory &quot;/var/www/cgi-bin&quot;&gt;
AllowOverride None
Options None
Order allow,deny
Allow from all
&lt;/Directory&gt;
?> Web dizinlerinin sistem izinleri.


Sistem icinde webe acik dizinlerin ve dosyalarin hicbirisine web serverin calistigi kullaniciya ve guruba (apache, nobody gibi) yazma hakkinin verilmemesi lazimdir. Bu duruma uymayan dizin ve dosyalari bulmak/gormek icin su asagidaki komutlari kullanabilirsiniz. [root@webserver]# find /var/www/html -user apache -perm +202 -exec ls -ld {} ; [root@webserver]# find /var/www/html -group apache -perm +202 -exec ls -ld {} ; SSL

Son olarak. Mutlaka gizli bilgilerinizi SSL yoluyla yollayin. Ornegin bir webmail servisi mi kuruyorsunuz? Mutlaka en azindan login kismini SSL ile koruyun. phpMyAdmin mi kullaniyorsunuz? SQL Sunucunuzun guvenligi icin bence SSL arkasinda tutun. Dagitimlarin cogu zaten kurulu ssl sertifikalari ile geliyordur. Eger gelmeyen birisiyle ugrasiyorsaniz kendi sertifikanizi yaratin. Onemli olan o sertifika vasitasiyla iki nokta arasinda sifreleme yapabilmeniz.
 
Saygýlar..



Sayfayı Yazdır | Pencereyi Kapat