15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
08.10.2024

Linux’ta Samba Nasıl Kurulur ve Yapılandırılır: Eksiksiz Teknik Kılavuz

Samba, Linux ve Unix tabanlı sunucuların Windows istemcileriyle — ve diğer Linux makineleriyle — dosya, yazıcı ve diğer kaynakları paylaşmasını sağlayan SMB/CIFS (Server Message Block / Common Internet File System) protokolünün açık kaynaklı bir uygulamasıdır. İşletim sistemi sınırları arasında köprü görevi görerek karma ortamlarda platformlar arası ağ dosya paylaşımı için fiili standart haline gelmiştir.

Temel sorunun özlü yanıtı şudur: Linux’a Samba kurulumu, dağıtımınızın paket yöneticisi aracılığıyla `samba` paketinin kurulmasını, `/etc/samba/smb.conf` içinde paylaşım bloklarının tanımlanmasını, `smbpasswd` ile Samba’ya özgü kullanıcı kimlik bilgilerinin oluşturulmasını ve güvenlik duvarında 137–139 ile 445 numaralı portların açılmasını gerektirir. Aşağıdaki bölümler bu sürecin her katmanını ayrıntılı teknik düzeyde ele almaktadır.

Samba Arka Planda Gerçekte Ne Yapar

Samba bir dizi daemon olarak çalışır. Hangi daemon’ın ne yaptığını anlamak, önemli bir yapılandırma hatası kategorisini önler:

  • `smbd` — TCP 445 ve 139 portları üzerinden dosya ve yazıcı paylaşımını, kimlik doğrulamayı ve kaynak kilitlemeyi yönetir.
  • `nmbd` — UDP 137 ve 138 portları üzerinden NetBIOS ad çözümlemesini yönetir. Windows ağ taraması için gereklidir (Ağ Komşuluğu / Dosya Gezgini’nde “Ağ”).
  • `winbindd` — Samba’yı Active Directory veya NT4 etki alanlarıyla entegre ederek Linux ana bilgisayarında etki alanı kullanıcısı kimlik doğrulamasını etkinleştirir. Bağımsız dosya paylaşımı için gerekli değildir.

Bir Windows istemcisi `servershare` açtığında, önce sunucu adını DNS veya NetBIOS (nmbd) aracılığıyla çözer, ardından 445 numaralı port üzerinden smbd ile bir SMB oturumu kurar. Samba, modern sistemlerde SMB 3.1.1 olmak üzere karşılıklı olarak desteklenen en yüksek SMB lehçesini müzakere eder ve uzak paylaşımı istemcide bir sürücü harfine veya UNC yoluna eşler.

Ön Koşullar

Devam etmeden önce aşağıdakileri doğrulayın:

  • Ubuntu 20.04/22.04/24.04, Debian 11/12, CentOS Stream 8/9, RHEL 8/9 veya Fedora 38+ çalıştıran bir Linux sunucusu.
  • Root veya `sudo` erişimi.
  • Sunucuya atanmış statik bir özel IP adresi (kararlı paylaşım bağlama için kritik).
  • Terminal işlemleri ve dosya izinleri hakkında temel bilgi.
  • Gerekli portları açmak için güvenlik duvarı erişimi (UFW, firewalld veya iptables).

Samba’yı bir bulut veya sanal sunucuya dağıtıyorsanız, VPS Hosting ortamı, paylaşılan ortamların kısıtlamaları olmadan daemon’ları, güvenlik duvarı kurallarını ve kalıcı bağlamaları yönetmek için gereken tam root erişimini ve ağ kontrolünü sağlar.

Adım 1: Samba’yı Kurun

Dağıtımınıza uygun paket yöneticisini kullanın. Eski sürümlerin kurulmasını önlemek için her zaman önce paket dizinini güncelleyin.

Debian / Ubuntu:

“`bash

sudo apt-get update

sudo apt-get install samba samba-common-bin

“`

CentOS Stream / RHEL:

“`bash

sudo dnf install samba samba-client samba-common

“`

Fedora:

“`bash

sudo dnf install samba samba-client samba-common

“`

Arch Linux:

“`bash

sudo pacman -S samba

“`

Kurulumdan sonra yüklü sürümü doğrulayın:

“`bash

smbd –version

“`

