1. Anasayfa
  2. Linux

Linux Üzerinde NAS Paylaşımlarına CIFS ile Erişim


QNAP, Synology, NetApp veya benzeri NAS (Network Attached Storage) cihazları dosyaları merkezi bir noktada depolamak, paylaşmak ve yedeklemek için yaygın olarak kullanılan çözümlerdir. Bir NAS cihazına ağ üzerinden bağlanmanın en yaygın yollarından biri de CIFS/SMB protokolüdür. Bu yöntem sayesinde:

  • NAS paylaşımlarını Linux sisteminizde yerel bir klasörmüş gibi kullanabilirsiniz.
  • Dosya transferlerini daha güvenli ve hızlı yönetebilirsiniz.
  • Otomatik mount ile her sistem açılışında NAS bağlantısını sorunsuzca kurabilirsiniz.

Ön Koşullar ve Kurulum

# Debian/Ubuntu için;
sudo apt update && sudo apt install -y cifs-utils

# RHEL/CentOS için;
sudo yum install -y cifs-utils
 
# Fedora için;
sudo dnf install -y cifs-utils

cifs-utils olmadan mount -t cifs kullanılamaz.

Ağ ve ad çözümleme:

  • NAS’a ping atın: ping 192.168.100.10 Ortamda DNS yoksa, kısa test gerekiyorsa /etc/hosts’a NAS adını ekleyiniz.

NAS Bilgilerini Netleştirin

  • IP/hostname: 192.168.100.10 (veya qnap.kadirkozan.local)
  • Paylaşım adı: nas_share
  • Hesap: example_user (gerekirse DOMAIN\user)
  • QNAP: Control Panel → Privilege Settings → Shared Folders içinden görürsünüz.
  • CLI ile liste:
smbclient -L 192.168.1.100 -U example_user

Geçici Mount (test amaçlı)

sudo mkdir -p /mnt/qnap_nas
sudo mount -t cifs //192.168.1.100/nas_share /mnt/qnap_nas \
  -o username=example_user,password=example_password,iocharset=utf8,vers=3.0,file_mode=0664,dir_mode=0775

Önemli seçenekler (temel):

  • vers=3.0 → SMB3 kullan (SMB1’den kaçının).
  • iocharset=utf8 → Türkçe karakter desteği.
  • file_mode/dir_mode → Yerel görünür izin maskesi (POSIX tarafında).

Doğrula:

df -h | grep qnap

Kalıcı Mount (fstab)

Kimlik Bilgilerini Güvenle Saklayın

sudo nano /etc/nas_credentials
# içerik:
username=example_user
password=example_password
# gerekiyorsa:
# domain=LAB
sudo chmod 600 /etc/nas_credentials

/etc/fstab satırı

//192.168.1.100/nas_share /mnt/qnap_nas cifs \
credentials=/etc/nas_credentials,iocharset=utf8,vers=3.0,uid=1000,gid=1000,dir_mode=0775,file_mode=0664,\
nofail,x-systemd.requires=network-online.target,x-systemd.automount,x-systemd.idle-timeout=600 0 0

Açıklamalar (kritik):

  • uid/gid → Yerelde dosyaları hangi kullanıcı/grup sahip görsün.
  • nofail → NAS yoksa sistem boot’u bekletmez.
  • x-systemd.automount → İlk erişimde bağlar (boot’u hızlandırır).
  • x-systemd.requires=network-online.target → Ağ hazır olmadan deneme.
  • x-systemd.idle-timeout=600 → 10 dk erişim yoksa otomatik unmount (isteğe bağlı).

Test:

sudo mount -a

Gelişmiş Güvenlik Ayarları (SMB3, İmzalama, Şifreleme, Kimlik Doğrulama)

Protokol sürümü

  • SMB1 (CIFS) → Güvenlik riskli, kapalı olmalı.
  • SMB2/SMB3 → Güncel ve güvenli. vers=3.0 veya vers=3.1.1 tercih edin. //srv/share /mnt cifs credentials=/etc/creds,vers=3.1.1 ...

İmzalama & Şifreleme

  • İmzalama (signing) → Paket bütünlüğünü garanti eder. ... ,sign
  • Şifreleme (encryption / seal) → SMB3 üzerinde trafik şifrelenir. ... ,seal

