Takip et

NFS Mount Kurulumu: Ubuntu 12.04 Üzerinde Adım Adım Rehber

NFS Mount Kurulumu: Ubuntu 12.04 Üzerinde Adım Adım Rehber Giriş Ağ Dosya Sistemi (Network File System – NFS), UNIX tabanlı sistemler arasında

NFS Mount Kurulumu: Ubuntu 12.04 Üzerinde Adım Adım Rehber

Giriş

Ağ Dosya Sistemi (Network File System – NFS), UNIX tabanlı sistemler arasında dosya paylaşımını sağlayan, güçlü ve köklü bir dağıtık dosya sistemidir. Bu teknoloji, sunucuların ağ üzerindeki istemcilere dizinleri ve dosyaları sanki yerel disklermiş gibi erişmelerini ve kullanmalarını sağlar. Özellikle birden fazla sunucu veya istemcinin aynı verilere erişmesi gereken ortamlarda, merkezi bir depolama çözümü olarak NFS vazgeçilmez bir araçtır. Ubuntu 12.04 LTS (Precise Pangolin), uzun süreli destek sunan ve hala birçok üretim ortamında kullanılan stabil bir işletim sistemi sürümüdür. Bu makale, Ubuntu 12.04 üzerinde bir NFS sunucusu kurma, dizinleri paylaşma ve ardından bir Ubuntu 12.04 istemcisinden bu paylaşımlara nasıl erişileceğini adım adım detaylı bir şekilde açıklamaktadır. Amacımız, hem yeni başlayanlar hem de deneyimli sistem yöneticileri için kapsamlı ve anlaşılır bir rehber sunmaktır.

NFS’in temel amacı, ağ üzerindeki makinelerin dosya sistemlerini birbirleriyle paylaşarak veri tutarlılığını sağlamak, yönetim yükünü azaltmak ve kaynak verimliliğini artırmaktır. Örneğin, bir web sunucusu kümesindeki tüm sunucuların aynı statik içerik dosyalarına erişmesi gerektiğinde, her sunucuya ayrı ayrı kopyalamak yerine, merkezi bir NFS sunucusundan bu dosyaları paylaşmak çok daha mantıklı ve yönetilebilir bir yaklaşımdır. Bu rehberde, bir NFS sunucusu kurmak için gerekli paketlerin kurulumundan, paylaşımların yapılandırılmasına, güvenlik duvarı ayarlarından, istemci tarafında paylaşımların bağlanmasına ve yaygın sorun giderme yöntemlerine kadar her adımı ele alacağız.

NFS Nedir ve Neden Kullanılır?

NFS (Network File System), Sun Microsystems tarafından geliştirilen ve ağ üzerindeki bilgisayarların, sanki kendi yerel disklerindeymiş gibi uzaktaki dosyalara erişmesini sağlayan bir protokoldür. NFS, istemci-sunucu modeline dayanır: bir NFS sunucusu, belirli dizinleri “dışa aktarır” (export eder) ve bu dizinlere erişim izni verirken, NFS istemcisi bu dışa aktarılan dizinleri kendi dosya sistemine “bağlar” (mount eder). Bu sayede, istemci uzaktaki dosyalara okuma, yazma, çalıştırma gibi işlemleri yapabilir.

NFS’in Temel Çalışma Prensibi

NFS, Uzak Yordam Çağrısı (Remote Procedure Call – RPC) mekanizmasını kullanarak çalışır. İstemci, bir dosyaya erişmek istediğinde, bu isteği RPC aracılığıyla sunucuya gönderir. Sunucu, isteği işler, gerekli dosya işlemlerini yapar ve sonucu yine RPC aracılığıyla istemciye geri gönderir. Bu süreç, istemci için tamamen şeffaftır; dosyanın yerel mi yoksa uzak mı olduğu genellikle fark edilmez.

NFS Kullanımının Avantajları

