Apache’nin Davranışını Anlamak: İstenmeyen Dosyalar Sunmak
Kendi web sunucunuzu Apache HTTP sunucusu kullanarak kurarken, karışık bir durumla karşılaşabilirsiniz: Apache, erişilmesini istemediğiniz dizinlerden dosyalar sunabilir. Bu, birçok kullanıcının, özellikle de yeni başlayanların karşılaştığı yaygın bir sorundur. Bugün, bunun neden olduğunu inceleyeceğiz; özellikle templates
ve sites
isimli dizinlerle ilgili bir senaryoya odaklanacağız. Ayrıca, Apache’yi istenmeyen dosya erişimini önleyecek şekilde düzgün yapılandırmak için gerekli adımları da belirteceğiz.
Sorun: İstenmeyen Dosya Erişimi
Diyelim ki Apache’yi yeni kurdunuz ve C:\uploads\
dizininizden dosya sunduğunu fark ettiniz. Bu klasörde templates
ve sites
adında iki alt klasör var ve her ikisi de testimage.jpg
adında bir dosya içeriyor. İşte karışıklığın başladığı yer:
http://localhost/templates/testimage.jpg
adresine erişmeye çalıştığınızda, Apache dosyayı sorunsuz bir şekilde sunuyor.- Ancak,
http://localhost/sites/testimage.jpg
adresini almaya çalıştığınızda404 Not Found
hatası alıyorsunuz.
Bu davranış, kullanıcıların bir dizinin erişilebilirken diğerinin neden erişilemediğini merak ederek kafalarını kaşımalarına neden olabilir ve onları Apache yapılandırmaları hakkında kafalarının karışmasına yol açabilir.
Çözüm: Apache Yapılandırmasını Araştırmak
Bu sorunu çözmek için Apache’nin yapılandırma dosyalarına, özellikle de httpd.conf
dosyasına ve mevcutsa .htaccess
dosyalarına dalmamız gerekiyor. Takip edilmesi gereken adımlar şu şekildedir:
Adım 1: Ana Yapılandırma Dosyasını Kontrol Edin
-
httpd.conf dosyasını bulun: Bu dosya genellikle Apache kurulumunun
conf
dizininde bulunur. Örneğin,C:\Apache24\conf\httpd.conf
dizininde bulabilirsiniz. -
Dosyayı bir metin editöründe açın: Notepad++ veya Visual Studio Code gibi herhangi bir kod editörü kullanabilirsiniz.
-
Dizin Yönergelerini arayın: Erişim için kuralları belirten
Directory
bloklarını arayın. Bu bloklar, çeşitli klasörler için izinleri tanımlayabilir ve nedentemplates
dizininden dosyaların erişilebilir olduğu,sites
dizininden olanların ise erişilemediği konusunda bilgi verebilir.<Directory "C:/uploads/templates"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
-
Kısıtlamaları kontrol edin: Bu bloklarda erişimi kısıtlayan herhangi bir
deny
veyaallow
yönergesi olup olmadığını kontrol edin.
Adım 2: .htaccess Dosyalarını İnceleyin
-
.htaccess Dosyalarını Arayın: Eğer
C:\uploads\
veya onun alt dizinlerinde herhangi bir.htaccess
dosyası varsa, bu dosyalarhttpd.conf
ayarlarını geçersiz kılabilir. -
Kuralları Gözden Geçirin: Bu dosyaları bir metin editöründe açın ve erişimi etkileyebilecek herhangi bir kural olup olmadığını kontrol edin.
Deny from all
veyaAllow from all
gibi direktifler bulabilirsiniz; bunlar erişim kısıtlamalarını anlamanıza yardımcı olabilir.
Adım 3: Gerekli Ayarlamaları Yapın
-
Yapılandırmayı değiştirin: Bulgularınıza dayanarak,
httpd.conf
veya.htaccess
dosyalarını gerekli şekilde ayarlayın; böylece dizin erişim kuralları istediğiniz yapılandırmalarla uyumlu hale gelsin. -
Apache’yi yeniden başlatın: Herhangi bir yapılandırma dosyasını değiştirdikten sonra, yeni ayarların uygulanması için Apache hizmetini yeniden başlatmayı unutmayın.
-
Erişimi tekrar test edin: Önceden test ettiğiniz URL’lere erişmeyi deneyin ve değişikliklerinizin başarılı olup olmadığını kontrol edin.
Sonuç
Apache’yi yapılandırmak, başlangıçta biraz karmaşık olabilir; özellikle web sunucunuz aracılığıyla hangi dizinlerin erişilebilir olduğunu kontrol etmeye çalışıyorsanız. Ancak, httpd.conf
ve muhtemel htaccess
dosyalarını dikkatlice kontrol ederek, dizinlerinizden sunulabilecek dosyalar üzerinde daha net bir kontrol elde edebilirsiniz. Bu yazıda belirtilen adımları takip ederseniz, istenmeyen dosya erişimi ile ilgili sorunları çözebilir ve güvenli, işlevsel bir web sunucusu sağlama hedefine ulaşabilirsiniz.
Unutmayın, önleme her şeyden önemlidir! Sunucu yapılandırmalarınızı düzenli olarak gözden geçirerek istediğiniz güvenlik duruşunu koruyun. İyi hostingler!