RHEL tabanlı sistemlerde, sonraki adımlarda bağlantı testi için kullanacağınız `smbclient` tanılama yardımcı programını edinmek için `samba-client` paketini de kurun.

Adım 2: Ana Yapılandırma Dosyasını Yedekleyin ve Düzenleyin

Tüm Samba yapılandırması `/etc/samba/smb.conf` dosyasında bulunur. Bu tek dosya, genel sunucu davranışını, güvenlik modelini, paylaşım tanımlarını ve günlüğü kontrol eder. Dosyaya dokunmadan önce zaman damgalı bir yedek oluşturun:

“`bash

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup.$(date +%F)

“`

Dosyayı düzenlemek için açın:

“`bash

sudo nano /etc/samba/smb.conf

“`

Dosya bölümlere ayrılmıştır. `[global]` bölümü sunucu genelindeki parametreleri tanımlar. Bireysel paylaşım bölümleri (örn. `[sambashare]`) belirli paylaşılan kaynakları tanımlar.

İncelenmesi Gereken Kritik Global Parametreler

`[global]` bölümünün içinde şu ayarlara dikkat edin:

“`ini

[global]

workgroup = WORKGROUP

server string = Samba Server %v

netbios name = MYSERVER

security = user

map to guest = bad user

dns proxy = no

log file = /var/log/samba/log.%m

max log size = 1000

logging = file

panic action = /usr/share/samba/panic-action %d

server role = standalone server

obey pam restrictions = yes

unix password sync = yes

passwd program = /usr/bin/passwd %u

passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .

pam password change = yes

min protocol = SMB2

max protocol = SMB3

“`

Önemli bilgi: `min protocol = SMB2` yönergesi, 2014’ten bu yana kullanımdan kaldırılmış ve EternalBlue (MS17-010) gibi açıkların vektörü olan SMB1’i açıkça devre dışı bırakır. Üretim sunucusunda SMB1’i hiçbir zaman etkin bırakmayın. Modern Windows 10/11 ve tüm güncel Linux CIFS istemcileri SMB2 ve SMB3’ü yerel olarak destekler.

Adım 3: Paylaşılan Dizini Oluşturun ve Hazırlayın

Ağ üzerinden erişime açılacak dizini oluşturun:

“`bash

sudo mkdir -p /srv/sambashare

“`

Sahipliği ve izinleri ayarlayın. Doğru yaklaşım, misafir erişimi mi yoksa yalnızca kimlik doğrulamalı erişim mi istediğinize bağlıdır.

Kimlik doğrulamalı kullanıcı erişimi için (üretim için önerilen):

“`bash

sudo chown root:sambashare /srv/sambashare

sudo chmod 2770 /srv/sambashare

“`

`2770` izni şu şekilde açıklanır:

  • `2` — setgid biti: yeni dosyalar dizinin grubunu devralır, çok kullanıcılı paylaşımlarda sahiplik parçalanmasını önler.
  • `7` — sahip (root) okuma, yazma, çalıştırma iznine sahiptir.
  • `7` — grup (sambashare) okuma, yazma, çalıştırma iznine sahiptir.
  • `0` — diğerlerinin erişimi yoktur.

Misafir/genel erişim için (yalnızca ev laboratuvarı veya dahili LAN):

“`bash

sudo chown nobody:nogroup /srv/sambashare

sudo chmod 0777 /srv/sambashare

“`

İnternete açık sunucularda `0777` kullanmayın. Dünya genelinde yazma izinlerine sahip misafir paylaşımları yalnızca yalıtılmış, güvenilir ağlarda uygundur.

Adım 4: Sistem Grubu ve Kullanıcısı Oluşturun

Kimlik doğrulamalı paylaşımlar için Samba paylaşımınıza eşlenen özel bir Linux grubu oluşturun:

“`bash

sudo groupadd sambashare

“`

Paylaşıma erişecek Linux kullanıcısını ekleyin:

“`bash

sudo useradd -M -s /sbin/nologin sambauser

sudo usermod -aG sambashare sambauser

“`

`-M` bayrağı ana dizin oluşturmayı atlar (bu bir hizmet hesabıdır, etkileşimli kullanıcı değil). `-s /sbin/nologin` bayrağı, hesabın SSH veya konsol girişleri için kullanılmasını engeller — çoğu öğreticinin atladığı kritik bir güvenlik sertleştirme adımı.