1. Merkezi Depolama: Birden fazla sunucunun aynı verilere erişmesi gereken durumlarda (örneğin, web sunucusu kümeleri, geliştirme ortamları), verileri merkezi bir NFS sunucusunda tutmak, veri tutarlılığını ve yedeklemeyi kolaylaştırır.
2. Kolay Dosya Paylaşımı: Kullanıcılar veya uygulamalar arasında dosya paylaşımını basitleştirir. Her kullanıcının kendi yerel kopyasına sahip olması yerine, merkezi bir depodan verilere erişim sağlanır.
3. Kaynak Verimliliği: Disk alanı israfını önler. Aynı verinin birden fazla kopyasını tutmak yerine, tek bir merkezi kopyadan tüm istemciler faydalanabilir.
4. Yönetim Kolaylığı: Yazılım güncellemeleri, yapılandırma dosyaları veya ortak kütüphaneler gibi öğeleri merkezi bir konumda yönetmek, her makineye ayrı ayrı müdahale etmekten çok daha kolaydır.
5. Performans: Ağ üzerinde doğrudan dosya erişimi sağlayarak, dosyaların her seferinde kopyalanması ihtiyacını ortadan kaldırır. Doğru yapılandırıldığında yüksek performans sunabilir.
6. Esneklik: Çeşitli işletim sistemleri arasında dosya paylaşımına olanak tanır (Linux, UNIX, macOS).

NFS Kullanımının Dezavantajları ve Dikkat Edilmesi Gerekenler

1. Güvenlik: Özellikle NFSv3, zayıf kimlik doğrulama ve şifreleme eksiklikleri nedeniyle güvenli olmayan ağlarda dikkatli kullanılmalıdır. Erişim kontrolleri genellikle IP tabanlıdır ve bu, IP sahtekarlığına karşı savunmasız olabilir. NFSv4 bu konuda daha iyi güvenlik mekanizmaları sunar ancak Ubuntu 12.04 varsayılan olarak NFSv3’e odaklanır.
2. Ağ Bağımlılığı: NFS’in performansı ve kullanılabilirliği tamamen ağ bağlantısının kalitesine bağlıdır. Ağ kesintileri veya yavaşlamaları, NFS paylaşımlarına erişimi doğrudan etkiler.
3. UID/GID Eşleşmesi: İstemci ve sunucu arasındaki kullanıcı ve grup kimliklerinin (UID/GID) eşleşmemesi, izin sorunlarına yol açabilir. Büyük ortamlarda bu, merkezi kimlik doğrulama (LDAP gibi) ile yönetilmelidir.

Ön Hazırlıklar

NFS kurulumuna başlamadan önce, sorunsuz bir deneyim için bazı temel hazırlıkları yapmamız gerekmektedir. Bu rehber için en az iki adet Ubuntu 12.04 işletim sistemi kurulu sanal veya fiziksel makineye ihtiyacımız olacak: biri NFS sunucusu olarak, diğeri ise NFS istemcisi olarak görev yapacak.

1. İki Adet Ubuntu 12.04 Makine:
* NFS Sunucusu: Paylaşılacak dizinleri barındıracak ve ağ üzerinden erişime açacak makine.
* NFS İstemcisi: Sunucunun paylaştığı dizinlere erişecek ve bunları kendi dosya sistemine bağlayacak makine.

2. Güncel Sistemler: Her iki makinenin de en güncel paketlere sahip olduğundan emin olun. Bu, olası güvenlik açıklarını kapatacak ve yazılım çakışmalarını önleyecektir.

sudo apt-get update
    sudo apt-get upgrade

3. Sabit IP Adresleri veya DNS Çözümü: NFS’in düzgün çalışabilmesi için sunucu ve istemcinin birbirlerini ağ üzerinde bulabilmeleri gerekir.
* Sabit IP Adresleri: Her iki makineye de statik IP adresi atamak en basit ve güvenilir yöntemdir.
* Örnek Sunucu IP: 192.168.1.100
* Örnek İstemci IP: 192.168.1.101
* DNS Çözümü: Eğer ortamınızda bir DNS sunucusu varsa, sunucu ve istemcinin ana bilgisayar adlarının (hostname) doğru bir şekilde çözüldüğünden emin olun. /etc/hosts dosyasını düzenleyerek de geçici bir çözüm sağlayabilirsiniz.
* Sunucuya istemcinin IP’sini ve hostname’ini ekleyin: sudo nano /etc/hosts

192.168.1.101 istemci.example.com istemci

