Linux Sunularda Dosya ve Klasör İzinleri (Chmod/Chown) Güvenlik Standartları

Linux sunucularda dosya ve klasör izinleri, güvenliğin en temel ama en çok göz ardı edilen katmanlarından biridir. Yanlış yapılandırılmış bir izin, saldırganların sisteminize sızmasına, verilerinizi çalmasına veya sunucunuzu ele geçirmesine neden olabilir. Bu yazıda chmod ve chown komutlarını kullanarak dosya ve klasör izinlerini nasıl doğru ayarlayacağınızı, hangi değerlerin güvenli olduğunu ve sık yapılan hataları ele alacağız.

Dosya İzinlerinin Temel Mantığı

Linux'te her dosya ve klasörün üç tür izni vardır: okuma (r=4), yazma (w=2) ve çalıştırma (x=1). Bu izinler üç farklı kullanıcı grubu için tanımlanır: sahip (owner), grup (group) ve diğerleri (others). Örneğin 755 izni, sahibine okuma+yazma+çalıştırma (7=4+2+1), grubuna ve diğerlerine sadece okuma+çalıştırma (5=4+1) hakkı verir.

Güvenlik Standartları Nelerdir?

Genel kural olarak, dosyalara gerektiğinden fazla izin vermemek esastır. İşte sektörde kabul gören standartlar:

  • Dosyalar için: 644 – Sahip yazabilir, diğer herkes sadece okur. Web sunucularında PHP, HTML gibi dosyalar için idealdir.
  • Klasörler için: 755 – Sahip tam yetkili, diğerleri klasörü görüntüleyip içine girebilir ancak dosya oluşturamaz.
  • Özel durumlar: Konfigürasyon dosyaları (config.php vb.) genellikle 600 veya 640 olmalıdır. SSH anahtarları (id_rsa) ise kesinlikle 600 olarak ayarlanmalıdır.
  • Kesinlikle kullanmayın: 777 izni herkesin yazmasına izin verir. Bu, sunucunuzu davetiyeyle saldırgana teslim etmek gibidir.

Chown ile Sahiplik Yönetimi

Dosya ve klasörlerin sahibi ve grubu, izinler kadar önemlidir. Örneğin bir web sitesi dosyalarının sahibi www-data kullanıcısı olmalı, ancak yazma izni sadece gereken klasörlere (örneğin uploads) verilmelidir. Temel kurallar:

  • Sistem dosyalarına root dışında kimse yazmamalıdır.
  • Web sunucusu çalışan kullanıcısı (genelde www-data veya nginx) sadece ihtiyacı olan klasörlerde yazma hakkına sahip olmalıdır.
  • chown komutunu kullanırken chown user:group şeklinde kullanmak en sağlıklısıdır.

Sık Yapılan Hatalar ve Çözümleri

En yaygın hata, sorun gidermek için aceleyle chmod 777 -R çalıştırmaktır. Bunun yerine, hangi klasörün neden yazma ihtiyacı olduğunu belirleyip sadece o klasöre minimum izni vermek gerekir. Örneğin bir Laravel projesinde storage ve bootstrap/cache klasörleri yazılabilir olmalı, diğerleri sadece okunabilir.

Bir diğer hata, umask değerini yanlış ayarlamaktır. Umask, yeni oluşturulan dosyaların varsayılan izinlerini belirler. Sunucularda genelde umask 022 kullanılır, bu da dosyaların 644, klasörlerin 755 olmasını sağlar. Daha sıkı bir güvenlik için umask 027 tercih edilebilir.

İzinleri değiştirmeden önce mutlaka bir yedek alın veya değişiklikleri küçük adımlarla test edin. Yanlış bir chmod, sitenizi tamamen erişilemez hale getirebilir.

Chmod Özel İzinleri: SUID, SGID ve Sticky Bit

Bu özel izinler dikkatli kullanılmazsa güvenlik açıklarına yol açabilir:

  • SUID (4xxx): Dosyayı çalıştıran kişiye, dosyanın sahibi yetkisiyle çalışma izni verir. Örneğin passwd komutu. Ancak kullanıcı scriptlerinde SUID kullanmak çok tehlikelidir.
  • SGID (2xxx): Klasörlerde kullanıldığında, içinde oluşturulan dosyaların grubu, klasörün grubu olur. Ortak çalışma alanlarında faydalıdır.
  • Sticky Bit (1xxx): Klasöre uygulandığında, sadece dosyanın sahibi veya root o dosyayı silebilir. /tmp klasörü buna örnektir.

Bu özel izinleri kontrol etmek için ls -l çıktısında s veya t harflerine dikkat edin. Örneğin drwxrwsr-x klasörde SGID olduğunu gösterir.

İzinleri Denetleme ve Otomasyon

Sunucunuzdaki tüm dosya izinlerini düzenli olarak denetlemek için find komutunu kullanabilirsiniz. Örneğin find /var/www -perm 777 ile 777 izinli dosyaları bulabilirsiniz. Ayrıca chmod ve chown işlemlerini dağıtım scriptlerinize ekleyerek her güncellemede izinlerin doğru olduğundan emin olun.

Unutmayın, güvenlik katmanlı bir yapıdır. Dosya izinleri doğru olsa bile, güncel olmayan yazılımlar ve zayıf şifreler tüm emeğinizi boşa çıkarabilir. Ancak doğru yapılandırılmış izinler, saldırganların işini en baştan zorlaştırır.

← Tüm yazılar