Şimdi kullanıcıyı Samba’nın kendi parola veritabanına kaydedin (`/etc/shadow`’dan ayrıdır):

“`bash

sudo smbpasswd -a sambauser

sudo smbpasswd -e sambauser

“`

`-a` bayrağı kullanıcıyı ekler; `-e` bayrağı hesabı etkinleştirir. Samba, `passdb backend` ayarına bağlı olarak kendi kimlik bilgisi deposunu `/var/lib/samba/private/passdb.tdb` (veya `smbpasswd` dosyası) konumunda tutar. Bir kullanıcı Samba’nın veritabanında olmadan Linux’ta var olabilir ve bunun tersi de geçerlidir — her ikisine de kayıtlı olmaları gerekir.

Adım 5: smb.conf’ta Paylaşımı Tanımlayın

`/etc/samba/smb.conf` dosyasının sonuna aşağıdaki bloğu ekleyin. İki yapılandırma gösterilmektedir: biri kimlik doğrulamalı erişim, diğeri misafir erişimi için.

Kimlik Doğrulamalı Paylaşım (Üretim İçin Önerilen)

“`ini

[sambashare]

path = /srv/sambashare

comment = Authenticated Network Share

browsable = yes

writable = yes

read only = no

guest ok = no

valid users = @sambashare

create mask = 0660

directory mask = 2770

force group = sambashare

“`

Parametre açıklaması:

  • `valid users = @sambashare` — `@` öneki “sambashare adlı Linux grubunun herhangi bir üyesi” anlamına gelir. Bu, bireysel kullanıcı adlarını listelemekten daha ölçeklenebilirdir.
  • `create mask = 0660` — yeni dosyalar rw-rw—- izinleriyle oluşturulur, dünya genelinde okunabilir dosyaları önler.
  • `directory mask = 2770` — yeni alt dizinler setgid bitini ve grup izinlerini devralır.
  • `force group = sambashare` — bağlanan kullanıcının birincil grubundan bağımsız olarak tüm dosya işlemlerinin sambashare grubunu kullanmasını zorlar.

Misafir Paylaşımı (Ev Laboratuvarı / Dahili LAN)

“`ini

[public]

path = /srv/sambashare

comment = Public Network Share

browsable = yes

writable = yes

read only = no

guest ok = yes

guest account = nobody

create mask = 0664

directory mask = 0775

“`

Adım 6: Yapılandırmayı Doğrulayın

Herhangi bir hizmeti yeniden başlatmadan önce yerleşik yapılandırma ayrıştırıcısını çalıştırın:

“`bash

testparm

“`

`testparm`, `smb.conf` dosyasını okur, sözdizimi hatalarını raporlar ve varsayılanlar uygulandıktan sonra etkin yapılandırmayı yazdırır. `WARNING` satırlarına dikkat edin — bunlar genellikle kullanımdan kaldırılmış parametrelere veya güvenlik yanlış yapılandırmalarına işaret eder. Temiz bir çıktı şununla biter:

“`

Loaded services file OK.

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

“`

`testparm` hata bildirirse, devam etmeden önce bunları düzeltin. Bozuk bir yapılandırma dosyasıyla smbd’yi yeniden başlatmak, hizmetin sessizce başarısız olmasına veya varsayılanlara dönmesine neden olur.

Adım 7: Samba Daemon’larını Yeniden Başlatın ve Etkinleştirin

Debian / Ubuntu:

“`bash

sudo systemctl restart smbd nmbd

sudo systemctl enable smbd nmbd

“`

CentOS / RHEL / Fedora:

“`bash

sudo systemctl restart smb nmb

sudo systemctl enable smb nmb

“`

Her iki daemon’ın da çalıştığını doğrulayın:

“`bash

sudo systemctl status smbd nmbd # Debian/Ubuntu

sudo systemctl status smb nmb # RHEL/Fedora

“`

Daemon’ların doğru portları dinlediğini kontrol edin:

“`bash

sudo ss -tlnp | grep -E '(smbd|nmbd|445|139)'

“`

Beklenen çıktı, `smbd`’nin 445 ve 139 portlarına bağlı olduğunu göstermelidir.

Adım 8: Güvenlik Duvarı Kurallarını Yapılandırın

Samba’nın açık olmasını gerektirdiği portlar şunlardır:

PortProtokolHizmetAmaç
—————-——————
137UDPnmbdNetBIOS Ad Hizmeti
138UDPnmbdNetBIOS Datagram Hizmeti
139TCPsmbdNetBIOS Oturum Hizmeti (NetBIOS üzerinden SMB)
445TCPsmbdDoğrudan SMB (SMB2/SMB3 — birincil port)

UFW (Debian/Ubuntu):

“`bash

sudo ufw allow 'Samba'

sudo ufw status

“`

firewalld (CentOS/RHEL/Fedora):

“`bash

sudo firewall-cmd –permanent –add-service=samba

sudo firewall-cmd –reload

sudo firewall-cmd –list-services

“`

iptables (manuel):

“`bash

sudo iptables -A INPUT -p tcp –dport 445 -j ACCEPT

sudo iptables -A INPUT -p tcp –dport 139 -j ACCEPT

sudo iptables -A INPUT -p udp –dport 137:138 -j ACCEPT

“`

Güvenlik notu: Samba sunucunuz internetten erişilebiliyorsa (standart dosya paylaşımı için önerilmez), bu kuralları `-s 192.168.1.0/24` veya eşdeğerini kullanarak belirli kaynak IP aralıklarıyla kısıtlayın. SMB portlarını genel internete açmak ciddi bir güvenlik riskidir.

Adım 9: SELinux Değerlendirmeleri (RHEL/CentOS/Fedora)

SELinux zorlayan sistemlerde Samba, paylaşılan dizinlerde ek bağlam etiketleri gerektirir. Bunlar olmadan, Linux izinleri doğru olsa bile smbd yola erişimi engellenecektir.

“`bash

sudo setsebool -P samba_enable_home_dirs on

sudo setsebool -P samba_export_all_rw on

sudo semanage fcontext -a -t samba_share_t "/srv/sambashare(/.*)?"

sudo restorecon -Rv /srv/sambashare

“`

Bağlamın uygulandığını doğrulayın:

“`bash

ls -lZ /srv/sambashare

“`

Çıktı, SELinux bağlamı olarak `system_u:object_r:samba_share_t:s0` göstermelidir. Bu adımı atlamak, RHEL ailesi sistemlerde Samba paylaşımlarının başarısız olmasının en yaygın tek nedenidir — hizmet doğru başlıyor gibi görünür, ancak istemciler “Erişim Reddedildi” hatası alır.

Adım 10: Windows’tan Paylaşıma Erişin

Bir Windows istemcisinde:

  1. Dosya Gezgini‘ni açın.
  2. Adres çubuğuna şunu yazın: `<server-ip>sambashare` ve Enter’a basın.
  3. İstendiğinde Samba kullanıcı adını ve parolasını girin.
  4. Bağlantıyı kalıcı hale getirmek için paylaşıma sağ tıklayın ve Ağ sürücüsü olarak eşle‘yi seçin.

Betikli veya kurumsal dağıtımlar için sürücüyü komut satırından eşleyin:

“`cmd

net use Z: 192.168.1.100sambashare /user:sambauser /persistent:yes

“`

Adım 11: Linux’tan Paylaşıma Erişin

smbclient kullanarak (etkileşimli, test için):

“`bash

smbclient //192.168.1.100/sambashare -U sambauser

“`

Bu, FTP benzeri etkileşimli bir kabuk açar. Dosyalarda gezinmek ve dosya aktarmak için `ls`, `get`, `put` ve `exit` komutlarını kullanın.

CIFS ile paylaşımı kalıcı olarak bağlama:

Önce CIFS yardımcı programları paketini kurun:

“`bash

sudo apt-get install cifs-utils # Debian/Ubuntu

sudo dnf install cifs-utils # RHEL/Fedora

“`

Bir bağlama noktası ve kimlik bilgileri dosyası oluşturun (parolaları `/etc/fstab` içine düz metin olarak asla koymayın):

“`bash

sudo mkdir -p /mnt/sambashare

sudo nano /etc/samba/credentials

“`

Kimlik bilgileri dosyasının içinde:

“`

username=sambauser

password=yourpassword

domain=WORKGROUP

“`

Kimlik bilgileri dosyasını güvenli hale getirin:

“`bash

sudo chmod 600 /etc/samba/credentials

sudo chown root:root /etc/samba/credentials

“`

Yeniden başlatmalar arasında kalıcılık için bağlamayı `/etc/fstab` dosyasına ekleyin:

“`

//192.168.1.100/sambashare /mnt/sambashare cifs credentials=/etc/samba/credentials,uid=1000,gid=1000,iocharset=utf8,vers=3.0,_netdev 0 0

“`

`_netdev` seçeneği, sisteme bağlamayı denemeden önce ağ kullanılabilirliğini beklemesini söyler — önyüklemede ağ paylaşımlarını bağlayan sunucularda gereklidir. `vers=3.0` seçeneği SMB3’ü zorlar, eski lehçelere geri dönüşü önler.

Yeniden başlatmadan fstab girişini test edin:

“`bash

sudo mount -a

“`

SMB Protokol Sürümü Karşılaştırması

Doğru SMB lehçesini seçmek performansı, güvenliği ve uyumluluğu etkiler. Aşağıdaki tablo temel farklılıkları özetlemektedir:

SMB SürümüYılTemel ÖzelliklerGüvenlikÖnerilen Kullanım
————-——————–———-—————–
SMB11983Temel dosya paylaşımıKritik düzeyde savunmasız (EternalBlue)Asla kullanmayın — açıkça devre dışı bırakın
SMB22006Ardışık düzen, azaltılmış iletişim, imzalamaİyileştirilmişEski Windows Vista/7 istemcileri
SMB2.12010İstemci oplock kiralamaİyileştirilmişWindows 7/2008 R2
SMB3.02012Çok kanallı, şifreleme, yük devretmeGüçlüWindows 8/2012 ve sonrası
SMB3.1.12015Ön kimlik doğrulama bütünlüğü, AES-128-GCMEn güçlüWindows 10/11, modern Linux

`[global]` içinde her zaman `min protocol = SMB2` ayarlayın ve tüm istemcilerin desteklediği durumlarda `SMB3`’ı tercih edin. Şifrelemeli SMB3.1.1 (`smb encrypt = required`), hassas veri içeren herhangi bir paylaşım için doğru seçimdir.

Samba ve NFS: Doğru Protokolü Seçmek

Hem Samba (SMB/CIFS) hem de NFS, Linux tabanlı ağ dosya paylaşımı için yaygın olarak kullanılır, ancak farklı kullanım durumlarına hizmet ederler:

KriterSamba (SMB/CIFS)NFS
———-—————–—–
Birincil Kullanım DurumuPlatformlar arası (Linux + Windows)Linux’tan Linux’a paylaşım
Windows İstemci DesteğiYerel, istemci yazılımı gerekmezNFS istemci kurulumu gerektirir
macOS DesteğiYerel (SMB)Yerleşik NFS istemcisi aracılığıyla desteklenir
Kimlik DoğrulamaKullanıcı adı/parola, AD entegrasyonuAna bilgisayar tabanlı (IP/ana bilgisayar adı)
Performans (LAN)Biraz daha yüksek ek yükDaha düşük ek yük, LAN’da daha hızlı
ŞifrelemeSMB3, AES şifrelemeyi desteklerNFSv4.2, krb5 şifrelemeyi destekler
Yapılandırma KarmaşıklığıOrtaYalnızca Linux ortamları için daha düşük
En İyi KullanımKarma işletim sistemi ortamları, etki alanı entegrasyonuHomojen Linux kümeleri, HPC

Altyapınız yalnızca Linux’tan oluşuyorsa — örneğin, kapsayıcılı iş yükleri çalıştıran bir Dedicated Servers kümesi — NFS daha düşük gecikme süresi sunabilir. Windows istemcileri veya macOS kullanıcıları olan herhangi bir ortam için Samba doğru seçimdir.

Yaygın Tuzaklar ve Sorun Giderme

Paylaşım görünür ancak “Erişim Reddedildi” döndürüyor

  • SELinux sistemlerinde: Adım 9’da açıklandığı gibi `samba_share_t` bağlamını kontrol edin ve uygulayın.
  • Linux izinlerini kontrol edin: Bağlanan kullanıcının (veya misafir paylaşımları için `nobody` hesabının), Samba’nın kendi ACL’lerinden bağımsız olarak yola dosya sistemi düzeyinde okuma/yazma erişimi olmalıdır.
  • smbpasswd’yi doğrulayın: Kullanıcı `smbpasswd -a` ile eklenmiş ve `smbpasswd -e` ile etkinleştirilmiş olmalıdır.

Ağa göz atarken paylaşım görünmüyor

  • `nmbd`’nin çalıştığını doğrulayın: `sudo systemctl status nmbd`.
  • Paylaşım tanımında `browsable = yes` ayarlandığından emin olun.
  • Windows 10/11, SMB1’e bağımlı “Bilgisayar Tarayıcısı” hizmetini devre dışı bıraktı. Ağ keşfine güvenmek yerine doğrudan UNC yollarını (`ipshare`) kullanın.

Yavaş aktarım hızları

  • Bağlama seçeneklerinde `vers=3.0` veya `vers=3.1.1` ile SMB3’ü zorlayın.
  • Büyük MTU’yu etkinleştirin: `[global]` dosyasına `socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072` ekleyin.
  • SMB çok kanalının mevcut olup olmadığını kontrol edin: `smbstatus –verbose`.

Günlükler ve tanılamalar

“`bash

sudo tail -f /var/log/samba/log.smbd

sudo smbstatus

sudo pdbedit -L -v # List all Samba users

“`

Üretimde Samba: Mimari Değerlendirmeler

Basit bir dosya paylaşımının ötesinde üretim dağıtımları için aşağıdakileri göz önünde bulundurun:

Active Directory Entegrasyonu: Samba 4, LDAP, Kerberos, DNS ve Grup İlkesini destekleyen tam bir Active Directory Etki Alanı Denetleyicisi olarak işlev görebilir. Bu, bağımsız dosya paylaşımının ötesinde önemli bir mimari adımdır ve `samba-ad-dc` sağlaması gerektirir.

Ana Dizin Paylaşımları: `smb.conf` içindeki `[homes]` meta-hizmeti, her kimlik doğrulamalı kullanıcı için Linux ana dizinine eşlenmiş kişisel bir paylaşım otomatik olarak oluşturur. Bu, kullanıcı başına bireysel paylaşım bloklarını tanımlama ihtiyacını ortadan kaldırır.

Yazıcı Paylaşımı: Samba, ağ üzerinden yazıcıları paylaşmak için CUPS ile entegre olur. `[printers]` ve `[print$]` paylaşım tanımları bunu yönetir, ancak bulut yazdırma hizmetlerinin yükselişiyle yazıcı paylaşımı daha az yaygın hale gelmiştir.

Kotalar: Samba, Linux dosya sistemi kotalarına saygı gösterir. Kotaları `quota` araçlarını kullanarak dosya sistemi düzeyinde uygulayın; Samba bunları şeffaf biçimde zorlayacaktır.

Dosya paylaşımlarının yanı sıra web uygulamaları çalıştıran ekipler için Samba’yı bir VPS with cPanel ile birleştirmek, Samba yönetimi için tam SSH erişimini korurken web barındırma için yönetilen bir kontrol paneli sağlar. Tek çatı altında birden fazla barındırma hizmeti gerektiren ortamlar için mevcut VPS Control Panels seçeneklerini incelemek, yığınınız için doğru yönetim katmanını belirlemenize yardımcı olur.

Samba sunucunuz aynı zamanda web içeriği veya uygulama verisi barındırıyorsa, ilgili web’e yönelik hizmetleri bir SSL Certificate ile güvence altına almak tüm yığının modern güvenlik standartlarını karşılamasını sağlar.

Teknik Temel Çıkarım Kontrol Listesi

