Bilginin Adresi Ana Sayfa
Forum Anasayfası Forum Anasayfası > Bilgisayar Güvenliği / Computer Security > Güvenlik / Security Makaleleri
  Aktif Konular Aktif Konular RSS - Apache Ayarlarinizi Guvenli Hale Getirmenin 20 Yolu
  SSS SSS  Forumu Ara   Events   Kayıt Ol Kayıt Ol  GiriÅŸ GiriÅŸ

Apache Ayarlarinizi Guvenli Hale Getirmenin 20 Yolu

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
megabros Açılır Kutu Gör
Security Professional
Security Professional
Simge

Kayıt Tarihi: 08-06-2009
Konum: Turkey
Status: Aktif DeÄŸil
Points: 752
Mesaj Seçenekleri Mesaj Seçenekleri   Thanks (0) Thanks(0)   Alıntı megabros Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Apache Ayarlarinizi Guvenli Hale Getirmenin 20 Yolu
    Gönderim Zamanı: 24-08-2009 Saat 00:02

Konu başlıkları

·    1 İlk olarak en son yamaları geçtiğinize emin olun
·    2 Apache sürüm numarasını ve diğer bilgileri gizleyin
·    3 Apache”yi kendi kullanıcı hesabı ve grubunda çalıştırın
·    4 Web klasörünün dışındaki dosyalara erişimi engelleyin
·    5 Klasör içeriği görüntülemeyi kapatın

·    6 Sunucu tarafı dahil etmeleri (server side include) kapatın
·    7 CGI çalıştırmayı kapatın
·    8 Apache”nin sembolik link”leri takip etmesine izin vermeyin
·    9 Bütün Options özelliklerinin kapatılması
·    10 .htaccess dosyaları için desteğin kaldırılması
·    11 mod_security çalıştırın
·    12 Gereksiz modülleri kapatın
·    13 Apache”nin konfigürasyon ve çalıştırılabilir dosyalarına sadece root”un okuma izni olsun
·    14 Timeout değerini düşürün
·    15 Büyük boyutlu isteklerin sınırlanması
·    16 XML Body boyutunu sınırlamak
·    17 Aynı anda kullanım (concurrency) sınırlaması
·    18 Erişimleri IP”ye göre kısıtlama
·    19 KeepAlive ayarları
·    20 Apache”yi chroot ortamında çalıştırın

İlk olarak en son yamaları geçtiğinize emin olun

Eğer kapınız açık ise pencerelere kilit koymanın bir mantığı yoktur. Aynı şekilde, eğer gerekli yamaları kurmadıysanız, diğer önerilere yamaları geçtikten sonra bakın.
Apache sürüm numarasını ve diğer bilgileri gizleyin
Varsayılan olarak, bütün Apache kurulumları bütün dünyaya hangi Apache sürümünü, işletim sistemini çalıştırdığınızı ve hatta hangi Apache modüllerinin sunucuda kurulu olduğunu söyleyecektir. Saldırganlar bu bilgileri kullanırlar. Ayrıca varsayılan ayarları ellemediğinizi belirten bir mesaj da verilmiş olur.
httpd.conf dosyasında aşağıdaki iki direktifi vermeniz gerekiyor:
ServerSignature Off
ServerTokens Prod
ServerSignature direktifi 404 sayfaları, klasör listeleri gibi apache tarafından yaratılan sayfaların en altında bilgilerin görüntülenmesi ile ilgilidir. ServerTokens direktifi ise Apache”nin HTTP cevap başlığında Server kısmına ne yazacağını belirler. Bunu Prod”a set ederek HTTP cevabında aşağıdaki şekilde cevap verdirmek mümkün:

Server: Apache

Eğer fazla paranoyaksanız bunu da kaynak kodunda değişiklik yaparak veya mod_security kullanarak (aşağıda anlatılıyor) değiştirebilirsiniz.
Apache”yi kendi kullanıcı hesabı ve grubunda çalıştırın
Çeşitli apache kurulumları nobody kullanıcı hesabı ile çalışır. Eğer hem Apache hem de Eposta sunucunuzun da nobody kullanıcı hesabı ile çalıştırıldığını varsayarsak, Apache”ye yapılan başarılı bir saldırı sonrası eposta sunucusunun da ele geçirilmesi veya bunun tersi mümkün olabilir.

