Linux'ta NFS Sunucusu Kurulumu: Dizin Paylaşımı | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

Linux'ta NFS Sunucusu Kurulumu: Dizini NFS ile Paylaşma

Seviye: İleri
Tahmini süre: ~30 dakika
Amaç: Rutin görevlerin otomasyonunu ve proaktif güvenlik denetimini kolaylaştırmak için, bir dizini birden fazla istemciyle paylaşacak şekilde Linux üzerinde bir NFS sunucusu yapılandırmak.

Giriş

Bir sunucu filosunda paylaşımlı depolamayı yönetmek, yüksek çalışma süresi gereksinimleri olan üretim ortamlarını sürdürmenin temel şartlarından biridir. NFS (Network File System) protokolü, bir sistemin ağ üzerinden NFS ile dizin paylaşmasına ve bir NAS (Network Attached Storage) gibi çalışmasına olanak tanır. Linux üzerinde bir NFS sunucusu kurarak birden fazla NFS istemcisine aynı anda merkezi dosya erişimi sağlayabilirsiniz. Bu eğitim, varsayılan olarak NFSv4.2 kullanarak Linux üzerinde NFS sunucusunun nasıl verimli biçimde kurulacağını anlatır.

Warning

Bu kılavuz sec=sys (AUTH_SYS) güvenlik türünü kullanır. Bu modda sunucu, kullanıcı kimliği (UID/GID) konusunda istemciye herhangi bir kriptografik kimlik doğrulaması yapmadan doğrudan güvenir. Erişim denetimi yalnızca /etc/exports dosyasındaki IP adresi filtrelemesine ve dosyalardaki standart UNIX izinlerine dayanır. Bu yapılandırma, güvenilir iç ağlar (örneğin bir Proxmox sanal ortamı) için mükemmeldir, ancak güvenilmeyen ağlar için önerilmez. Ek güvenlik için Kerberos kimlik doğrulamasını (örn. sec=krb5, sec=krb5i veya sec=krb5p) uygulamayı düşünün.

Ön koşullar

Başlamadan önce aşağıdaki koşulların karşılandığından emin olun:

  • İşletim sistemi: Ubuntu 22.04/24.04 LTS, Debian 12/13 veya CentOS/RHEL 9/AlmaLinux 10
  • Gerekli yazılım: Ubuntu/Debian için nfs-kernel-server (2.6+) veya CentOS/RHEL/AlmaLinux için nfs-utils (2.x+)
  • Erişim: tüm makinelerde sudo veya root erişimi
  • Ağ: sunucuların özel bir ağ üzerinden birbiriyle iletişim kurabilmesi gerekir.
  • Gerekli bilgi: Linux komut satırını rahatça kullanabilme.

Terminoloji

Devam etmeden önce aşağıdaki temel kavramlara aşina olun:

  • NFS (Network File System): Kullanıcıların dosyalara ağ üzerinden, sanki yerel depolamadaymış gibi erişmesini sağlayan protokol.
  • NFS Sunucusu: Dosyaları barındıran ve ağ üzerinden kullanıma sunan merkezi makine.
  • NFS İstemcisi: Paylaşılan dosyalara erişmek için sunucuya bağlanan uzak makine.
  • Paylaşılan Dizin (Shared Directory): Sunucuda, istemcilere sunulacak yerel klasör.
  • Dışa aktarma (Export): Yerel bir dizini ağ üzerinden istemcilerin kullanımına açma işlemi.
  • /etc/exports: NFS arka plan programının (daemon) hangi dizinlerin dışa aktarılacağını ve erişim kurallarını belirlemek için kullandığı ana yapılandırma dosyası.
  • Bağlama (Mounting): Uzak bir ağ paylaşımını yerel dizin yapısına ekleme işlemi.
  • Bağlama Noktası (Mount Point): İstemcide, uzak dosya sisteminin bağlandığı yerel dizin.
  • nfs-utils: NFS istemcisi ve sunucusu için gerekli yardımcı programları ve arka plan programlarını içeren yazılım paketi.
  • RPC (Remote Procedure Call): Bir programın, başka bir bilgisayardaki programdan hizmet istemek için kullanabileceği protokol.
  • Portmapper / rpcbind: RPC program numaralarını ağ port numaralarına eşleyen ve NFS'in bağlantı müzakeresi için gerektirdiği hizmet.
  • İzinler (Permissions): Kimin dosyaları okuyabileceğini, yazabileceğini veya çalıştırabileceğini belirleyen erişim hakları.
  • Salt Okunur Erişim (RO): İstemcilerin dosyaları görüntülemesine ancak değiştirmesine izin veren izin durumu.
  • Okuma-Yazma Erişimi (RW): İstemcilerin paylaşılan dosyaları değiştirmesine izin veren izin durumu.
  • root_squash: Uzak root kullanıcısından gelen istekleri ayrıcalıksız bir kullanıcıya (nobody) eşleyerek yetkisiz root erişimini önleyen güvenlik özelliği.
  • Güvenlik duvarı (Firewall): Gelen ve giden ağ trafiğini izleyen ve denetleyen ağ güvenlik sistemi.
  • Linux Dosya Sistemi: Linux'un dosyaları diskte depolamak ve düzenlemek için kullandığı yapılandırılmış yöntem.
  • Ana bilgisayar adı (Hostname): Bir bilgisayar ağına bağlı cihaza atanan, insan tarafından okunabilir etiket.
  • IP Adresi: Bir ağa bağlı her cihaza atanan benzersiz sayısal tanımlayıcı.
  • Automount (otomatik bağlama): Dosya sistemlerinin açılışta otomatik olarak bağlanması uygulaması.
  • NAS (Network Attached Storage): Verilere ağ üzerinden erişilmesini sağlayan, dosya düzeyinde bir depolama mimarisi.

