VDS (Sanal Özel Sunucu) üzerinde bir web sitesi veya uygulama çalıştırırken, dosya ve klasörlerin izinlerini yanlış yapılandırmak, güvenlik açıklarına ve performans sorunlarına doğrudan neden olur. Birçok sistem yöneticisi ve web tasarımcı, izinleri hızlı bir çözüm olarak 777 (tamamen açık) yaparak sorunu geçiştirse de, bu kritik bir hatadır. Bu yazıda, VDS ortamında dosya izinlerinin doğru şekilde nasıl ayarlanacağını ve sistemin güvenliğini koruyacağını ele alıyoruz.
Linux Dosya İzinleri Temelleri: 755, 644 ve 777 Nedir?
Linux sistemlerinde her dosya ve klasör için üç seviyede izin vardır: sahip (owner), grup (group) ve diğerleri (others). Her seviye için okuma (read-4), yazma (write-2) ve yürütme (execute-1) izinleri tanımlanır.
755(rwxr-xr-x): Klasörlerin standart izni. Sahip tüm işlemleri yapabilir, grup ve diğerleri sadece okuyabilir ve girebilir.644(rw-r--r--): Dosyaların standart izni. Sahip yazabilir, diğerleri sadece okuyabilir.777(rwxrwxrwx): Tüm kullanıcılar her şeyi yapabilir. Güvenlik açısından çok tehlikelidir.750(rwxr-x---): Klasörler için daha katı seçenek. Sadece sahip ve grubu okuyabilir.
VDS'de dosya izinlerini yanlış ayarlamak, bir hacker'ın sistemin kontrolünü ele geçirmesini kolaylaştırır. Örneğin, bir WordPress kurulumunda config dosyası 777 izni ile açık bırakılırsa, kötü niyetli bir üçüncü taraf veritabanı şifrelerini değiştirebilir.
Web Sunucusu Kullanıcısı ve Dosya Sahipliği: www-data ve nginx
VDS'de çalışan web sunucusu (Apache, Nginx, LiteSpeed gibi) belirli bir sistem kullanıcısı altında çalışır. Ubuntu/Debian'da bu genellikle www-data, CentOS/AlmaLinux'ta nginx veya apache kullanıcısıdır.
Dosya sahipliği doğru yapılandırılmadığında iki sorun ortaya çıkar:
- Yetki Sorunu: Web sunucusu dosyayı okuyamaz veya yazamaz, site hata verir.
- Güvenlik Açığı: Yanlışlıkla dosyalara çok geniş izin verilirse, başka bir kullanıcı (veya hacker) sistemi manipüle edebilir.
Doğru yapılandırma: Dosyalar www-data:www-data sahibinde olmalı (veya site sahibi kullanıcısında), izinler ise 644 dosyalar ve 755 klasörler olmalıdır. WordPress gibi yükleme gerektiren uygulamalar için wp-content/uploads klasörü 755 ile kalmalı, ancak yazma işlemi sadece web sunucusu tarafından yapılabilmelidir.
Praktik Örnekler: WordPress ve E-Ticaret Sitelerinde Doğru Yapılandırma
Bir WordPress kurulumunda tipik yapı şöyledir:
wp-config.php:640(sahip yazabilir, grup okuyabilir, diğerleri erişemez)wp-content/:755(web sunucusu yazabilir)wp-content/uploads/:755(yükleme işlemleri için yazılabilir olmalı)- Diğer tüm dosyalar:
644 - Diğer tüm klasörler:
755
E-ticaret siteleri (WooCommerce, Magento) için ise dosya izinleri daha katı olmalıdır, çünkü ödeme verilerine erişim sınırlandırılmalıdır. config/ ve veritabanı yapılandırması klasörleri 750 ile yapılandırılmalı, sadece sahip ve web sunucusu erişebilmelidir.
SFTP ile Dosya Yönetimi: İzinleri Uzaktan Doğru Şekilde Ayarlama
VDS'de dosyaları SFTP (SSH File Transfer Protocol) ile yönetirken, izinleri doğru ayarlamak için istemci yazılımlarını kullanabilirsiniz. Filezilla, WinSCP, Cyberduck gibi araçlar, sağ tık > Properties/Permissions menüsünden izinleri değiştirir.
Ancak toplu işlemler için SSH terminal daha etkilidir:
chmod 644 *.php: Tüm PHP dosyalarının izinini 644 yapchmod 755 klasor/: Bir klasörün izinini 755 yapchown -R www-data:www-data /var/www/site/: Tüm dosyaların sahibini www-data yapfind /var/www/site -type f -exec chmod 644 {} \;: Sadece dosyaların izinini toplu olarak değiştir
Bu işlemleri yapabilmek için VDS'de sudo veya root erişimi gerekir.
Yaygın Hatalar ve Çözümleri
Hata 1: "Permission Denied" hatası alıyorum. Dosya yükleyemiyor veya dizin oluşturamıyorum.
Çözüm: Dosya sahibini kontrol edin (ls -l komutu). Eğer www-data değilse, chown www-data:www-data dosya.txt kullanın. İzin 755 veya 644 olmalı, 777 değil.
Hata 2: WordPress "wp-content/uploads" klasöründe yazar sorunları yaşanıyor.
Çözüm: chmod 755 wp-content/uploads yapın ve sahipliğini chown www-data:www-data wp-content/uploads ile kontrol edin.
Hata 3: Başkasının kötü amaçlı dosya yüklediğini tespit ettim.
Çözüm: Yükleme klasörünün izinlerini 750 yapın, dosya türlerini .htaccess ile kısıtlayın (php dosyasının yüklenmesini engelleyin), ve yüklenen dosyaları periyodik olarak tarayın.
VDS Güvenliği için İzin Kontrolü Checklist
- Web sunucusu kullanıcısını belirle (www-data mı, nginx mi?)
- Tüm dosya sahibini kontrol et ve gerekirse düzelt
- Yapılandırma dosyalarını (config.php, .env) 640 veya 600 yap
- Yükleme klasörlerini 755 yap
- Diğer klasörleri 755, diğer dosyaları 644 yap
- Özel klasörlere (admin, setup) erişimi .htaccess veya Nginx yapılandırması ile sınırla
- Düzenli olarak
find / -perm 777komutu ile tehlikeli dosyaları ara
VDS'de güvenlik sadece firewall veya SSL ile sınırlı değildir. Dosya izinleri, sistemin ilk savunma hattıdır. Yanlış bir izin ayarı, tüm diğer güvenlik önlemlerini ortadan kaldırabilir.
Bogahost'un VDS hizmetleri, yönetilen seçenekler sunarak bu karmaşık yapılandırmaları sizin yerinize otomatik olarak düzenler ve güvenliğini sağlar. Kendi sistem yöneticiniz yoksa, yönetimli VDS ile hem zaman hem de güvenlik kazanırsınız.
Web Siteniz Hızlansın!
Blogumuzu beğendiniz mi? Web siteniz için yüksek performanslı ve %99.9 uptime garantili hosting paketlerimize göz atın.
Paketleri İncele →