* İstemciye sunucunun IP’sini ve hostname’ini ekleyin: sudo nano /etc/hosts

192.168.1.100 sunucu.example.com sunucu

4. Güvenlik Duvarı Ayarları (UFW): Ubuntu 12.04’te varsayılan olarak Uncomplicated Firewall (UFW) bulunur. NFS trafiğine izin vermek için gerekli kuralların tanımlanması gerekecektir. Kurulum adımlarında bu konuya değineceğiz.

5. Root veya Sudo Yetkisi: Kurulum ve yapılandırma adımları için sudo komutunu kullanabilen bir kullanıcıya veya root kullanıcısına erişiminiz olmalıdır.

Bu ön hazırlıklar tamamlandıktan sonra, NFS sunucusunu kurmaya başlayabiliriz.

NFS Sunucusu Kurulumu ve Yapılandırması

NFS sunucusunun kurulumu, paylaşılacak dizinin hazırlanması, /etc/exports dosyasının yapılandırılması ve güvenlik duvarı ayarlarının yapılmasını içerir.

Adım 1: Gerekli Paketlerin Kurulumu

NFS sunucusu işlevselliğini sağlamak için nfs-kernel-server paketini kurmamız gerekiyor. Bu paket, NFS servislerini ve bağımlılıklarını (örneğin rpcbind veya portmap) otomatik olarak kuracaktır.

sudo apt-get update
sudo apt-get install nfs-kernel-server

Kurulum tamamlandıktan sonra, NFS servisleri otomatik olarak başlayacaktır. Servis durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:

sudo service nfs-kernel-server status

Adım 2: Paylaşılacak Dizin Oluşturma

Şimdi, NFS istemcileriyle paylaşmak istediğimiz bir dizin oluşturalım. Bu dizin herhangi bir yerde olabilir, ancak genellikle /srv/nfs veya /export gibi standart yerler tercih edilir. Bu örnekte /srv/nfs/share dizinini kullanacağız.

sudo mkdir -p /srv/nfs/share

Dizini oluşturduktan sonra, NFS istemcilerinin bu dizine yazabilmesi için uygun izinleri ayarlamamız gerekebilir. Genellikle, nobody:nogroup sahipliği verilir ve istemciden gelen kullanıcılar bu kimlikle eşleştirilir (eğer no_root_squash veya all_squash kullanılmıyorsa).

sudo chown nobody:nogroup /srv/nfs/share
sudo chmod 777 /srv/nfs/share # Geçici olarak tam izin verilebilir, daha sonra kısıtlanabilir

Not: chmod 777 tam erişim sağlar ve güvenlik açısından önerilmez. Gerçek bir üretim ortamında, belirli kullanıcılar veya gruplar için daha kısıtlı izinler (chown nfsuser:nfsgroup /srv/nfs/share ve chmod 770 gibi) kullanmalısınız.

Adım 3: Dizinleri Paylaşma (/etc/exports dosyası)

NFS sunucusu hangi dizinleri, hangi istemcilere ve hangi seçeneklerle paylaşacağını /etc/exports dosyasından okur. Bu dosyayı düzenleyelim:

sudo nano /etc/exports

Dosyanın içine aşağıdaki gibi bir satır ekleyin (kendi IP adreslerinizle değiştirin):

/srv/nfs/share    192.168.1.101(rw,sync,no_subtree_check)

Veya tüm yerel ağa izin vermek isterseniz:

/srv/nfs/share    192.168.1.0/24(rw,sync,no_subtree_check)