Adım 1: Gerekli paketleri yükleyin

Önce sunucuya ve istemcilere gerekli yazılımı yükleyin. nfs-utils paketi, dosya sistemini yönetmek için gerekli arka plan programlarını ve araçları sağlar. Modern kurulumlar varsayılan olarak durum bilgili (stateful) olan ve güvenlik duvarı kurallarını basitleştiren NFSv4.2 kullanmalıdır.

NFS sunucusunda (Debian/Ubuntu):

sudo apt update sudo apt install nfs-kernel-server

NFS sunucusunda (CentOS/RHEL/AlmaLinux):

sudo dnf install nfs-utils sudo systemctl enable --now rpcbind nfs-server

Info

Yalnızca NFSv4 kullanılan bir kurulumda, NFS bağlamasının kendisi için rpcbind hizmeti teknik olarak gerekli değildir. Ancak dışa aktarımları keşfetmek için showmount komutunu (Adım 5'te gösterildiği gibi) kullanacaksanız veya eski NFSv3 istemcilerini desteklemeniz gerekiyorsa gereklidir.

NFS istemcisinde (Debian/Ubuntu):

sudo apt update sudo apt install nfs-common

NFS istemcisinde (CentOS/RHEL/AlmaLinux):

sudo dnf install nfs-utils

Kurulumun başarıyla tamamlandığını görmelisiniz. Gerekli RPC ve NFS hizmetleri artık yüklü ve çalışıyor durumdadır.

Adım 2: Paylaşılan dizini oluşturun ve NFS izinlerini ayarlayın

Sunucuda dışa aktarmak istediğiniz dizini oluşturun:

sudo mkdir -p /mnt/nfs_share

İstemcilerin dosyalara erişebilmesi için uygun NFS izinlerini ayarlayın. Bu eğitimde sahipliği ayrıcalıksız, özel hizmet kullanıcısına atayacak ve uygun grup izinlerini vereceğiz.

Debian/Ubuntu:

sudo chown nobody:nogroup /mnt/nfs_share sudo chmod 2775 /mnt/nfs_share

CentOS/RHEL/AlmaLinux:

sudo chown nobody:nobody /mnt/nfs_share sudo chmod 2775 /mnt/nfs_share

Bu yapılandırma yerel Linux izin modelini atlamaz; böylece NFS erişim denetimi tek güvenlik katmanınız olmaz. 2775 izni, en az ayrıcalık ilkesini ihlal etmeden grup işbirliğini güvenli biçimde mümkün kılar.

Adım 3: Linux'ta NFS sunucusunu yapılandırın

Dışa aktarma kurallarını tanımlamak için sunucudaki /etc/exports dosyasını düzenlemeniz gerekir.

Dosyayı açın:

sudo nano /etc/exports

Belirli bir istemci alt ağına erişim vermek için aşağıdaki satırı ekleyin (örn. <CLIENT_SUBNET>):

/mnt/nfs_share <CLIENT_SUBNET>(rw,sync,no_subtree_check,root_squash)

Bu, sunucuyu dizini aşağıdaki seçeneklerle dışa aktaracak şekilde yapılandırır:

  • rw: Okuma-Yazma Erişimi (RW) verir. Salt Okunur Erişim (RO) için ro kullanın.
  • sync: İstemciye yanıt vermeden önce değişikliklerin diske yazılmasını zorunlu kılar.
  • no_subtree_check: Alt ağaç (subtree) denetimini devre dışı bırakır ve güvenilirliği artırır.
  • root_squash: Uzak root kullanıcısından gelen istekleri açıkça ayrıcalıksız bir kullanıcıya (nobody) eşler. Bu varsayılan davranıştır, ancak denetim amacıyla her zaman açıkça belirtilmelidir. no_root_squash seçeneğini yalnızca sıkı denetlenen ortamlarda kullanın.

Info

Aynı satıra boşlukla ayrılmış daha fazla IP adresi veya alt ağ ekleyerek birden fazla istemci belirtebilir ve birden çok makineye erişim sağlayabilirsiniz.

Dışa aktarma yapılandırmasını uygulayın:

Debian/Ubuntu:

sudo exportfs -a sudo systemctl restart nfs-kernel-server

CentOS/RHEL/AlmaLinux:

sudo exportfs -a sudo systemctl restart nfs-server

Sunucu artık dizini ağa aktif olarak dışa aktarıyor.

Adım 4: Güvenlik duvarını yapılandırın

İstemci bağlantılarına izin vermek için sunucudaki güvenlik duvarında NFS trafiğine izin vermelisiniz.

UFW ile (Debian/Ubuntu):

Yeni bir Ubuntu kurulumunda UFW varsayılan olarak etkin değildir. Temiz bir Debian 13 sisteminde ise kurulu bile olmayabilir. UFW kullanmayı düşünüyorsanız, kuralları eklemeden önce kurulu olduğundan (sudo apt install ufw) ve açıkça etkinleştirildiğinden emin olun:

sudo ufw enable sudo ufw allow from <CLIENT_SUBNET> to any port nfs

Firewalld ile (CentOS/RHEL/AlmaLinux):

sudo firewall-cmd --permanent --zone=public --add-service=nfs sudo firewall-cmd --permanent --zone=public --add-service=rpc-bind sudo firewall-cmd --permanent --zone=public --add-service=mountd sudo firewall-cmd --reload

Info

AlmaLinux/RHEL (SELinux): Temiz bir AlmaLinux kurulumunda SELinux Enforcing modundadır. Bu kılavuzda kullanılan varsayılan /mnt/nfs_share yolu için mevcut mnt_t bağlamı nfsd arka plan programıyla uyumludur. Ancak standart dışı yolları (örn. /srv, /data veya /home/...) dışa aktarmayı planlıyorsanız, SELinux'u uygun şekilde yapılandırmadıkça NFS bu yollara yazamaz. Genel mantıksal değeri değiştirebilir (sudo setsebool -P nfs_export_all_rw 1) veya semanage ile doğru fcontext değerini ayarlayabilirsiniz.

İzin verilen alt ağdaki istemciler artık NFS hizmetlerine erişebilir.

Adım 5: showmount komutuyla dışa aktarımı doğrulayın

Güvenlik uyumluluğunu sağlamak için sunucuda etkin dışa aktarımları ve dahili denetim durumunu proaktif olarak doğrulayın. NFS arka plan programının uyguladığı tam dışa aktarma seçeneklerini kontrol etmek için aşağıdaki komutu çalıştırın:

sudo cat /var/lib/nfs/etab

Alternatif olarak, ayrıntılı dışa aktarma listesini görmek için sudo exportfs -v komutunu kullanabilirsiniz.

Ardından istemci makineden, dışa aktarımın ağ üzerinden görünür olduğunu doğrulamak için showmount komutunu kullanın. <SERVER_IP> ifadesini NFS sunucunuzun gerçek IP adresiyle değiştirin.

Info

showmount, sunucuda 111 numaralı portun (rpcbind) açık olmasını gerektirir. Yalnızca NFSv4 kullanan bir kurulumunuz varsa ve bu portu açmadıysanız bu adımı atlayın: dışa aktarımları sunucuda sudo exportfs -v ile doğrulayın ve istemciden erişilebilirliği Adım 6'daki bağlama işlemiyle test edin.

showmount -e <SERVER_IP>

Beklenen çıktı:

Export list for <SERVER_IP>: /mnt/nfs_share <CLIENT_SUBNET>

Dışa aktarım listede görünüyorsa sunucu yapılandırması doğrudur ve istemciden erişilebilir durumdadır.

Adım 6: İstemcide NFS dosya sistemini bağlayın

Paylaşımı kullanmak için istemcide yerel bir bağlama noktasına NFS dosya sistemini bağlamanız gerekir.

Bağlama noktasını oluşturun:

sudo mkdir -p /mnt/client_share

Dizini bağlayın:

sudo mount -t nfs -o vers=4.2 <SERVER_IP>:/mnt/nfs_share /mnt/client_share

Paylaşım artık bağlandı. Bağlanan ağ sürücüsünü görmek için df -h komutunu çalıştırarak doğrulayabilirsiniz. vers=4.2 belirtmek, istemcinin sessizce NFSv3 veya NFSv4.0'a düşmek yerine en güncel protokol sürümünü açıkça kullanmasını sağlar.

Tip

İstemcinin açılışta NFS dosya sistemini otomatik olarak bağlamasını sağlamak için /etc/fstab dosyasına bir giriş ekleyerek statik bağlama yapılandırabilirsiniz. Bunun statik bir bağlama olduğunu unutmayın; gerçek, dinamik Automount yapılandırmaları üretimde genellikle autofs (/etc/auto.master) ile yönetilir.

/etc/fstab dosyasını açın:

sudo nano /etc/fstab

Aşağıdaki satırı ekleyin:

<SERVER_IP>:/mnt/nfs_share /mnt/client_share nfs auto,nofail,noatime,_netdev,hard,vers=4.2,timeo=600 0 0

Bu, sunucuya geçici olarak ulaşılamadığında istemcinin önyükleme sürecini kilitlemesini önler.

Doğrulama

NFS izinlerinin ve ağ ayarlarının doğru olduğunu onaylamak için istemciden bir okuma/yazma testi çalıştırın:

touch /mnt/client_share/test_file.txt ls -l /mnt/client_share/

Beklenen çıktı:

-rw-r--r-- 1 nobody nogroup 0 May 24 12:00 test_file.txt

Info

İstemcinin işletim sistemine bağlı olarak dosya sahibi nobody nogroup (Debian/Ubuntu) veya nobody nobody (RHEL/AlmaLinux) olarak görüntülenir. İstekler ayrıcalıksız bir kullanıcıya doğru şekilde eşlendiğinde bu, NFSv4 kimlik eşlemesinin (idmapping) beklenen davranışıdır. Uyuşmazlıklarla karşılaşırsanız, /etc/idmapd.conf dosyasındaki Domain parametresinin hem sunucuda hem istemcide aynı olduğunu doğrulayın.

Dosya başarıyla oluşturulduysa istemcileriniz sunucuyla iletişim kurabiliyor ve amaçlandığı gibi veri yazabiliyor demektir.

Değişiklikleri geri alma

İstemcide paylaşımın bağlantısını kaldırmak için:

sudo umount /mnt/client_share

Eklediyseniz, istemcideki /etc/fstab dosyasından ilgili girişi silin.

Sunucuda dizin paylaşımını durdurmak için ilgili satırı /etc/exports dosyasından silin ve değişiklikleri uygulayın:

Debian/Ubuntu:

sudo exportfs -a sudo systemctl restart nfs-kernel-server

CentOS/RHEL/AlmaLinux:

sudo exportfs -a sudo systemctl restart nfs-server

Yüklenen paketleri tamamen kaldırmak için:

Debian/Ubuntu:

sudo apt remove nfs-kernel-server nfs-common

CentOS/RHEL/AlmaLinux:

sudo dnf remove nfs-utils

Bu işlem, makinelerinizdeki NFS işlevselliğini tamamen devre dışı bırakacaktır.

Sonuç

Linux üzerinde NFS sunucusunu nasıl kuracağınızı başarıyla öğrendiniz. Ayarları doğru yapılandırarak birden fazla NFS istemcisiyle güvenli biçimde NFS ile dizin paylaşabilirsiniz. Bu kurulum, rutin yönetim görevlerini otomatikleştirmek ve proaktif güvenlik denetimleri için günlükleri merkezileştirmek açısından güvenilir bir temel oluşturur.

Doküman Sürümü: 1.0
Son Güncelleme: Mayıs 2026
Sorumlu: Teknik Dokümantasyon Ekibi

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA