
Güncellendi:
NFS (Network File System), bir sunucudaki dosya sisteminin istemciler tarafından ağ üzerinden kullanılmasını sağlayan bir protokoldür. Paylaşımın bağlanması tek başına güvenli olduğu anlamına gelmez: export kapsamı, istemci kimliği, dosya izinleri ve kullanılan NFS sürümü birlikte değerlendirilmelidir.
Görseli büyüt →
Sürüm ve kimlik modelini belirleyin
NFSv3 ile NFSv4 ailesinin port, kilitleme, kimlik eşleme ve güvenlik davranışları aynı değildir. Sunucu ve istemci sürümünü seçip dağıtım belgelerini birlikte inceleyin. Kullanıcıların UID/GID değerleri veya kimlik hizmetleri uyumsuzsa dosya sahipliği beklenmedik görünebilir.
Güvenilen bir özel ağ, kimlik doğrulama ihtiyacını ortadan kaldırmaz. Basit adres tabanlı bir export örneğini internet üzerinden herkese açık bir paylaşım haline getirmeyin. Gereksinime göre Kerberos ve desteklenen bütünlük/gizlilik seçeneklerini değerlendirin; bunların yapılandırma ve kimlik altyapısı ihtiyacını ayrıca planlayın.
Sınırlı salt okunur paylaşım örneği
Aşağıdaki örnek Ubuntu Server belgelerindeki paket adlarını kullanır; farklı bir dağıtımda paket ve servis adlarını ayrıca doğrulayın. İki ayrı test makinesi, boş bir deneme dizini ve gerçek ortamınıza uyarlanmış adresler kullanın. Sunucu adresi 192.168.1.100, izinli istemci 192.168.1.50 olarak örneklenmiştir; NFS sürümünü seçip ilgili portları yalnız bu istemciye açın.
sudo apt-get install nfs-kernel-server
sudo mkdir -m 0755 /paylasim
sudoedit /etc/exports
Export dosyasına yalnız deneme paylaşımı için şu kural eklenir:
/paylasim 192.168.1.50(ro,sync,root_squash)
ro sunucu tarafından salt okunur erişim tanımlar. sync sunucunun yazma onayı davranışıyla ilgilidir. root_squash, uzak istemcinin root kimliğini anonim kimliğe eşler; anonim kullanıcının dosya izinlerinden gelen okuma erişimini kendiliğinden kaldırmaz.
sudo exportfs -ra
sudo exportfs -v
exportfs -ra mevcut export yapılandırmasını yeniden uygular; bu nedenle üretimdeki diğer satırları değiştirmeden önce etkisini inceleyin. Çıktıda yalnız amaçlanan istemci ve seçeneklerin etkin olduğunu kontrol edin.
İstemcide bağlama ve kabul
sudo apt-get install nfs-common
sudo mkdir -m 0755 /yerel_dizin
sudo mount -t nfs -o ro 192.168.1.100:/paylasim /yerel_dizin
İstemcideki ro seçeneği ek bir sınırdır; sunucu export kuralının yerine geçmez. Bağlantı kurulduktan sonra doğru NFS sürümünün kullanıldığını, dosya sahipliğini ve izinli kullanıcının okuyabildiğini doğrulayın. Ardından yazmanın reddedildiğini ve izin verilmeyen ayrı bir istemcinin paylaşımı bağlayamadığını test edin.
Uzak root ile yapılan işlemin anonim kimliğe nasıl eşlendiğini ayrıca kontrol edin. Anonim kimliğin erişimini dosya izinleri belirler; “root tamamen engellendi” sonucunu yalnız seçenek adına bakarak çıkarmayın. Kalıcı mount yapılandırmasına geçmeden önce yeniden başlatma ve geri alma davranışını ayrı test edin.
Performansı güvenlikten ödün vermeden inceleyin
Sunucu diski, ağ gecikmesi, uygulamanın küçük/büyük dosya davranışı ve eşzamanlı istemci sayısı sonucu etkiler. async, büyük tamponlar veya farklı cache ayarlarını evrensel hız önerisi olarak uygulamayın; tutarlılık ve hata anındaki veri davranışını anlamadan değiştirmeyin. Günlükler, I/O bekleme ve ağ sayaçlarını temsili iş yüküyle birlikte gözlemleyin.
Sık sorulan sorular
- root_squash bütün uzak root erişimini keser mi?
-
Hayır. Uzak root anonim kimliğe eşlenir. Bu kimlik, sunucudaki dosya ve dizin izinlerinin verdiği erişime sahip olabilir.
- Sadece istemcide ro seçmek yeterli midir?
-
Sunucu politikasını garanti etmez. Salt okunur kapsamı export tarafında tanımlayıp izinli ve izinsiz istemcilerle ayrıca doğrulayın.
Sonraki adım
Paylaşımın altında çalışan depolamayı ZFS/LVM katmanları ve erişim sınırını VPC planlaması ile birlikte inceleyin.