Not: seal (SMB3 encryption) CPU yükünü artırır; WAN/VPN ve hassas veride harika, LAN’da performans/güvenlik dengesi düşünülmeli.

Kimlik Doğrulama Yöntemi (sec=)

  • Varsayılan modern yöntem: sec=ntlmssp (NTLMv2).
  • AD/Kerberos ortamı: sec=krb5 veya sec=krb5i (imzalı). //nas/share /mnt cifs sec=krb5,cruid=1000,vers=3.0,multiuser,...
    • cruid=UID → Kerberos biletini kullanacak yerel kullanıcı.
    • multiuser → Tek mount üzerinde kullanıcı bazlı erişim (aşağıya bakın).

AD/Kerberos ile entegrasyon

  • Linux’u domaine alın (ör. realmd + sssd veya winbind): sudo apt install realmd sssd-ad sssd-tools adcli krb5-user -y sudo realm join LAB.LOCAL -U Administrator
  • Kerberos biletini al: kinit kullanici@LAB.LOCAL
  • Mount’ta sec=krb5 + multiuser kullanarak aynı mount üzerinden kullanıcıya özel yetki uygulatabilirsiniz.
  • Kullanıcı oturum açtığında bilet tazelemesi ve saat senkronu şart (NTP/chrony).

Yetki modelini doğru seçin

  • Sunucu tarafı ACL’ler (NAS üzerinde) esastır.
  • İstemci tarafında “sahipmiş gibi görünmesi” için uid/gid veya noperm kullanılabilir:
    • noperm → İstemci yerel izin kontrolünü atlar; güvenlik gereksiniminize göre dikkatli kullanın.
  • Yalnızca veri depoluyorsanız mount’a nosuid,nodev,noexec ekleyin: ... ,nosuid,nodev,noexec Bu sayede ağ paylaşımdan ikili çalıştırma/suid/device engellenir.

Parola yönetimi

  • Şifreyi fstab’a çıplak yazmayıncredentials dosyası + chmod 600.
  • Daha ileri: Kerberos (şifresiz bilet), pam_cifscreds ile kullanıcı cüzdanı.

Gelişmiş Mount Seçenekleri (stabilite & uyumluluk)

  • serverino / noserverino: inode numarası kaynaklı yedekleme/rsync sorunlarında noserverino deneyin.
  • nounix: Sunucu Unix uzantıları desteklemiyorsa veya izin haritalamasında sorun varsa.
  • mfsymlinks: Samba tarafında “Minshall+French” symlink uyumluluğu; symlink gereksiniminiz varsa.
  • cache=:
    • cache=strict (varsayılan çoğu yeni çekirdekte) → veri tutarlılığı
    • cache=none → en tutucu (yazma-okuma tutarlılığı üst seviye, yavaşlayabilir)
    • cache=loose → daha hızlı, az tutarlı (dikkatli)
  • actimeo yoktur (NFS seçeneği). CIFS’te echo_interval, handletimeout vb. çekirdek parametreleri vardır; genellikle gerekmez.
  • multichannel: Kernel ve NAS destekliyorsa SMB3 çoklu kanal (yüksek bant genişliği). ... ,multichannel

Systemd ile daha sağlam otomatik bağlama

/etc/fstab yeterli; ancak tam kontrol isterseniz unit dosyası yazın:

/etc/systemd/system/mnt-qnap_nas.mount

[Unit]
Description=QNAP NAS CIFS Mount
After=network-online.target
Wants=network-online.target

[Mount]
What=//192.168.1.100/nas_share
Where=/mnt/qnap_nas
Type=cifs
Options=credentials=/etc/nas_credentials,vers=3.1.1,iocharset=utf8,uid=1000,gid=1000,dir_mode=0775,file_mode=0664,sign,seal,nosuid,nodev,noexec

[Install]
WantedBy=multi-user.target

(Opsiyonel) Otomount: /etc/systemd/system/mnt-qnap_nas.automount

[Unit]
Description=Automount for QNAP NAS

[Automount]
Where=/mnt/qnap_nas
TimeoutIdleSec=600

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mnt-qnap_nas.automount

