|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head>
|
|
Packit |
90a5c9 |
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
Packit |
90a5c9 |
This file is generated from xml source: DO NOT EDIT
|
|
Packit |
90a5c9 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
Packit |
90a5c9 |
-->
|
|
Packit |
90a5c9 |
<title>Güvenlik İpuçları - Apache HTTP Sunucusu Sürüm 2.4</title>
|
|
Packit |
90a5c9 |
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
|
|
Packit |
90a5c9 |
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
|
|
Packit |
90a5c9 |
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
|
|
Packit |
90a5c9 |
<script src="../style/scripts/prettify.min.js" type="text/javascript">
|
|
Packit |
90a5c9 |
</script>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
|
|
Packit |
90a5c9 |
<body id="manual-page">
|
|
Packit |
90a5c9 |
Modüller | Yönergeler | SSS | Terimler | Site Haritası
|
|
Packit |
90a5c9 |
Apache HTTP Sunucusu Sürüm 2.4
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.4 > Çeşitli Belgeler
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Mevcut Diller: en |
|
|
Packit |
90a5c9 |
fr |
|
|
Packit |
90a5c9 |
ko |
|
|
Packit |
90a5c9 |
tr
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Bir HTTP Sunucusunu ayarlarken dikkat edilmesi gerekenler ve bazı
|
|
Packit |
90a5c9 |
ipuçları. Öneriler kısmen Apache’ye özel kısmen de genel olacaktır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Hizmet Reddi (DoS) Saldırıları
|
|
Packit |
90a5c9 |
ServerRoot Dizinlerinin İzinleri
|
|
Packit |
90a5c9 |
Sunucu Taraflı İçerik Yerleştirme
|
|
Packit |
90a5c9 |
CGI Genelinde
|
|
Packit |
90a5c9 |
ScriptAlias ’sız CGI
|
|
Packit |
90a5c9 |
ScriptAlias ’lı CGI
|
|
Packit |
90a5c9 |
Devingen içerikli kaynaklar
|
|
Packit |
90a5c9 |
Devingen içeriğin güvenliği
|
|
Packit |
90a5c9 |
Sistem Ayarlarının Korunması
|
|
Packit |
90a5c9 |
Sunucu dosyalarının öntanımlı olarak korunması
|
|
Packit |
90a5c9 |
Günlüklerin İzlenmesi
|
|
Packit |
90a5c9 |
Yapılandırma bölümlerinin birleştirilmesi
|
|
Packit |
90a5c9 |
Ayrıca bakınız:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache HTTP Sunucusu iyi bir güvenlik sicilinin yanında güvenlik
|
|
Packit |
90a5c9 |
konularıyla oldukça ilgili bir geliştirici topluluğuna sahiptir. Fakat,
|
|
Packit |
90a5c9 |
bir yazılımın dağıtılmasının ardından küçük ya da büyük bazı sorunların
|
|
Packit |
90a5c9 |
keşfedilmesi kaçınılmazdır. Bu sebeple, yazılım güncellemelerinden
|
|
Packit |
90a5c9 |
haberdar olmak oldukça önem kazanır. HTTP sunucunuzu doğrudan
|
|
Packit |
90a5c9 |
Apache’den temin ediyorsanız yeni sürümler ve güvenlik güncellemeleri
|
|
Packit |
90a5c9 |
ile ilgili bilgileri tam zamanında alabilmek için Apache
|
|
Packit |
90a5c9 |
HTTP Sunucusu Duyuru Listesine mutlaka üye olmanızı öneririz.
|
|
Packit |
90a5c9 |
Apache yazılımının üçüncü parti dağıtımlarını yapanların da buna benzer
|
|
Packit |
90a5c9 |
hizmetleri vardır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Şüphesiz, bir HTTP sunucusu, sunucu kodunda bir sorun olmasa da
|
|
Packit |
90a5c9 |
tehlike altındadır. Eklenti kodları, CGI betikleri hatta işletim
|
|
Packit |
90a5c9 |
sisteminden kaynaklanan sorunlar nedeniyle bu ortaya çıkabilir. Bu
|
|
Packit |
90a5c9 |
bakımdan, sisteminizdeki tüm yazılımların sorunları ve güncellemeleri
|
|
Packit |
90a5c9 |
hakkında bilgi sahibi olmalısınız.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Tüm ağ sunucuları, istemcilerin sistem kaynaklarından yararlanmalarını
|
|
Packit |
90a5c9 |
engellemeye çalışan hizmet reddi saldırılarına (HRS) maruz kalabilir.
|
|
Packit |
90a5c9 |
Bu tür saldırıları tamamen engellemek mümkün değildir, fakat
|
|
Packit |
90a5c9 |
yarattıkları sorunları azaltmak için bazı şeyler yapabilirsiniz.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Çoğunlukla en etkili anti-HRS aracı bir güvenlik duvarı veya başka bir
|
|
Packit |
90a5c9 |
işletim sistemi yapılandırmasıdır. Örneğin, çoğu güvenlik duvarı
|
|
Packit |
90a5c9 |
herhangi bir IP adresinden aynı anda yapılan bağlantıların sayısına bir
|
|
Packit |
90a5c9 |
sınırlama getirmek üzere yapılandırılabilir. Böylece basit saldırılar
|
|
Packit |
90a5c9 |
engellenebilir. Ancak bunun dağıtık hizmet reddi saldırılarına (DHRS)
|
|
Packit |
90a5c9 |
karşı bir etkisi olmaz.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Bunların yanında Apache HTTP Sunucusunun da sorunları azaltıcı
|
|
Packit |
90a5c9 |
tedbirler alınmasını sağlayacak bazı yapılandırmaları vardır:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
RequestReadTimeout
|
|
Packit |
90a5c9 |
yönergesi bir istemcinin isteği göndermek için harcadığı zamanı
|
|
Packit |
90a5c9 |
sınırlamayı sağlar.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HRS’ye maruz kalması olası sitelerde TimeOut yönergesinin değeri düşürülmelidir. Birkaç
|
|
Packit |
90a5c9 |
saniye gibi mümkün olduğunca düşük bir ayar uygun olabilir. Ancak
|
|
Packit |
90a5c9 |
TimeOut başka işlemlerde de
|
|
Packit |
90a5c9 |
kullanıldığından çok düşük değerler, örneğin, uzun süre çalışan CGI
|
|
Packit |
90a5c9 |
betiklerinde sorunlar çıkmasına sebep olabilir.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HRS’ye maruz kalması olası sitelerde KeepAliveTimeout yönergesinin değeri de düşürülebilir.
|
|
Packit |
90a5c9 |
Hatta bazı siteler başarımı arttırmak amacıyla KeepAlive yönergesi üzerinden kalıcı
|
|
Packit |
90a5c9 |
bağlantıları tamamen kapatabilirler.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Zaman aşımıyla ilgili yönergeler bakımından diğer modüller de
|
|
Packit |
90a5c9 |
araştırılmalıdır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
LimitRequestBody ,
|
|
Packit |
90a5c9 |
LimitRequestFields ,
|
|
Packit |
90a5c9 |
LimitRequestFieldSize ,
|
|
Packit |
90a5c9 |
LimitRequestLine ve
|
|
Packit |
90a5c9 |
LimitXMLRequestBody yönergeleri,
|
|
Packit |
90a5c9 |
istemci girdileri ile tetiklenen özkaynak tüketimini sınırlamak için
|
|
Packit |
90a5c9 |
yapılandırılırken dikkatli olunmalıdır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
İşletim sisteminiz desteklediği takdirde, işletim sisteminin isteği
|
|
Packit |
90a5c9 |
işleyen kısmını yüksüz bırakmak için AcceptFilter yönergesinin etkin olmasını sağlamalısınız.
|
|
Packit |
90a5c9 |
Bu, Apache HTTP Sunucusunda zaten öntanımlı olarak etkindir.
|
|
Packit |
90a5c9 |
Yapacağınız şey işletim sistemi çekirdeğini buna göre yapılandırmak
|
|
Packit |
90a5c9 |
olacaktır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Sunucu tarafından özkaynakları tüketmeden aynı anda işlenebilecek
|
|
Packit |
90a5c9 |
bağlantıların sayısını sınırlamak için MaxRequestWorkers yönergesini kullanın. Ayrıca, başarım arttırma belgesine de
|
|
Packit |
90a5c9 |
bakabilirsiniz.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HRS’lerin etkilerini azaltmak için aynı andaki bağlantı sayısını
|
|
Packit |
90a5c9 |
arttırabilecek evreli MPM’lerden birini
|
|
Packit |
90a5c9 |
kullanmak iyi olabilir. Dahası, event MPM’i
|
|
Packit |
90a5c9 |
her bağlantıya yeni bir evre atanmaması için eşzamansız işlem yapar.
|
|
Packit |
90a5c9 |
OpenSSL kütüphanesinin doğası nedeniyle
|
|
Packit |
90a5c9 |
event MPM’i mod_ssl ve diğer girdi
|
|
Packit |
90a5c9 |
süzgeçleri ile henüz uyumlu değildir. Bu durumlarda,
|
|
Packit |
90a5c9 |
worker MPM'inin davranışına geri döner.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
http://modules.apache.org/
|
|
Packit |
90a5c9 |
adresinde, belli istemci davranışlarını sınırlayacak ve HRS ile
|
|
Packit |
90a5c9 |
ilgili sorunları azaltmaya yardımcı olacak üçüncü parti modüller
|
|
Packit |
90a5c9 |
bulunabilir.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Normalde, Apache root kullanıcı tarafından başlatılır ve hizmetleri
|
|
Packit |
90a5c9 |
sunarken User yönergesi
|
|
Packit |
90a5c9 |
tarafından tanımlanan kullanıcının aidiyetinde çalışır. Root tarafından
|
|
Packit |
90a5c9 |
çalıştırılan komutlarda olduğu gibi, root olmayan kullanıcıların
|
|
Packit |
90a5c9 |
yapacakları değişikliklerden korunmak konusunda da dikkatli
|
|
Packit |
90a5c9 |
olmalısınız. Dosyaların sadece root tarafından yazılabilir olmasını
|
|
Packit |
90a5c9 |
sağlamak yeterli değildir, bu dizinler ve üst dizinler için de
|
|
Packit |
90a5c9 |
yapılmalıdır. Örneğin, sunucu kök dizininin
|
|
Packit |
90a5c9 |
/usr/local/apache olmasına karar verdiyseniz, bu dizini
|
|
Packit |
90a5c9 |
root olarak şöyle oluşturmanız önerilir:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
mkdir /usr/local/apache
|
|
Packit |
90a5c9 |
cd /usr/local/apache
|
|
Packit |
90a5c9 |
mkdir bin conf logs
|
|
Packit |
90a5c9 |
chown 0 . bin conf logs
|
|
Packit |
90a5c9 |
chgrp 0 . bin conf logs
|
|
Packit |
90a5c9 |
chmod 755 . bin conf logs
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/ , /usr , /usr/local
|
|
Packit |
90a5c9 |
dizinlerinde sadece root tarafından değişiklik yapılabileceği kabul
|
|
Packit |
90a5c9 |
edilir. httpd çalıştırılabilirini kurarken de benzer
|
|
Packit |
90a5c9 |
bir önlemin alındığından emin olmalısınız:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
cp httpd /usr/local/apache/bin
|
|
Packit |
90a5c9 |
chown 0 /usr/local/apache/bin/httpd
|
|
Packit |
90a5c9 |
chgrp 0 /usr/local/apache/bin/httpd
|
|
Packit |
90a5c9 |
chmod 511 /usr/local/apache/bin/httpd
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Diğer kullanıcıların değişiklik yapabileceği bir dizin olarak bir
|
|
Packit |
90a5c9 |
htdocs dizini oluşturabilirsiniz. Bu dizine root
|
|
Packit |
90a5c9 |
tarafından çalıştırılabilecek dosyalar konulmamalı ve burada root
|
|
Packit |
90a5c9 |
tarafından hiçbir dosya oluşturulmamalıdır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Diğer kullanıcılara root tarafından yazılabilen ve çalıştırılabilen
|
|
Packit |
90a5c9 |
dosyalarda değişiklik yapma hakkını tanırsanız, onlara root
|
|
Packit |
90a5c9 |
kullanıcısını ele geçirilebilme hakkını da tanımış olursunuz. Örneğin,
|
|
Packit |
90a5c9 |
biri httpd çalıştırılabilirini zararlı bir programla
|
|
Packit |
90a5c9 |
değiştirebilir ve o programı tekrar çalıştırdığınız sırada program
|
|
Packit |
90a5c9 |
yapacağını yapmış olur. Günlükleri kaydettiğiniz dizin herkes
|
|
Packit |
90a5c9 |
tarafından yazılabilen bir dizin olduğu takdirde, birileri bir günlük
|
|
Packit |
90a5c9 |
dosyasını bir sistem dosyasına sembolik bağ haline getirerek root
|
|
Packit |
90a5c9 |
kullanıcısının bu dosyaya ilgisiz şeyler yazmasına sebep olabilir.
|
|
Packit |
90a5c9 |
Günlüklerin dosyaları herkes tarafından yazılabilir olduğu takdirde ise
|
|
Packit |
90a5c9 |
birileri dosyaya yanıltıcı veriler girebilir.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
SSI sayfaları bir sunucu yöneticisi açısından çeşitli olası risklere
|
|
Packit |
90a5c9 |
kaynaklık edebilir.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
İlk risk, sunucu yükündeki artış olasılığıdır. Tüm SSI sayfaları, SSI
|
|
Packit |
90a5c9 |
kodu içersin içermesin Apache tarafından çözümlenir. Bu küçük bir artış
|
|
Packit |
90a5c9 |
gibi görünürse de bir paylaşımlı sunucu ortamında önemli bir yük haline
|
|
Packit |
90a5c9 |
gelebilir.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
SSI sayfaları, CGI betikleriyle ilgili riskleri de taşır. exec
|
|
Packit |
90a5c9 |
cmd elemanı kullanılarak bir SSI sayfasından herhangi bir CGI
|
|
Packit |
90a5c9 |
betiğini veya bir sistem programını Apache’nin aidiyetinde olduğu
|
|
Packit |
90a5c9 |
kullanıcının yetkisiyle çalıştırmak mümkündür.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
SSI sayfalarının yararlı özelliklerinden yararlanırken güvenliğini de
|
|
Packit |
90a5c9 |
arttırmanın bazı yolları vardır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Sunucu yöneticisi, bir başıbozuk SSI sayfasının sebep olabileceği
|
|
Packit |
90a5c9 |
zararları bertaraf etmek için CGI Genelinde
|
|
Packit |
90a5c9 |
bölümünde açıklandığı gibi suexec’i etkin
|
|
Packit |
90a5c9 |
kılabilir.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
SSI sayfalarını .html veya .htm
|
|
Packit |
90a5c9 |
uzantılarıyla etkinleştirmek tehlikeli olabilir. Bu özellikle
|
|
Packit |
90a5c9 |
paylaşımlı ve yüksek trafikli bir sunucu ortamında önemlidir. SSI
|
|
Packit |
90a5c9 |
sayfalarını normal sayfalardan farklı olarak .shtml gibi
|
|
Packit |
90a5c9 |
bildik bir uzantıyla etkinleştirmek gerekir. Bu, sunucu yükünü asgari
|
|
Packit |
90a5c9 |
düzeyde tutmaya ve risk yönetimini kolaylaştırmaya yarar.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Diğer bir çözüm de SSI sayfalarından betik ve program çalıştırmayı
|
|
Packit |
90a5c9 |
iptal etmektir. Bu, Options
|
|
Packit |
90a5c9 |
yönergesine değer olarak Includes yerine
|
|
Packit |
90a5c9 |
IncludesNOEXEC vererek sağlanır. Ancak, eğer betiklerin
|
|
Packit |
90a5c9 |
bulunduğu dizinde ScriptAlias
|
|
Packit |
90a5c9 |
yönergesiyle CGI betiklerinin çalışması mümkün kılınmışsa,
|
|
Packit |
90a5c9 |
kullanıcıların <--#include virtual="..." --> ile bu
|
|
Packit |
90a5c9 |
betikleri çalıştırabileceklerine dikkat ediniz.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Herşeyden önce ya CGI betiğini/programını yazanlara ya da kendinizin
|
|
Packit |
90a5c9 |
CGI'deki güvenlik açıklarını (ister kasıtlı olsun ister tesadüfi)
|
|
Packit |
90a5c9 |
yakalama becerinize güvenmek zorundasınız. CGI betikleri esasen
|
|
Packit |
90a5c9 |
sisteminizdeki komutları site kullanıcılarının izinleriyle
|
|
Packit |
90a5c9 |
çalıştırırlar. Bu bakımdan dikkatle denenmedikleri takdirde oldukça
|
|
Packit |
90a5c9 |
tehlikeli olabilirler.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
CGI betiklerinin hepsi aynı kullanıcının aidiyetinde çalışırsa diğer
|
|
Packit |
90a5c9 |
betiklerle aralarında çelişkilerin ortaya çıkması ister istemez
|
|
Packit |
90a5c9 |
kaçınılmazdır. Örneğin A kullanıcısının B kullanıcısına garezi varsa
|
|
Packit |
90a5c9 |
bir betik yazıp B’nin CGI veritabanını silebilir. Bu gibi durumların
|
|
Packit |
90a5c9 |
ortaya çıkmaması için betiklerin farklı kullanıcıların aidiyetlerinde
|
|
Packit |
90a5c9 |
çalışmasını sağlayan ve 1.2 sürümünden beri Apache ile dağıtılan suEXEC diye bir program vardır. Başka bir yol
|
|
Packit |
90a5c9 |
da CGIWrap kullanmaktır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Kullanıcıların sitenin her yerinde CGI betiklerini çalıştırmalarına
|
|
Packit |
90a5c9 |
izin vermek ancak şu koşullarda mümkün olabilir:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Kullanıcılarınızın kasıtlı ya da kasıtsız sistemi saldırıya açık
|
|
Packit |
90a5c9 |
hale getirecek betikler yazmayacaklarına tam güveniniz vardır.
|
|
Packit |
90a5c9 |
Sitenizin güvenliği zaten o kadar kötüdür ki, bir delik daha
|
|
Packit |
90a5c9 |
açılmasının mahzuru yoktur.
|
|
Packit |
90a5c9 |
Sitenizin sizden başka kullanıcısı yoktur ve sunucunuzu sizden
|
|
Packit |
90a5c9 |
başka hiç kimsenin ziyaret etmesi mümkün değildir.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
CGI’yi belli dizinlerle sınırlamak yöneticiye bu dizinlerde daha iyi
|
|
Packit |
90a5c9 |
denetim imkanı sağlar. Bu kaçınılmaz olarak ScriptAlias ’sız CGI’den çok daha
|
|
Packit |
90a5c9 |
güvenlidir, ancak bu dizinlere yazma hakkı olan kullanıcılarınız
|
|
Packit |
90a5c9 |
güvenilir kişiler olması ve site yöneticisinin de olası güvenlik
|
|
Packit |
90a5c9 |
açıklarına karşı CGI betiklerini ve programlarını denemeye istekli
|
|
Packit |
90a5c9 |
olması şartıyla.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Çoğu site yöneticisi ScriptAlias ’sız CGI yerine bu
|
|
Packit |
90a5c9 |
yaklaşımı seçer.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Sunucunun bir parçası gibi çalışan, mod_php ,
|
|
Packit |
90a5c9 |
mod_perl , mod_tcl ve mod_python
|
|
Packit |
90a5c9 |
gibi gömülü betik çalıştırma seçenekleri sunucuyu çalıştıran
|
|
Packit |
90a5c9 |
kullanıcının aidiyetinde çalışırlar (User yönergesine bakınız). Bu bakımdan bu betik
|
|
Packit |
90a5c9 |
yorumlayıcılar tarafından çalıştırılan betikler, sunucu kullanıcısının
|
|
Packit |
90a5c9 |
eriştiği herşeye erişebilirler. Bazı betik yorumlayıcıların getirdiği
|
|
Packit |
90a5c9 |
bazı sınırlamalar varsa da bunlara pek güvenmemek, gerekli sınamaları
|
|
Packit |
90a5c9 |
yine de yapmak gerekir.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
mod_php , mod_perl veya
|
|
Packit |
90a5c9 |
mod_python gibi devingen içeriği yapılandırırken
|
|
Packit |
90a5c9 |
güvenlikle ilgili değerlendirmelerin çoğu httpd 'nin
|
|
Packit |
90a5c9 |
kapsamından çıkar ve bu modüllerin belgelerini incelemek ihtiyacı
|
|
Packit |
90a5c9 |
duyarsınız. Örneğin, PHP çoğu zaman kapalı tutulan
|
|
Packit |
90a5c9 |
Güvenli
|
|
Packit |
90a5c9 |
Kip ayarını etkin kılmanızı önerir. Daha fazla güvenlik için bir
|
|
Packit |
90a5c9 |
diğer örnek bir PHP eklentisi olan
|
|
Packit |
90a5c9 |
Suhosin'dir. Bunlar
|
|
Packit |
90a5c9 |
hakkında daha ayrıntılı bilgi için her projenin kendi belgelerine
|
|
Packit |
90a5c9 |
başvurun.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache seviyesinde, mod_security
|
|
Packit |
90a5c9 |
adı verilen modülü bir HTTP güvenlik duvarı gibi ele alabilir, devingen
|
|
Packit |
90a5c9 |
içeriğin güvenliğini arttırmanıza yardımcı olmak üzere inceden inceye
|
|
Packit |
90a5c9 |
yapılandırabilirsiniz.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Güvenliği gerçekten sıkı tutmak istiyorsanız, kullanıcılarınızın
|
|
Packit |
90a5c9 |
yapılandırmanızdaki güvenlik ayarlarını geçersiz kılmak için
|
|
Packit |
90a5c9 |
.htaccess dosyalarını kullanabilmelerinin de önüne
|
|
Packit |
90a5c9 |
geçmelisiniz. Bunu yapmanın tek bir yolu vardır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Sunucu yapılandırma dosyanıza şunu yerleştirin:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<Directory "/">
|
|
Packit |
90a5c9 |
AllowOverride None
|
|
Packit |
90a5c9 |
</Directory>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Böylece, belli dizinlerde özellikle etkinleştirilmedikçe bütün
|
|
Packit |
90a5c9 |
dizinlerde .htaccess dosyalarının kullanımını engellemiş
|
|
Packit |
90a5c9 |
olursunuz.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Bu ayar Apache 2.3.9 itibariyle öntanımlıdır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache’nin ister istemez yanlış anlaşılan yönlerinden biri öntanımlı
|
|
Packit |
90a5c9 |
erişim özelliğidir. Yani siz aksine bir şeyler yapmadıkça, sunucu normal
|
|
Packit |
90a5c9 |
URL eşleme kurallarını kullanarak bir dosyayı bulabildiği sürece onu
|
|
Packit |
90a5c9 |
istemciye sunacaktır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Örneğin, aşağıdaki durumu ele alalım:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# cd /; ln -s / public_html
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Ve, tarayıcınıza http://localhost/~root/ yazın.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Böylece, istemcilerin tüm dosya sisteminizi gezmelerine izin vermiş
|
|
Packit |
90a5c9 |
olursunuz. Bu işlemin sonuçlarının önünü almak için sunucu yapılandırma
|
|
Packit |
90a5c9 |
dosyanıza şunları yazın:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<Directory "/">
|
|
Packit |
90a5c9 |
Require all denied
|
|
Packit |
90a5c9 |
</Directory>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Bu suretle, dosya sisteminize öntanımlı erişimi yasaklamış olursunuz.
|
|
Packit |
90a5c9 |
Erişime izin vermek istediğiniz dizinler için uygun Directory bölümleri eklemeniz yeterli
|
|
Packit |
90a5c9 |
olacaktır. Örnek:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<Directory "/usr/users/*/public_html">
|
|
Packit |
90a5c9 |
Require all granted
|
|
Packit |
90a5c9 |
</Directory>
|
|
Packit |
90a5c9 |
<Directory "/usr/local/httpd">
|
|
Packit |
90a5c9 |
Require all granted
|
|
Packit |
90a5c9 |
</Directory>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Location ve Directory yönergelerinin etkileşimine de
|
|
Packit |
90a5c9 |
özellikle önem vermelisiniz; örneğin <Directory "/">
|
|
Packit |
90a5c9 |
erişimi yasaklarken bir <Location "/"> yönergesi bunu
|
|
Packit |
90a5c9 |
ortadan kaldırabilir.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
UserDir yönergesi de size
|
|
Packit |
90a5c9 |
buna benzer bir oyun oynayabilir; yönergeye ./ atamasını
|
|
Packit |
90a5c9 |
yaparsanız, root kullanıcısı söz konusu olduğunda yukarıda ilk örnekteki
|
|
Packit |
90a5c9 |
durumla karşılaşırız. Sunucu yapılandırma dosyanızda aşağıdaki satırın
|
|
Packit |
90a5c9 |
mutlaka bulunmasını öneririz:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
UserDir disabled root
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Sunucunuzda olup biteni günü gününe bilmek istiyorsanız günlük dosyalarına bakmalısınız. Günlük dosyaları
|
|
Packit |
90a5c9 |
sadece olup biteni raporlamakla kalmaz, sunucunuza ne tür saldırılar
|
|
Packit |
90a5c9 |
yapıldığını ve güvenlik seviyenizin yeterli olup olmadığını anlamanızı da
|
|
Packit |
90a5c9 |
sağlarlar.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Bazı örnekler:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
grep -c "/jsp/source.jsp?/jsp/ /jsp/source.jsp??" access_log
|
|
Packit |
90a5c9 |
grep "client denied" error_log | tail -n 10
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
İlk örnek, Apache Tomcat Source.JSP Bozuk İstek Bilgilerini İfşa Açığını
|
|
Packit |
90a5c9 |
istismar etmeyi deneyen saldırıların sayısını verirken ikinci örnek,
|
|
Packit |
90a5c9 |
reddedilen son on istemciyi listeler; örnek:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
[Thu Jul 11 17:18:39 2002] [error] [client foo.example.com] client denied
|
|
Packit |
90a5c9 |
by server configuration: /usr/local/apache/htdocs/.htpasswd
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Gördüğünüz gibi günlük dosyaları sadece ne olup bittiğini raporlar, bu
|
|
Packit |
90a5c9 |
bakımdan eğer istemci .htpasswd dosyasına erişebiliyorsa erişim günlüğünüzde şuna benzer bir
|
|
Packit |
90a5c9 |
kayıt görürsünüz:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
foo.example.com - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1"
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Bu, sunucu yapılandırma dosyanızda aşağıdaki yapılandırmayı iptal
|
|
Packit |
90a5c9 |
ettiğiniz anlamına gelir:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<Files ".ht*">
|
|
Packit |
90a5c9 |
Require all denied
|
|
Packit |
90a5c9 |
</Files>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Yapılandırma bölümlerinin birleştirilmesi karmaşık bir işlem olup bazı
|
|
Packit |
90a5c9 |
durumlarda yönergelere bağlıdır. Yönergeleri bir araya getirirken
|
|
Packit |
90a5c9 |
aralarındaki bağımlılıkları daima sınayın.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
mod_access_compat gibi henüz yönerge katıştırma
|
|
Packit |
90a5c9 |
mantığını gerçeklememiş modüller için sonraki bölümlerdeki davranış, bu
|
|
Packit |
90a5c9 |
modüllerin yönergelerini içerip içermemesine bağlıdır. Yapılandırmada
|
|
Packit |
90a5c9 |
yönergelerin yerleri değiştirildiğinde fakat bir katıştırma
|
|
Packit |
90a5c9 |
yapılmadığında, yapılandırma bir değişiklik yapılana kadar miras
|
|
Packit |
90a5c9 |
alınır.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Mevcut Diller: en |
|
|
Packit |
90a5c9 |
fr |
|
|
Packit |
90a5c9 |
ko |
|
|
Packit |
90a5c9 |
tr
|
|
Packit |
90a5c9 |
Notice:This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
|
|
Packit |
90a5c9 |
<script type="text/javascript">
|
|
Packit |
90a5c9 |
var comments_shortname = 'httpd';
|
|
Packit |
90a5c9 |
var comments_identifier = 'http://httpd.apache.org/docs/2.4/misc/security_tips.html';
|
|
Packit |
90a5c9 |
(function(w, d) {
|
|
Packit |
90a5c9 |
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
|
|
Packit |
90a5c9 |
d.write('
|
|
Packit |
90a5c9 |
var s = d.createElement('script');
|
|
Packit |
90a5c9 |
s.type = 'text/javascript';
|
|
Packit |
90a5c9 |
s.async = true;
|
|
Packit |
90a5c9 |
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
|
|
Packit |
90a5c9 |
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
else {
|
|
Packit |
90a5c9 |
d.write('
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
})(window, document);
|
|
Packit |
90a5c9 |
//--></script>
|
|
Packit |
90a5c9 |
Copyright 2018 The Apache Software Foundation. Apache License, Version 2.0 altında lisanslıdır.
|
|
Packit |
90a5c9 |
Modüller | Yönergeler | SSS | Terimler | Site Haritası <script type="text/javascript">
|
|
Packit |
90a5c9 |
if (typeof(prettyPrint) !== 'undefined') {
|
|
Packit |
90a5c9 |
prettyPrint();
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
//--></script>
|
|
Packit |
90a5c9 |
</body></html>
|