Samba dağıtımınızı üretime hazır saymadan önce bu kontrol listesini kullanın:

  • [ ] SMB1, `[global]` içinde `min protocol = SMB2` aracılığıyla açıkça devre dışı bırakıldı
  • [ ] Samba kullanıcıları `smbpasswd -a` ile oluşturuldu ve `smbpasswd -e` ile etkinleştirildi
  • [ ] Hizmet hesapları kabuk erişimini engellemek için `-s /sbin/nologin` kullanıyor
  • [ ] Paylaşım dizinleri tutarlı grup sahipliği için setgid bitini (`chmod 2770`) kullanıyor
  • [ ] `testparm` uyarı veya hata olmadan temiz çalışıyor
  • [ ] Hem `smbd` hem de `nmbd` etkin ve çalışıyor
  • [ ] Güvenlik duvarı kuralları SMB portlarını (445, 139, 137-138) yalnızca güvenilir kaynak IP’leriyle kısıtlıyor
  • [ ] RHEL/CentOS/Fedora sistemlerinde SELinux bağlamı (`samba_share_t`) uygulandı
  • [ ] CIFS bağlamaları için kimlik bilgileri dosyası `chmod 600` ve root’a ait
  • [ ] `/etc/fstab` girişleri ağa bağımlı bağlamalar için `_netdev` seçeneğini kullanıyor
  • [ ] İlk dağıtımdan sonra `/var/log/samba/` konumundaki Samba günlükleri incelendi
  • [ ] `smbstatus` dağıtım sonrası aktif oturumları ve kilitli dosyaları doğruluyor

SSS

Samba hangi portları kullanır ve tümünün açık olması gerekir mi?

Samba, TCP 445 (doğrudan SMB, gerekli), TCP 139 (NetBIOS üzerinden SMB, eski istemciler için gerekli) ve UDP 137-138 (NetBIOS ad çözümlemesi, ağ taraması için gerekli) portlarını kullanır. Windows 10/11 veya doğrudan UNC yolları kullanan Linux istemcilerinin bulunduğu modern ortamlar için yalnızca TCP 445 kesinlikle gereklidir. NetBIOS ad çözümlemesi gerekmiyorsa UDP 137-138 ve TCP 139 engellenebilir.

Samba paylaşımım Linux’tan çalışıyor ancak Windows’tan “Erişim Reddedildi” döndürüyor, neden?

Bu neredeyse her zaman Windows tarafında bir kimlik bilgisi önbelleğe alma sorunudur. Windows, SMB kimlik bilgilerini oturum başına önbelleğe alır. Kimlik Bilgisi Yöneticisi’ni açın (Denetim Masası > Kimlik Bilgisi Yöneticisi > Windows Kimlik Bilgileri), sunucunun IP’si için önbelleğe alınmış girişleri kaldırın, ardından yeniden bağlanın. Sorun devam ederse, kullanıcının `sudo pdbedit -L -v` ile Samba veritabanında etkin olduğunu doğrulayın.

smb.conf’ta `security = user` ile `security = share` arasındaki fark nedir?

`security = share` (paylaşım düzeyinde güvenlik) kullanımdan kaldırılmış ve Samba 4’te kaldırılmıştır. `security = user` (kullanıcı düzeyinde güvenlik), modern Samba’da desteklenen tek moddur — her bağlantı belirli bir kullanıcı adı ve parola ile kimlik doğrulamasından geçer. Misafir erişimi, `security` parametresi aracılığıyla değil, `guest ok` ve `map to guest` yönergeleri aracılığıyla ayrı olarak yönetilir.

Samba, aynı sunucuda NFS ile birlikte var olabilir mi?

Evet. Samba ve NFS tamamen farklı portlar ve protokoller üzerinde çalışır ve ağ düzeyinde çakışmaz. Ancak aynı dizini aynı anda her iki protokol üzerinden paylaşmak, özellikle yazma işlemlerinde dosya kilitleme çakışmalarına neden olabilir. Aynı verileri her iki protokol üzerinden paylaşmanız gerekiyorsa, dağıtılmış bir kilit yöneticisi (DLM) kullanın veya bir protokolü salt okunur erişimle kısıtlayın.

Tek bir Samba paylaşımına birden fazla kullanıcı nasıl eklerim?

Bir Linux grubu kullanın. Grubu oluşturun (`groupadd teamshare`), kullanıcıları ekleyin (`usermod -aG teamshare user1`), paylaşım dizininin grup sahipliğini ayarlayın (`chown root:teamshare /srv/share`) ve `valid users = @teamshare` ile `smb.conf` içinde gruba başvurun. Bu yaklaşım temiz biçimde ölçeklenir — paylaşıma kullanıcı eklemek yalnızca bir `usermod` komutu ve bir `smbpasswd -a` kaydı gerektirir, `smb.conf` dosyasında herhangi bir değişiklik gerekmez.

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın