Takip et

Samba Nedir ve Neden Kullanılır?

Küçük bir kuruluşta dosyaların merkezi ve güvenli bir şekilde paylaşılması, verimlilik ve işbirliği açısından kritik öneme sahiptir.

Küçük bir kuruluşta dosyaların merkezi ve güvenli bir şekilde paylaşılması, verimlilik ve işbirliği açısından kritik öneme sahiptir. Samba, Linux tabanlı sistemlerin Windows ağlarıyla sorunsuz bir şekilde dosya ve yazıcı paylaşımı yapmasını sağlayan güçlü ve esnek bir yazılımdır. Bu rehber, Ubuntu 16.04 üzerinde küçük bir organizasyon için Samba paylaşımı kurmanın adım adım sürecini anlatmaktadır.

Samba Nedir ve Neden Kullanılır?

Samba, Server Message Block (SMB) protokolünün açık kaynaklı bir uygulamasıdır. SMB/CIFS, Microsoft Windows işletim sistemlerinin ağ üzerinde dosya ve yazıcı paylaşımı için kullandığı temel protokoldür. Samba sayesinde, bir Linux sunucusu Windows ağında bir dosya sunucusu, etki alanı denetleyicisi (domain controller) veya üye sunucu olarak işlev görebilir.

Küçük Kuruluşlar İçin Samba’nın Avantajları:

  • Merkezi Depolama: Tüm önemli dosyaları tek bir sunucuda toplayarak veri yedeklemeyi ve yönetimi kolaylaştırır.
  • Kolay Erişim: Windows, macOS ve Linux kullanıcıları, tanıdık ağ sürücüsü eşleme yöntemleriyle paylaşılan dosyalara kolayca erişebilir.
  • Maliyet Etkinliği: Açık kaynak kodlu ve ücretsiz olması, küçük işletmeler için önemli bir maliyet avantajı sağlar.
  • Esneklik: Kullanıcı ve grup bazında detaylı erişim izinleri ayarlama imkanı sunar.
  • Güvenlik: Kimlik doğrulama ve yetkilendirme mekanizmaları sayesinde verilere sadece yetkili kişilerin erişmesini sağlar.

Ubuntu 16.04 her ne kadar artık resmi desteği sona ermiş eski bir sürüm olsa da, bu rehber talep üzerine bu sürüm özelinde hazırlanmıştır. Güvenlik ve performans açısından mümkünse daha güncel bir Ubuntu sürümüne geçilmesi şiddetle tavsiye edilir.

Ön Gereksinimler ve Samba Kurulumu

Samba paylaşımını kurmaya başlamadan önce, temel bazı ön gereksinimlerin karşılandığından emin olmalıyız.

Ön Gereksinimler:

  • Ubuntu 16.04 yüklü, statik IP adresine sahip bir sunucu veya bilgisayar.
  • Yönetici (sudo) ayrıcalıklarına sahip bir kullanıcı hesabı.
  • Ağ bağlantısı.

Sistem Güncelleme ve Samba Paket Kurulumu:

İlk adım olarak, sistem paket listesini güncelleyelim ve Samba paketlerini kuralım:

sudo apt update
sudo apt upgrade -y
sudo apt install samba samba-client smbclient -y
  • samba: Samba sunucu paketini içerir.
  • samba-client: Samba istemci araçlarını sağlar (örneğin, Samba paylaşımlarına bağlanmak için).
  • smbclient: Komut satırından Samba paylaşımlarına erişmek ve test etmek için kullanılır.

Güvenlik Duvarı (UFW) Ayarları:

Ubuntu’da UFW (Uncomplicated Firewall) genellikle varsayılan güvenlik duvarıdır. Samba’nın ağ üzerinden erişilebilir olması için gerekli portları açmamız gerekir. Samba, 137, 138 (UDP) ve 139, 445 (TCP) portlarını kullanır.

sudo ufw allow samba
sudo ufw enable
sudo ufw status

sudo ufw status komutu, Samba kurallarının eklendiğini ve güvenlik duvarının etkin olduğunu göstermelidir.

Samba Paylaşımını Yapılandırma

Samba’nın ana yapılandırma dosyası /etc/samba/smb.conf adresindedir. Bu dosyayı düzenleyerek paylaşımlarımızı tanımlayacağız.

Yapılandırma Dosyasını Yedekleme:

Herhangi bir değişiklik yapmadan önce orijinal yapılandırma dosyasını yedeklemek iyi bir pratiktir:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Paylaşım Dizini Oluşturma ve İzinleri Ayarlama:

Paylaşacağımız dosyalar için bir dizin oluşturalım. Örneğin, tüm ortak dosyalar için /srv/samba/ortak_dosyalar dizinini kullanalım. /srv dizini, sunucuya özel veriler için standart bir konumdur.

sudo mkdir -p /srv/samba/ortak_dosyalar

Şimdi bu dizinin izinlerini ayarlamamız gerekiyor. Küçük bir kuruluşta, tüm Samba kullanıcılarının bu dizine okuma/yazma erişimi olması istenebilir. Bu durumda, dizinin sahipliğini ve izinlerini uygun şekilde ayarlamalıyız.

En basit yaklaşım, dizini nobody:nogroup olarak sahiplendirmek ve tüm Samba kullanıcılarının erişebileceği bir grup oluşturmaktır. Daha güvenli bir yaklaşım, özel bir grup oluşturup Samba kullanıcılarını bu gruba dahil etmektir.

# Özel bir Samba grubu oluşturalım (eğer yoksa)
sudo addgroup samba_users

Dizinin sahipliğini root'tan samba_users grubuna verelim

sudo chown -R root:samba_users /srv/samba/ortak_dosyalar

Dizin izinlerini ayarlayalım:

Sahibi (root) tam erişim (7), grup üyeleri tam erişim (7), diğerleri okuma ve çalıştırma (5)

sudo chmod -R 2775 /srv/samba/ortak_dosyalar

2775 izni, SetGID bitini (2) ayarlar. Bu, bu dizinde oluşturulan yeni dosyaların ve dizinlerin otomatik olarak samba_users grubuna ait olmasını sağlar. Böylece, farklı kullanıcılar tarafından oluşturulan dosyalar üzerinde de grup izinleri korunmuş olur.

smb.conf Dosyasını Düzenleme:

Şimdi smb.conf dosyasını düzenlemek için bir metin düzenleyici açalım:

sudo nano /etc/samba/smb.conf

Dosyanın en başına veya [global] bölümünün altına aşağıdaki temel ayarları ekleyelim:

[global]
   workgroup = WORKGROUP
   security = user
   map to guest = Bad User
   dns proxy = no

   # Loglama ayarları
   log file = /var/log/samba/log.%m
   max log size = 1000

   # Kimlik doğrulama ayarları
   passdb backend = tdbsam

   # Paylaşım ayarları
   unix charset = UTF-8
   dos charset = CP850
   force create mode = 0664
   force directory mode = 0775
  • workgroup: Windows ağınızın çalışma grubu veya etki alanı adıyla eşleşmelidir.
  • security = user: Kullanıcı adı ve parola ile kimlik doğrulama gerektirir. Küçük kuruluşlar için önerilir.
  • map to guest = Bad User: Geçersiz bir kullanıcı adı veya parola ile bağlanmaya çalışan kullanıcıların misafir olarak kabul edilmemesini sağlar.
  • dns proxy = no: DNS sorgularını Samba üzerinden geçirmeyi devre dışı bırakır.
  • force create mode ve force directory mode: Yeni oluşturulan dosya ve dizinlerin varsayılan izinlerini belirler. Bu ayarlar, chmod ile ayarladığımız dizin izinleriyle uyumlu olmalıdır.