Bu satırın anlamı şudur:
* /srv/nfs/share: Paylaşılacak dizinin yolu.
* 192.168.1.101 (veya 192.168.1.0/24): Bu dizine erişim izni verilecek istemcinin IP adresi veya IP aralığı. Ana bilgisayar adları (hostname) da kullanılabilir, ancak DNS çözümlemesi veya /etc/hosts dosyası doğru yapılandırılmış olmalıdır.
* (rw,sync,no_subtree_check): Parantez içindeki seçenekler, istemcinin paylaşıma nasıl erişeceğini belirler:
* rw: (Read/Write) İstemcinin paylaşıma hem okuma hem de yazma izni olduğunu belirtir. Sadece okuma izni için ro kullanın.
* sync: NFS’in senkronize modda çalışmasını sağlar. Bu, bir yazma isteği alındığında, verinin diske yazılmasını bekler ve sonra işlemi tamamlar. Bu, veri tutarlılığını artırır ancak performansı düşürebilir. Daha hızlı ancak daha az güvenli bir yazma için async kullanılabilir (veri kaybı riski taşır).
* no_subtree_check: Alt dizin kontrolünü devre dışı bırakır. Bu, NFS’in daha hızlı çalışmasını sağlayabilir ancak bazı güvenlik riskleri taşıyabilir (özellikle bir alt dizin ayrı ayrı paylaşılıyorsa). Çoğu durumda önerilir.
* no_root_squash: Sunucudaki root kullanıcısının, istemciden gelen root kullanıcısı olarak kabul edilmesini sağlar. Bu, istemcideki root kullanıcısına sunucudaki root yetkilerini verir ve büyük bir güvenlik riski taşır. Yalnızca tamamen güvenilir ortamlarda kullanılmalıdır.
* root_squash: (Varsayılan) İstemciden gelen root kullanıcı isteklerini nobody veya nfsnobody kullanıcısına eşleştirir. Bu, güvenlik için iyi bir uygulamadır.
* all_squash: Tüm istemci kullanıcılarını (root dahil) nobody veya nfsnobody kullanıcısına eşleştirir.
* anonuid= ve anongid=: all_squash veya root_squash kullanıldığında, eşleştirilen nobody kullanıcısı yerine belirli bir UID ve GID’ye eşleştirme yapmak için kullanılır.

Dosyayı kaydedin ve kapatın (Ctrl+O, Enter, Ctrl+X).

Adım 4: NFS Servisini Yeniden Başlatma ve Dışa Aktarılan Dizinleri Kontrol Etme

/etc/exports dosyasında yaptığımız değişikliklerin etkili olması için NFS servisini yeniden başlatmalı veya exportfs -a komutunu çalıştırmalıyız.

sudo service nfs-kernel-server restart

Veya sadece değişiklikleri uygulamak için:

sudo exportfs -a

Dışa aktarılan dizinleri ve ilgili seçenekleri kontrol etmek için:

sudo exportfs -v

Çıktı, paylaşılan dizini ve izin verilen istemcileri göstermelidir.

Adım 5: Güvenlik Duvarı Ayarları (UFW)

Ubuntu 12.04’te UFW (Uncomplicated Firewall) genellikle varsayılan güvenlik duvarıdır. NFS’in çalışabilmesi için belirli portların açılması gerekmektedir. NFS, RPC (Remote Procedure Call) servisleri üzerinden çalıştığı için, rpcbind (port 111) ve nfsd (port 2049) gibi temel servis portlarına erişim sağlanmalıdır. Diğer NFS ile ilgili servisler (mountd, nlockmgr, statd) dinamik portlar kullanabilir, bu yüzden genellikle ufw allow nfs komutu bu servisler için gerekli kuralları otomatik olarak ekler.

Önce UFW’nin etkin olup olmadığını kontrol edin:

sudo ufw status

Eğer UFW etkinse ve kurallar listeleniyorsa, aşağıdaki komutları kullanarak NFS trafiğine izin verin. 192.168.1.101 yerine istemcinizin IP adresini veya ağ aralığını kullanın.

# NFS servisi için izin ver (genellikle 2049/tcp ve udp)
sudo ufw allow from 192.168.1.101 to any port nfs

RPC portu için izin ver (111/tcp ve udp)

sudo ufw allow from 192.168.1.101 to any port 111

Mount daemon için izin ver (genellikle 20048/tcp ve udp, ama dinamik olabilir)

NFS'in portları dinamik olarak değişebileceği için, "ufw allow nfs" genellikle yeterlidir.

Ancak, daha spesifik olmak isterseniz:

sudo ufw allow from 192.168.1.101 to any port 20048

Güvenlik duvarını etkinleştirin (eğer etkin değilse)

sudo ufw enable

Kuralları ekledikten sonra, UFW durumunu tekrar kontrol edin:

sudo ufw status

Artık NFS sunucumuz yapılandırılmış ve istemci bağlantıları için hazır.

