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 modeveforce directory mode: Yeni oluşturulan dosya ve dizinlerin varsayılan izinlerini belirler. Bu ayarlar,chmodile 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 = yesile aynı anlama gelir.valid users = @samba_users: Paylaşıma sadecesamba_usersgrubunun ü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 olaraksamba_usersgrubuna ait olmasını sağlar. Bu, grup içi işbirliği için önemlidir.create maskvedirectory 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:
- Dosya Gezgini’ni açın.
- Adres çubuğuna
\\SunucuIPAdresi\OrtakDosyalaryazın (örneğin,\\192.168.1.100\OrtakDosyalar). - İstendiğinde, Samba’da oluşturduğunuz kullanıcı adı ve parolayı girin.
- “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:
- Finder’ı açın.
- Menü çubuğundan
Git > Sunucuya Bağlan...(Go > Connect to Server…) seçeneğini tıklayın. - Açılan pencereye
smb://SunucuIPAdresi/OrtakDosyalaryazın (örneğin,smb://192.168.1.100/OrtakDosyalar). - İ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:
testparmHatası:smb.confdosyasında sözdizimsel bir hata olup olmadığını kontrol edin.- Servis Çalışmıyor:
sudo service smbd statusvesudo service nmbd statuskomutlarıyla Samba servislerinin çalıştığından emin olun. Gerekirserestartkomutunu 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
smbpasswdile parolasının ayarlandığından emin olun. - Linux dosya sistemi izinlerini (
/srv/samba/ortak_dosyalar) ve Samba paylaşım izinlerini (smb.confiçindekivalid users,writablevb.) kontrol edin. - Kullanıcının
samba_usersgrubuna 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=8192gibi 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.