Şimdi dosyanın en altına yeni bir paylaşım tanımı ekleyelim. Örneğin, “OrtakDosyalar” adında bir paylaşım oluşturalım:

[OrtakDosyalar]
   comment = Kurum Ortak Dosya Paylasimi
   path = /srv/samba/ortak_dosyalar
   browseable = yes
   writable = yes
   read only = no
   valid users = @samba_users
   force group = samba_users
   create mask = 0664
   directory mask = 0775
  • [OrtakDosyalar]: Paylaşımın ağda görünecek adı.
  • comment: Paylaşım için açıklama.
  • path: Paylaşımın sunucudaki fiziksel yolu.
  • browseable = yes: Paylaşımın ağda görünür olmasını sağlar.
  • writable = yes: Kullanıcıların bu paylaşıma yazabilmesini sağlar.
  • read only = no: writable = yes ile aynı anlama gelir.
  • valid users = @samba_users: Paylaşıma sadece samba_users grubunun üyelerinin erişebileceğini belirtir. Bu, kullanıcı yönetimini kolaylaştırır.
  • force group = samba_users: Bu paylaşımda oluşturulan tüm dosyaların ve dizinlerin otomatik olarak samba_users grubuna ait olmasını sağlar. Bu, grup içi işbirliği için önemlidir.
  • create mask ve directory mask: Yeni oluşturulan dosya ve dizinlerin izinlerini belirler.

Değişiklikleri kaydedin ve dosyayı kapatın (Nano’da Ctrl+O, Enter, Ctrl+X).

Yapılandırmayı Test Etme ve Servisi Yeniden Başlatma:

Yapılandırma dosyasında bir hata olup olmadığını kontrol etmek için testparm komutunu kullanabiliriz:

testparm

Eğer çıktıda herhangi bir hata mesajı yoksa, yapılandırma dosyanız sözdizimsel olarak doğrudur. Şimdi Samba servislerini yeniden başlatalım:

sudo service smbd restart
sudo service nmbd restart

Kullanıcı Yönetimi ve İzinler

Samba, Linux kullanıcı hesaplarından bağımsız bir parola veritabanı kullanır. Yani, bir kullanıcının hem Linux sisteminde bir hesabı hem de Samba için ayrı bir parolası olması gerekir.

Linux Kullanıcıları Oluşturma:

Öncelikle, Samba ile erişim sağlayacak her kullanıcı için bir Linux hesabı oluşturalım. Bu hesapların sisteme giriş yapmasına izin vermemiz gerekmediği için, ana dizinleri ve giriş kabukları olmadan oluşturabiliriz:

sudo adduser --no-create-home --shell /usr/sbin/nologin [kullaniciadi]

Örneğin:

sudo adduser --no-create-home --shell /usr/sbin/nologin ahmet
sudo adduser --no-create-home --shell /usr/sbin/nologin ayse

Bu komutlar kullanıcıları oluştururken bir parola belirlemenizi isteyecektir. Bu, Linux parolasıdır.

Samba Kullanıcıları Oluşturma ve Parola Belirleme:

Şimdi bu Linux kullanıcılarını Samba veritabanına ekleyelim ve Samba parolalarını belirleyelim:

sudo smbpasswd -a [kullaniciadi]

Örneğin:

sudo smbpasswd -a ahmet
sudo smbpasswd -a ayse

Bu komut, kullanıcı için bir Samba parolası belirlemenizi isteyecektir. Bu parola, kullanıcının Samba paylaşımına erişirken kullanacağı paroladır ve Linux parolasıyla aynı olmak zorunda değildir (ancak kolaylık sağlaması açısından aynı olması tercih edilebilir).

Kullanıcının Samba erişimini etkinleştirmek için parolayı ayarladıktan sonra:

sudo smbpasswd -e [kullaniciadi]

Kullanıcıları Samba Grubuna Ekleme:

Paylaşımımızı samba_users grubuna göre yapılandırdığımız için, oluşturduğumuz kullanıcıları bu gruba eklememiz gerekiyor:

sudo usermod -aG samba_users ahmet
sudo usermod -aG samba_users ayse

Bu komutlar, kullanıcıları mevcut gruplarına ek olarak samba_users grubuna da dahil eder. Değişikliklerin etkili olması için Samba servislerini yeniden başlatmak gerekebilir:

sudo service smbd restart
sudo service nmbd restart

Paylaşıma Erişim ve Sorun Giderme

Kurulum tamamlandıktan sonra, farklı işletim sistemlerinden Samba paylaşımına nasıl erişileceğine bakalım.

Windows’tan Erişim:

Windows bilgisayarlardan Samba paylaşımına erişmek oldukça basittir:

  1. Dosya Gezgini’ni açın.
  2. Adres çubuğuna \\SunucuIPAdresi\OrtakDosyalar yazın (örneğin, \\192.168.1.100\OrtakDosyalar).
  3. İstendiğinde, Samba’da oluşturduğunuz kullanıcı adı ve parolayı girin.
  4. “Ağ sürücüsü eşle” seçeneğini kullanarak bu paylaşımı kalıcı bir sürücü harfi olarak da bağlayabilirsiniz.

macOS’tan Erişim:

  1. Finder’ı açın.
  2. Menü çubuğundan Git > Sunucuya Bağlan... (Go > Connect to Server…) seçeneğini tıklayın.
  3. Açılan pencereye smb://SunucuIPAdresi/OrtakDosyalar yazın (örneğin, smb://192.168.1.100/OrtakDosyalar).
  4. İstendiğinde, Samba kullanıcı adı ve parolanızı girin.

Linux’tan Erişim:

Linux sistemlerden Samba paylaşımına erişmek için smbclient komutunu kullanabilir veya paylaşımı yerel bir dizine bağlayabilirsiniz.

smbclient ile test etme:

smbclient -L //SunucuIPAdresi -U ahmet

Bu komut, sunucudaki tüm paylaşımları listeler. Paylaşıma bağlanmak için:

smbclient //SunucuIPAdresi/OrtakDosyalar -U ahmet

Parolanızı girerek Samba kabuğuna düşeceksiniz ve dosyaları listeleyebilir, indirebilir veya yükleyebilirsiniz.

Paylaşımı yerel bir dizine bağlama:

Samba paylaşımını kalıcı olarak bağlamak için cifs-utils paketine ihtiyacınız olabilir:

sudo apt install cifs-utils -y

Bir bağlama noktası oluşturun:

sudo mkdir /mnt/samba

Paylaşımı bağlayın:

sudo mount -t cifs //SunucuIPAdresi/OrtakDosyalar /mnt/samba -o username=ahmet,password=samba_sifresi,uid=1000,gid=1000,iocharset=utf8

uid ve gid değerleri, bağlayan kullanıcının yerel sistemdeki UID ve GID’sine karşılık gelir (genellikle id -u ve id -g ile bulunabilir).

Kalıcı bağlama için /etc/fstab dosyasına bir giriş ekleyebilirsiniz (parolayı doğrudan dosyaya yazmak yerine kimlik bilgileri dosyasını kullanmak daha güvenlidir):

//SunucuIPAdresi/OrtakDosyalar /mnt/samba cifs credentials=/home/kullaniciadi/.smbcredentials,uid=1000,gid=1000,iocharset=utf8 0 0

.smbcredentials dosyası şu içeriğe sahip olmalıdır:

username=ahmet
password=samba_sifresi

Bu dosyanın izinlerini sadece sahibinin okuyabileceği şekilde ayarlayın: chmod 600 /home/kullaniciadi/.smbcredentials.