NFS İstemcisi Kurulumu ve Yapılandırması

Şimdi, NFS sunucusunun paylaştığı dizinlere erişmek için NFS istemcisini yapılandıracağız.

Adım 1: Gerekli Paketlerin Kurulumu

NFS istemcisi işlevselliği için nfs-common paketini kurmamız gerekiyor. Bu paket, NFS paylaşımlarını bağlamak için gerekli araçları içerir.

sudo apt-get update
sudo apt-get install nfs-common

Kurulum tamamlandıktan sonra, istemci makinesi NFS paylaşımlarına erişmeye hazır olacaktır.

Adım 2: NFS Paylaşımını Bağlama (Manuel Bağlama)

NFS paylaşımını bağlamadan önce, istemci makinesinde bir bağlama noktası (mount point) oluşturmalıyız. Bu, NFS paylaşımının yerel dosya sisteminde nerede görüneceğini belirler.

sudo mkdir -p /mnt/nfs_share

Şimdi, NFS paylaşımını oluşturduğumuz bağlama noktasına bağlayabiliriz. 192.168.1.100 yerine NFS sunucunuzun IP adresini kullanın.

sudo mount -t nfs 192.168.1.100:/srv/nfs/share /mnt/nfs_share

Bağlama işlemi başarılı olursa, herhangi bir çıktı almazsınız. Bağlantının başarılı olduğunu doğrulamak için df -h komutunu kullanabilirsiniz:

df -h

Çıktıda /mnt/nfs_share bağlama noktasının NFS sunucunuzdan geldiğini görmelisiniz.

Filesystem                Size  Used Avail Use% Mounted on
...
192.168.1.100:/srv/nfs/share   98G  7.9G   85G   9% /mnt/nfs_share

Ayrıca, mount komutuyla da NFS paylaşımlarını kontrol edebilirsiniz:

mount | grep nfs

NFS bağlama seçenekleri:
* rw: Okuma/yazma erişimi.
* ro: Sadece okuma erişimi.
* hard: Sunucu yanıt vermediğinde istemci yeniden denemeye devam eder. Bu, veri tutarlılığı için iyidir ancak sunucu çökerse istemci takılı kalabilir.
* soft: Sunucu yanıt vermediğinde istemci belirli bir süre sonra hata döndürür. Daha az güvenli ancak istemcinin takılı kalmasını önler.
* intr: hard seçeneğiyle birlikte kullanıldığında, NFS işlemlerinin kesintiye uğramasına (Ctrl+C gibi) izin verir.
* rsize= ve wsize=: Okuma ve yazma blok boyutlarını belirler (örneğin rsize=8192,wsize=8192). Performansı etkileyebilir.

Adım 3: Otomatik Bağlama (/etc/fstab dosyası)

Sistem yeniden başlatıldığında NFS paylaşımının otomatik olarak bağlanmasını sağlamak için /etc/fstab dosyasını düzenlemeliyiz. Bu dosya, sistemin açılışında hangi dosya sistemlerinin nereye bağlanacağını belirler.

sudo nano /etc/fstab

Dosyanın sonuna aşağıdaki satırı ekleyin (kendi sunucu IP adresiniz ve bağlama noktanızla değiştirin):

192.168.1.100:/srv/nfs/share /mnt/nfs_share nfs defaults,_netdev 0 0

Bu satırın anlamı:
* 192.168.1.100:/srv/nfs/share: NFS sunucusunun IP adresi ve paylaşılan dizin.
* /mnt/nfs_share: İstemcideki bağlama noktası.
* nfs: Dosya sistemi türü.
* defaults,_netdev: Bağlama seçenekleri.
* defaults: rw, suid, dev, exec, auto, nouser, async seçeneklerinin birleşimidir.
* _netdev: Bu seçenek çok önemlidir. Sistemin ağ servisleri başlatılmadan bu dosya sistemini bağlamaya çalışmamasını sağlar. Bu, ağ tabanlı dosya sistemleri için sistemin açılışta takılı kalmasını önler.
* 0 0: Son iki rakam dump ve fsck seçenekleridir. NFS paylaşımları için genellikle 0 0 olarak bırakılır.

Dosyayı kaydedin ve kapatın. /etc/fstab dosyasında bir hata yaparsanız sisteminiz açılmayabilir. Bu yüzden, yeniden başlatmadan önce sudo mount -a komutuyla fstab’daki tüm girdileri bağlamayı deneyerek değişiklikleri test etmek iyi bir uygulamadır:

sudo mount -a

Eğer bu komut hata vermeden çalışırsa, /etc/fstab girdiniz muhtemelen doğrudur. Artık sistemi yeniden başlattığınızda NFS paylaşımı otomatik olarak bağlanacaktır.

Adım 4: Güvenlik Duvarı Ayarları (UFW)

İstemci tarafında genellikle özel bir güvenlik duvarı kuralına ihtiyaç duyulmaz çünkü istemci giden bağlantıları başlatır ve çoğu güvenlik duvarı varsayılan olarak giden trafiğe izin verir. Ancak, ağ politikanız çok katıysa veya NFS sunucusunun yanıtlarını alabilmek için belirli portlara izin vermeniz gerekebilir. Bu nadir bir durumdur ve genellikle istemci tarafında UFW yapılandırması gerektirmez.

Yaygın Sorunlar ve Çözümleri

NFS kurulumu sırasında veya sonrasında karşılaşabileceğiniz bazı yaygın sorunlar ve bunların çözümleri aşağıda listelenmiştir:

1. Bağlantı Sorunları

* Sorun: mount.nfs: Connection refused, mount.nfs: access denied by server, veya mount.nfs: No route to host.
* Çözüm:
* Güvenlik Duvarı: Hem NFS sunucusunda hem de istemcide güvenlik duvarı (UFW veya iptables) ayarlarını kontrol edin. NFS portlarına (111, 2049, mountd, nlockmgr, statd) izin verildiğinden emin olun. Sunucudaki /etc/exports dosyasında istemcinin IP adresine veya ağ aralığına doğru bir şekilde izin verildiğinden emin olun.
* Ağ Bağlantısı: Sunucudan istemciye ve istemciden sunucuya ping atarak temel ağ bağlantısını kontrol edin.
* IP Adresleri/Ana Bilgisayar Adları: /etc/exports dosyasındaki IP adresinin veya ana bilgisayar adının doğru olduğundan emin olun. Eğer ana bilgisayar adı kullanılıyorsa, DNS çözümlemesinin veya /etc/hosts dosyasının doğru yapılandırıldığından emin olun.
* NFS Servisi: Sunucuda sudo service nfs-kernel-server status komutuyla NFS servisinin çalıştığından emin olun.
* Dışa Aktarılan Dizinler: Sunucuda sudo exportfs -v komutuyla dizinlerin doğru bir şekilde dışa aktarıldığını kontrol edin. İstemciden showmount -e komutunu kullanarak sunucunun hangi dizinleri dışa aktardığını görebilirsiniz.
* RPC Servisleri: Sunucuda rpcinfo -p komutunu çalıştırarak NFS ile ilgili tüm RPC servislerinin (portmapper/rpcbind, mountd, nfs, nlockmgr, statd) çalıştığından emin olun.

2. İzin Sorunları

* Sorun: NFS paylaşımına yazma veya okuma izni yok, veya dosyaları oluşturamıyor/değiştiremiyor.
* Çözüm:
* /etc/exports Seçenekleri: Sunucudaki /etc/exports dosyasında rw (okuma/yazma) seçeneğinin bulunduğundan emin olun.
* Dizin İzinleri: Paylaşılan dizinin (örneğin /srv/nfs/share) sunucudaki dosya sistemi izinlerini kontrol edin. sudo chown nobody:nogroup /srv/nfs/share ve sudo chmod 777 /srv/nfs/share (veya daha kısıtlı ama uygun izinler) ile doğru izinlerin ayarlandığından emin olun.
* UID/GID Eşleşmeleri: NFS, dosya sahipliğini ve izinlerini UID (Kullanıcı Kimliği) ve GID (Grup Kimliği) kullanarak yönetir. İstemci ve sunucu üzerindeki kullanıcıların ve grupların UID/GID’leri farklıysa, izin sorunları yaşanabilir.
* root_squash (varsayılan) istemcideki root kullanıcısını sunucuda nobody olarak eşleştirir. Eğer root yetkisiyle işlem yapmanız gerekiyorsa, /etc/exports dosyasında no_root_squash seçeneğini kullanmanız gerekebilir, ancak bu bir güvenlik riskidir.
* all_squash tüm kullanıcıları nobody olarak eşleştirir.
* anonuid ve anongid seçenekleriyle belirli bir UID/GID’ye eşleştirme yapabilirsiniz.
* SELinux/AppArmor: Ubuntu 12.04’te AppArmor varsayılan olarak etkindir. Nadiren de olsa, AppArmor’un NFS işlemlerini kısıtlaması mümkündür. sudo aa-status ile AppArmor durumunu kontrol edebilir ve gerekirse kuralları düzenleyebilirsiniz.

3. Performans Sorunları

* Sorun: NFS paylaşımına erişim yavaş.
* Çözüm:
* sync vs async: Sunucudaki /etc/exports dosyasında sync seçeneği veri güvenliği için iyidir ancak performansı düşürür. Eğer veri kaybı riski kabul edilebilir ve daha yüksek performans isteniyorsa async seçeneği kullanılabilir.
* rsize ve wsize: İstemci tarafında mount komutunda veya /etc/fstab‘ta rsize (okuma boyutu) ve wsize (yazma boyutu) seçeneklerini ayarlayarak performansı optimize edebilirsiniz (örneğin, rsize=32768,wsize=32768). Genellikle 8192 veya 16384 gibi değerler kullanılır.
* Ağ: Ağ bant genişliği, gecikme süresi ve paket kaybı gibi faktörler NFS performansını doğrudan etkiler. Ağ altyapınızı kontrol edin.
* Sunucu Yükü: NFS sunucusunun disk I/O’su veya CPU yükü yüksekse, bu da performansı etkileyebilir.

4. /etc/fstab Hataları

* Sorun: Sistem açılışta takılı kalıyor veya NFS paylaşımı otomatik olarak bağlanmıyor.
* Çözüm:
* Sözdizimi Hatası: /etc/fstab dosyasındaki NFS girdisinin sözdizimini dikkatlice kontrol edin. Küçük bir yazım hatası bile sistemi açılmayacak hale getirebilir.
* _netdev Seçeneği: Ağ tabanlı dosya sistemleri için _netdev seçeneğinin kullanıldığından emin olun. Bu, ağ servisleri başlamadan önce NFS paylaşımının bağlanmaya çalışmasını engeller.
* Kurtarma Modu: Eğer sisteminiz /etc/fstab hatası nedeniyle açılmazsa, kurtarma moduna (recovery mode) girerek /etc/fstab dosyasını düzenleyebilir ve hatayı düzeltebilirsiniz.

Bu sorun giderme adımları, NFS kurulumunuz sırasında veya sonrasında karşılaşabileceğiniz çoğu problemi çözmenize yardımcı olacaktır.

Güvenlik Hususları

NFS, özellikle eski sürümleri (NFSv3), modern güvenlik standartlarına göre bazı zayıflıklara sahiptir. Ubuntu 12.04’ün varsayılan olarak NFSv3’ü kullanması nedeniyle, güvenlik konularına özel dikkat göstermek önemlidir.