User apache
Group apache

Web klasörünün dışındaki dosyalara erişimi engelleyin
Apache”nin web ana klasörü dışındaki dosyalara erişimini istemeyiz. Bütün web sitelerinizin aynı klasör altında olduğunu varsayarsak (örnekte /web olarak geçiyor) aşağıdaki gibi bir ayar yapmalısınız:

Order Deny,Allow
Deny from all
Options None
AllowOverride None
Order Allow,Deny
Allow from all

Not: Options None ve AllowOverride None set ettiğimiz için bu sunucunun tüm override işlemlerini kapatacaktır. Bu sebeple Option veya Override gerektiren her bir klasör için elle ekleme yapmanız gerekir.

Klasör içeriği görüntülemeyi kapatın


Bunu bir Directory tag”i içerisinde Options ile yapabilirsiniz. Options”ı None veya -Indexes olarak set edin:

Options -Indexes
Sunucu tarafı dahil etmeleri (server side include) kapatın
Bu da Directory tag”i içerisinde Options ile yapılıyor. Options”ı None veya -Includes olacak şekilde ayarlayın:
Options -Includes

CGI çalıştırmayı kapatın
Eğer CGI kullanmıyorsanız Directory tag”i içerisinde Options”da set ederek kapatın. Options”ı None veya -ExecCGI olarak set edin:
Options -ExecCGI

Apache”nin sembolik link”leri takip etmesine izin vermeyin
Bu da Directory tag”i içerisinde Options ile yapılıyor. Options”ı None veya -FollowSymLinks olacak şekilde ayarlayın:
Options -FollowSymLinks

Bütün Options özelliklerinin kapatılması
Bütün Options”ları kapatmak istiyorsanız,
Options None
olarak set edin. Birden fazla özellik kapatmak isterseniz aynı satır içerisinde boşluk vererek belirtin:
Options -ExecCGI -FollowSymLinks -Indexes
.htaccess dosyaları için desteğin kaldırılması
Bu Directory tag”i içerisinde AllowOverride direktifi ile yapılıyor. None olacak şekilde ayarlayın:

AllowOverride None

Eğer Overrides”a ihtiyacınız varsa indirilemediklerinden (download) ve/veya isimlerini .htaccess”den başka bir şeye değiştirin. Örneğin .httpdoverride olarak değiştirelim ve .ht ile başlayan bütün dosyaların indirilmesini engelleyelim:
AccessFileName .httpdoverride
Order allow,deny
Deny from all

Satisfy All
mod_security çalıştırın
mod_security, Apache Security kitabının da yazarı olan Ivan Ristic tarafından hazırlanmış yararlı bir Apache modülüdür. mod_security ile aşağıdakileri yapabilirsiniz:

·    Basit filtreleme
·    Regular Expression tabanlı filtreleme
·    URL kodlama kontrolü
·    Unicode kodlama kontrolü
·    Denetim (Auditing)
·    Null byte saldırısı önleme
·    Upload hafıza sınırları
·    Sunucu kimliği maskeleme
·    Dahili chroot desteği
·    ve dahası
Gereksiz modülleri
kapatın
Apache tipik olarak çeşitli modüllerle birlikte kurulmaktadır. Apache modül dokümantasyonuna göz atarak hangi modülün ne yaptığını öğrenin. Aktif durumda olan bazı modüllere ihtiyacınız olmayabilir. httpd.conf dosyasında LoadModüle içeren satırlara bakın. Bir modülü devre dışı bırakmak için basitçe satırın başına bir # işareti koyun (comment out). Modülleri aratmak için
grep LoadModule httpd.conf

komutunu çalıştırın. Genelde aktif olan fakat ihtiyaç duyulmayan modüllere örnek olarak, mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex verilebilir.
Apache”nin konfigürasyon ve çalıştırılabilir dosyalarına sadece root”un okuma izni olsun

Eğer Apache kurulumunuzun /usr/local/apache olduğunu varsayarsak:
chown -R root:root /usr/local/apache
chmod -R o-rwx /usr/local/apache
Timeout değerini düşürün
Timeout (zaman aşımı) süresi varsayılan olarak 300 saniyeye ayarlıdır. Servis kullanımı engelleme saldırılarının (DoS) potansiyel etkilerini azaltmak için bunu düşürebilirsiniz:
Timeout 45