Sık mesajlar ve çözümler:

  • mount error(115): Operation now in progress
    • Ağ yok/NAS kapalı/DNS hatalı. → ping, nc -z 192.168.1.100 445, DNS/hosts kontrolü.
  • mount error(13): Permission denied
    • Yanlış kimlik/izin. NAS’ta paylaşıma kullanıcı/grup yetkisi verin; NTLMv1 kapalıysa NTLMv2/NTLMSSP kullanın (sec=ntlmssp).
  • mount error(2): No such file or directory
    • Paylaşım adı yanlış. → smbclient -L ... ile doğrula.
  • mount error: Host is down / Connection refused
    • SMB portu 445/TCP kapalı olabilir; QNAP’ta SMB servisinin açık olduğundan emin olun.
  • protocol negotiation failed
    • vers uyuşmuyor. NAS min/max SMB sürümü ayarlarını kontrol edin; vers=3.0 veya 3.1.1 deneyin.
  • Log bakışı (Linux tarafı): dmesg | grep -i cifs journalctl -k -b | grep -i cifs

QNAP tarafı güvenlik önerileri:

  • SMB1’i kapatın, min sürümü SMB2/3 yapın.
  • Sign/encrypt” politikalarını etkinleştirin (en azından signing).
  • NAS’ı internetten doğrudan yayınlamayın; dış erişim gerekiyorsa VPN kullanın.
  • Sadece gereken kullanıcı/gruplara en az yetki (least privilege) verin.
  • Güncel firmware şart.

Ağ güvenliği:

  • SMB portu 445/TCP; dış dünyaya kapalı olmalı.
  • VLAN/ACL ile NAS’a erişen segmentleri kısıtlayın.
  • Zaman senkronu (NTP/chrony) özellikle Kerberos için zorunlu.

Senkronizasyon ve Yedekleme

rsync örnekleri:

# Yedekle
sudo rsync -av --progress /var/log/ /mnt/qnap_nas/logs_backup/

# Yeni dosyaları kopyala, eskilere dokunma
sudo rsync -av --ignore-existing /var/log/ /mnt/qnap_nas/logs_backup/

# Tam senkronizasyon (silinenleri de uygular)
sudo rsync -av --delete /var/log/ /mnt/qnap_nas/logs_backup/

Büyük kopyalarda --partial --inplace ve uygun --exclude desenleriyle hız/tutarlılık iyileştirilebilir.

Sık Kullanılan “hazır” fstab satırları

En güvenli LAN (imzalı + şifreli, SMB3):

//192.168.1.100/nas_share /mnt/qnap_nas cifs \
credentials=/etc/nas_credentials,vers=3.1.1,iocharset=utf8,sign,seal,nosuid,nodev,noexec,\
uid=1000,gid=1000,dir_mode=0775,file_mode=0664,nofail,x-systemd.automount 0 0

AD/Kerberos + multiuser (kullanıcı bazlı erişim):

//qnap.lab.local/nas_share /mnt/qnap_nas cifs \
sec=krb5,cruid=1000,vers=3.0,multiuser,iocharset=utf8,sign,\
nosuid,nodev,noexec,nofail,x-systemd.automount 0 0

Uyumluluk sorunlarında (inode veya unix uzantıları):

//192.168.1.100/nas_share /mnt/qnap_nas cifs \
credentials=/etc/nas_credentials,vers=3.0,iocharset=utf8,nounix,noserverino,\
uid=1000,gid=1000,dir_mode=0775,file_mode=0664,nofail 0 0

Artık elinizde:

  • Temel kurulum (cifs-utils, geçici/kalıcı mount),
  • Üretim için sağlam otomatik bağlama (systemd/fstab),
  • Gelişmiş güvenlik (SMB3, signing, encryption, Kerberos, nosuid/nodev/noexec),
  • Uyumluluk/performans (cache, nounix/noserverino, multichannel),
  • Hata giderme (dmesg/journalctl, smbclient)
    içeren eksiksiz bir araç seti var.

Özet motto: SMB3 kullan, SMB1’i kapat, imzalama/şifrelemeyi politikana göre etkinleştir, kimlik bilgilerini güvenle tut, mount’u systemd ile yönet, loglara bakmayı unutma.

İlginizi Çekebilir