NFS protokolü, güvenilmeyen kullanıcı kimliklerine dayanan AUTH_SYS ve kriptografik doğrulama sağlayan Kerberos gibi kimlik doğrulama yöntemleri sunar.
Kerberos güçlü bir güvenlik sunarken, Linux yapılandırması karmaşık olabilir; TLS üzerinden RPC gibi yeni ortaya çıkan standartlar, HTTPS’ye benzer şekilde kimlik doğrulama ve şifreleme için TLS’den yararlanarak güvenli NFS erişimini basitleştirmeyi amaçlar.
NFS sunucuları, istemci bağlantılarını belirli bağlantı noktalarıyla kısıtladı; kök ayrıcalıkları veya özel yetenekler gerektirerek erişimi sınırlamayı ve yetkisiz bağlantıları önlemeyi amaçladı.
Kerberos kimlik doğrulaması Linux’ta bu kısıtlamayı atlayabilse de, Windows sunucuları her zaman herhangi bir bağlantı noktasından gelen bağlantıları kabul eder, bu da bu güvenlik mekanizmasını modern ortamlarda büyük ölçüde geçersiz kılar.
Linux NFS sunucuları, genellikle güvenliği artırmak amacıyla, gelen kullanıcı kimliklerini sunucudaki farklı kimliklerle eşleştiren erişim izinlerini kontrol etmek için sıkıştırmayı kullanır.
ANY.RUN ile Gerçek Dünyadaki Kötü Amaçlı Bağlantıları, Kötü Amaçlı Yazılımları ve Kimlik Avı Saldırılarını Araştırın – Ücretsiz Deneyin
Yaygın seçenekler arasında istemci ve sunucu sistemleri arasındaki tutarsız kullanıcı kimlikleri sorununu gidermeye yardımcı olan “all_squash” (tüm kimlikleri ortadan kaldırır), “root_squash” (yalnızca root erişimini ortadan kaldırır) ve “no_root_squash” (root erişimine izin verir) yer alır.
NFS dışa aktarmaları, IP adreslerini, alt ağları veya ana bilgisayar adlarını kullanarak belirli ana bilgisayarlara erişimi kısıtlayabilir; bunlar ayrıntılı olabilir ve her ana bilgisayar için farklı izinlere izin verir. Etkili olmasına rağmen güvenlik, büyük ölçüde uygun şekilde yapılandırılmış izin verilen ağlara ve izin verilen IP’lerin ve ana bilgisayar adlarının düzenli olarak incelenmesine dayanır.
Linux sistemleri, NFSv3 sunucuları hakkında mevcut dışa aktarmalar, erişim izinleri ve bağlı istemciler gibi bilgileri toplamak için “showmount” gibi araçları kullanır ve bu, sunucunun yapılandırmasının anlaşılmasına yardımcı olur.
NFSv4 için, istemciler doğrudan `/` dizini altındaki dışa aktarımlara erişmeye çalışır ve erişim kontrolü bu düzeyde uygulanır. ‘Showmount’ta dışa aktarma bilgilerinin bulunmaması genellikle yalnızca NFSv4 sunucusuna işaret eder.
Metasploit ve nmap gibi mevcut NFS değerlendirme araçları kapsamlı işlevsellikten yoksundur. Etkili olsalar da, genellikle NFSv4 gibi modern NFS sürümleri için destekten yoksundurlar; bu da, dışa aktarımların tanımlanması ve bunlara erişim için daha gelişmiş teknikler gerektirir.
NFS’nin zayıf kimlik doğrulamasından (genellikle AUTH_SYS’ye güvenerek) yararlanan saldırganlar, amaçlanan erişim kontrollerini atlayarak gerekli izinlere sahip kullanıcıların veya grupların kimliğine bürünerek uzak paylaşımlardaki dosyalara yetkisiz erişim elde etmek için yanlış yapılandırmalardan yararlanabilir.
NFS için bir FUSE sürücüsü olan sigorta_nfs, her dosya için gerekli kullanıcı ve grup kimliklerini otomatik olarak ayarlayarak sınırsız dosya erişimine olanak tanır ve kullanıcıların Kerberos gibi sunucu tarafı kimlik doğrulama yöntemlerinden bağımsız olarak NFS paylaşımındaki izinleri dahilinde dosyalara erişmesine olanak tanır.
HVS Consulting, NFS’yi saldırgan bir bakış açısıyla analiz ederek yaygın yanlış yapılandırmaları ve güvenlik açıklarını vurguluyor; bu da Linux NFS uygulamalarında yeterli günlük kaydı ve tespit mekanizmalarının eksikliğini vurguluyor ve risklerin tanımlanmasını ve azaltılmasını zorlaştırıyor.
NFS’yi güvence altına almak, gerekli istemcilere erişimi kısıtlamak, ACL’lerle NFSv4 kullanmak, kök dizinlerden dışa aktarmak veya subtree_check’i etkinleştirmek, bağlama bağlamaları ve iç içe aktarmalardan kaçınmak, nosuid ve nodev ile bağlama, no_root_squash’ı devre dışı bırakmak, all_squash’ı etkinleştirmek, Kerberos kimlik doğrulamasına öncelik vermek ve güvenlik duvarları kullanmak ve Erişimi kontrol etmek için ağ bölümlendirmesi.