Büyük boyutlu isteklerin sınırlanması

Apache bir http isteğinin boyutunu sınırlamanıza izin veren çeşitli direktifler sunar. Bu özellik de servis kullanımı engelleme saldırılarının etkilerini azaltmak için kullanılabilir. Başlangıç olarak LimitRequestBody direktifi kullanılabilir. Bu direktif varsayılan olarak unlimited/sınırsız olarak ayarlıdır. Eğer 1mb”ın üzerinde dosya gönderimine izin vermiyorsanız bunu:
LimitRequestBody 1048576

olarak set edebilirsiniz. Eğer dosya gönderimlerine (upload) izin vermiyorsanız daha da düşük tutabilirsiniz. Bakılabilecek diğer direktifler ise LimitRequestFields, LimitRequestFieldSize ve LimitRequestLine. Bu direktifler çoğu sunucu için varsayılan olarak makul değerlere ayarlıdır fakat ihtiyaçlarınıza göre değişiklik yapabilirsiniz. Detaylı bilgi için Apache dokümanına göz atın.

XML Body boyutunu sınırlamak

Eğer mod_dav kullanıyorsanız bir XML isteğinin gövedesinin maksimum boyutunu sınırlamak isteyebilirsiniz. LimitXMLRequestBody sadece Apache 2″de var ve varsayılan değeri 1 milyon byte (yaklaşık 1mb). Çoğu makalede eğer WebDAV kullanıyor ve büyük dosyalar upload ediliyorsa, bu değeri 0″a set ederek boyut sınırlamasının kaldırılmasından bahsedilir. Fakat sadece kaynak (source) kontrol için kullanıyorsanız bu değeri 10mb gibi bir değerle sınırlayabilirsiniz:

LimitXMLRequestBody 10485760

Aynı anda kullanım (concurrency) sınırlaması
Apache aynı anda yapılan istekleri işleme ile ilgili olarak çeşitli konfigürasyon ayarları sunar. MaxClients isteklere hizmet için maksimum olarak kaç child process”in yaratılacağını belirler. Eğer sunucunuzun çok sayıda concurrent isteği karşılayacak kadar hafızası yoksa bu değeri yüksek tutmak isteyebilirsiniz. MaxSpaceServer, MaxRequestsPerChild ve Apache2 deki ThreadsPerChild, ServerLimit, ve MaxSpareThreads direktifleri de işletim sistemi ve donanımınıza uyacak şekilde ayarlanabilir.
Erişimleri IP”ye göre kısıtlama

Eğer sadece belirli bir ağdan veya IP adresinden erişilmesi gereken kaynaklarınız varsa bunu apache konfigürasyonunda ayarlayabilirsiniz. Örneğin intranet”inize sadece 176.16 ağından erişim yapılmasını istiyorsanız:
Order Deny,Allow
Deny from all
Allow from 176.16.0.0/16
veya IP kısıtlaması:
Order Deny,Allow
Deny from all
Allow from 127.0.0.1

KeepAlive ayarları

Apache dokümantasyonuna göre HTTP Keep Alive özelliği istemci performansını %50 oranında artırmaktadır. Bu sebeple bu ayarları değiştirirken dikkatli olun, servis kullanımı engelleme saldırısına karşı az bir koruma sağlarken performans”dan önemli ölçüde ödün verebilirsiniz. KeepAlive varsayılan olarak aktiftir ve açık bırakabilirsiniz, fakat varsayılan olarak 100 olan MaxKeepAliveRequests değerini ve 15″e ayarlı olan KeepAliveTimeout değerini değiştirebilirsiniz.Log dosyalarınızı analiz ederek uygun değerleri bulmaya çalışın.

Apache”yi chroot ortamında çalıştırın
chroot programları kendi ayrıştırılmış hapishanelerinde (jail) çalıştırmanızı sağlar. Bu da bir servisin kırılma durumunda sunucudaki diğer şeyleri etkilemesini engeller.

Yukarıda mod_security modülünün kendisinin chroot desteği olduğunu söylemiştim. Bu modül sayesinde aşağıdaki direktifi eklemek yeterli:
 
Saygılar..
 


Düzenleyen megabros - 24-08-2009 Saat 00:02
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu Gör



Bu Sayfa 0.175 Saniyede Yüklendi.