1. Kimlik Doğrulama ve Şifreleme Eksikliği: NFSv3, kullanıcı kimlik doğrulaması için genellikle IP adreslerine veya UNIX UID/GID eşleşmelerine güvenir. Veri aktarımı şifrelenmez, bu da ağdaki dinleme (sniffing) saldırılarına karşı savunmasız olduğu anlamına gelir. Hassas veriler için NFSv3 kullanmaktan kaçınmalı veya VPN gibi ek şifreleme katmanları kullanmalısınız.
2. Güvenilir Ağlarda Kullanım: NFS paylaşımlarını yalnızca güvenilir ve izole edilmiş ağ segmentlerinde (örneğin, iç ağlar, VLAN’lar) kullanın. İnternet üzerinden doğrudan NFS erişimi açmak kesinlikle önerilmez.
3. Güvenlik Duvarı ile Erişimi Kısıtlama: NFS sunucunuzdaki güvenlik duvarını (UFW) kullanarak, NFS portlarına yalnızca belirli, bilinen istemci IP adreslerinden veya ağ aralıklarından erişime izin verin. Geniş IP aralıklarına veya any seçeneğine izin vermekten kaçının.
4. no_root_squash Kullanımının Riskleri: /etc/exports dosyasındaki no_root_squash seçeneği, istemcideki root kullanıcısının sunucuda da root yetkilerine sahip olmasını sağlar. Bu, istemci tehlikeye atılırsa, saldırganın NFS sunucusu üzerinde tam kontrol sahibi olabileceği anlamına gelir. Bu seçenekten mümkün olduğunca kaçınılmalı veya yalnızca çok özel ve güvenli ortamlarda kullanılmalıdır. Varsayılan root_squash seçeneği, root yetkilerini nobody veya nfsnobody kullanıcısına eşleyerek bu riski azaltır.
5. Dizin İzinleri: Paylaşılan dizinlerin dosya sistemi izinlerini doğru bir şekilde ayarlayın. İstemcilerin ihtiyaç duyduğundan daha fazla izin vermeyin. Gereksiz yere chmod 777 kullanmaktan kaçının. Belirli kullanıcılar ve gruplar için en az ayrıcalık ilkesini uygulayın.
6. UID/GID Eşleşmesi: Büyük ortamlarda, merkezi bir kimlik doğrulama sistemi (LDAP, NIS) kullanarak istemci ve sunucu arasındaki UID/GID’lerin tutarlı olmasını sağlamak, izin sorunlarını ve güvenlik açıklarını önlemeye yardımcı olur.
7. NFSv4: Ubuntu 12.04’te NFSv3 daha yaygın olsa da, NFSv4 daha iyi güvenlik özellikleri (Kerberos kimlik doğrulaması gibi) sunar. Eğer güvenlik kritik bir endişeyse, daha yeni bir Ubuntu sürümüne yükseltmeyi ve NFSv4 kullanmayı düşünmelisiniz.

Bu güvenlik hususlarına dikkat ederek, NFS kurulumunuzu daha güvenli hale getirebilirsiniz.

Sonuç

Bu makalede, Ubuntu 12.04 işletim sistemi üzerinde bir NFS sunucusu kurma ve bir NFS istemcisinden bu paylaşımlara erişme sürecini adım adım detaylı bir şekilde inceledik. NFS’in ne olduğunu, neden kullanıldığını, kurulum için gerekli ön hazırlıkları, sunucu ve istemci tarafında yapılması gereken yapılandırmaları ve karşılaşabileceğiniz yaygın sorunlara yönelik çözümleri ele aldık. Ayrıca, NFS kullanımında dikkat edilmesi gereken önemli güvenlik hususlarına da değindik.

NFS, ağ üzerinden dosya paylaşımı ve merkezi depolama için güçlü ve esnek bir çözümdür. Özellikle Ubuntu 12.04 gibi uzun süreli desteklenen sistemlerde, belirli legacy uygulamalar veya ortamlar için hala geçerli ve etkili bir yöntemdir. Doğru yapılandırıldığında, NFS sistem yöneticilerine veri yönetiminde büyük kolaylıklar sağlar ve kaynak verimliliğini artırır.

Ancak, modern ağ ortamlarında güvenlik her zaman en önemli öncelik olmalıdır. NFSv3’ün doğal güvenlik sınırlamaları göz önüne alındığında, hassas verilerle çalışırken ek güvenlik önlemleri (güvenlik duvarı kısıtlamaları, VPN tünelleri, yalnızca güvenilir ağlarda kullanım) almak büyük önem taşır. Daha yeni NFS sürümleri (özellikle NFSv4), Kerberos gibi daha güçlü kimlik doğrulama mekanizmaları sunarak bu güvenlik eksikliklerinin çoğunu gidermiştir.

Umarız bu kapsamlı rehber, Ubuntu 12.04 üzerinde NFS kurulumu ve yönetimi konusunda size yol göstermiştir. Unutmayın ki her ortamın kendine özgü ihtiyaçları ve güvenlik politikaları vardır; bu nedenle, bu rehberdeki adımları kendi özel durumunuza göre uyarlamaktan çekinmeyin.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.