Temel Sorun Giderme:

  • testparm Hatası: smb.conf dosyasında sözdizimsel bir hata olup olmadığını kontrol edin.
  • Servis Çalışmıyor: sudo service smbd status ve sudo service nmbd status komutlarıyla Samba servislerinin çalıştığından emin olun. Gerekirse restart komutunu kullanın.
  • Erişim Sorunları:
    • Güvenlik duvarı (UFW) ayarlarını kontrol edin.
    • Samba kullanıcısının doğru oluşturulduğundan ve smbpasswd ile parolasının ayarlandığından emin olun.
    • Linux dosya sistemi izinlerini (/srv/samba/ortak_dosyalar) ve Samba paylaşım izinlerini (smb.conf içindeki valid users, writable vb.) kontrol edin.
    • Kullanıcının samba_users grubuna eklendiğinden emin olun.
  • Ağ Bağlantısı: Sunucuya ping atarak veya başka bir ağ hizmetiyle (SSH gibi) bağlanarak temel ağ bağlantısını kontrol edin.

Sonuç

Bu rehber, Ubuntu 16.04 üzerinde küçük bir kuruluş için temel bir Samba dosya paylaşımı kurma sürecini detaylı bir şekilde açıklamaktadır. Merkezi dosya depolama, kullanıcı tabanlı erişim kontrolü ve farklı işletim sistemlerinden erişilebilirlik sayesinde, Samba işbirliğini ve veri yönetimini önemli ölçüde kolaylaştırabilir. Kurulumdan sonra düzenli yedekleme yapmayı ve sistem güvenliği güncellemelerini takip etmeyi unutmayın.

Sıkça Sorulan Sorular (SSS)

S1: Samba parolası neden Linux parolasından farklı olabilir?
C1: Samba, kendi kimlik doğrulama veritabanını kullanır. Bu, Linux kullanıcı hesaplarından bağımsızdır. Bu ayrım, Samba paylaşımlarına erişim için farklı güvenlik politikaları uygulamanıza olanak tanır. Kullanıcıların kolaylığı için genellikle aynı parola kullanılması tavsiye edilse de, teknik olarak farklı olabilirler.

S2: Misafir (Guest) erişimi nasıl ayarlanır?
C2: Misafir erişimi, kullanıcı adı ve parola gerektirmeden paylaşıma erişim sağlar. Bunu etkinleştirmek için smb.conf dosyasında ilgili paylaşım altına guest ok = yes ekleyebilir ve valid users satırını kaldırabilirsiniz. Ancak güvenlik nedeniyle küçük kuruluşlarda misafir erişimi genellikle önerilmez.

S3: Belirli IP adreslerinden veya ağlardan erişimi nasıl kısıtlayabilirim?
C3: smb.conf dosyasındaki [global] bölümüne hosts allow = 192.168.1. 127.0.0.1 (belirli ağ veya IP adresleri) ve hosts deny = ALL (diğer tüm erişimleri engelle) ekleyebilirsiniz. Bu, sadece izin verilen IP’lerden erişime izin verir.

S4: Samba performansı nasıl artırılır?
C4: Performans için birkaç ipucu:

  • Hızlı diskler (SSD) kullanın.
  • Ağ bağlantınızın hızlı ve stabil olduğundan emin olun (Gigabit Ethernet önerilir).
  • Samba yapılandırmasında socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 gibi optimizasyonları deneyebilirsiniz, ancak bu ayarlar sisteminize göre değişiklik gösterebilir ve dikkatli kullanılmalıdır.
  • Sunucunun yeterli RAM ve CPU kaynaklarına sahip olduğundan emin olun.

S5: Ubuntu 16.04 yerine daha yeni bir Ubuntu sürümü kullanmalı mıyım?
C5: Kesinlikle evet. Ubuntu 16.04’ün resmi desteği sona ermiştir, bu da güvenlik güncellemeleri almadığı anlamına gelir. Bu durum, sunucunuzu ciddi güvenlik açıklarına karşı savunmasız bırakır. Mümkün olan en kısa sürede Ubuntu’nun desteklenen güncel bir LTS (Long Term Support) sürümüne (örneğin, 20.04 veya 22.04) yükseltmeniz şiddetle tavsiye edilir.

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.