Windows'ta Dosya Paylaşımı için Ubuntu'ya Samba Nasıl Kurulur


Samba, aynı ağdaki Linux ve Windows ana bilgisayarları da dahil olmak üzere Unix benzeri sistemler arasında dosya ve yazdırma hizmetlerini paylaşmak için kullanılan ücretsiz/açık kaynaklı ve popüler bir yazılımdır.

Bu kılavuzda, Ubuntu sistemleri ve Windows makineleri arasında temel dosya paylaşımı için Samba4'ün nasıl kurulacağını göstereceğiz. İki olası senaryoyu ele alacağız: anonim (güvenli olmayan) ve güvenli dosya paylaşımı.

Önerilen Okuma: Windows'ta Dosya Paylaşımı için Samba4'ü CentOS/RHEL 7'ye Yükleme

Sürüm 4.0'dan itibaren Samba'nın Active Directory (AD) etki alanı denetleyicisi (DC) olarak kullanılabileceğini unutmayın. Samba4 Active Directory Etki Alanı Denetleyicisi kurulumuna yönelik Ubuntu, CentOS ve Windows kapsamındaki önemli konulardan oluşan özel bir seri düzenledik.

  1. Samba4 Active Directory Etki Alanı Denetleyicisini Ayarlama

Ubuntu'da Samba'yı Kurun ve Yapılandırın

Samba sunucusu, gösterildiği gibi apt paket yöneticisi aracını kullanarak varsayılan Ubuntu depolarından kurulabilir.

sudo apt install samba samba-common python-dnspython

Samba sunucusu kurulduktan sonra, şimdi samba sunucusunu şu şekilde yapılandırmanın zamanı geldi: güvenli olmayan anonim ve güvenli dosya paylaşımı.

Bunun için ana Samba konfigürasyon dosyasını /etc/samba/smb.conf (çeşitli konfigürasyon direktiflerini açıklayan) düzenlememiz gerekir.

Öncelikle orijinal samba yapılandırma dosyasını aşağıdaki gibi yedekleyin.

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

Daha sonra, aşağıda açıklandığı gibi anonim ve güvenli dosya paylaşımı hizmetleri için sambayı yapılandırmaya devam edeceğiz.

Önemli: Daha ileri gitmeden önce, Windows makinesinin Ubuntu sunucusunda yapılandırılacak olan çalışma grubunda olduğundan emin olun.

Windows Makine Çalışma Grubu Ayarlarını Kontrol Edin

Windows makinenizde oturum açın, “Bu Bilgisayar” veya “Bilgisayarım”a sağ tıklayın Özellikler Gelişmiş Sistem Ayarları Çalışma grubunu doğrulamak için Bilgisayar Adı.

Alternatif olarak, komut istemini açın ve aşağıdaki komutu çalıştırarak görüntüleyin ve "iş istasyonu etki alanı" ifadesini arayın.

>net config workstation

Windows çalışma grubunuzu öğrendikten sonra, ilerlemenin ve samba sunucusunu dosya paylaşımı için yapılandırmanın zamanı geldi.

Anonim Samba Dosya Paylaşımı

Öncelikle dosyaların saklanacağı paylaşılan bir samba dizini oluşturarak başlayın.

sudo mkdir -p /srv/samba/anonymous_shares

Daha sonra dizinde uygun izinleri ayarlayın.

sudo chmod -R 0775 /srv/samba/anonymous_shares
sudo chown -R nobody:nogroup /srv/samba/anonymous_shares

Şimdi yapılandırma dosyasını açın.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Daha sonra direktif ayarlarını aşağıda açıklandığı gibi düzenleyin veya değiştirin.

global]
	workgroup = WORKGROUP
	netbios name = ubuntu
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

Şimdi aşağıdaki komutu çalıştırarak mevcut samba ayarlarını doğrulayın.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb

[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes

Ardından yukarıdaki değişiklikleri gerçekleştirmek için Samba hizmetlerini yeniden başlatın.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Anonim Samba Dosya Paylaşımını Test Etme

Windows makinesine gidin ve Windows Gezgini penceresinden " " öğesini açın. Ubuntu ana bilgisayarına tıklayın (bizim durumumuz için TECMINT) veya samba sunucusuna IP adresini kullanarak erişmeyi deneyin.

\2.168.43.168

Not: Ubuntu sunucunuzun IP adresini almak için ifconfig komutunu kullanın.

Ardından Anonim dizinini açın ve diğer kullanıcılarla paylaşmak üzere dosyaları buraya eklemeyi deneyin.

Güvenli Samba Dosya Paylaşımı

Bir samba paylaşımını parolayla korumak için bir “smbgrp” grubu oluşturmanız ve her kullanıcı için bir parola ayarlamanız gerekir. Bu örnekte kullanıcı olarak aaronkilik'i ve “tecmint” olarak şifreyi kullanıyorum.

sudo addgroup smbgrp
sudo usermod aaronkilik -aG smbgrp
sudo smbpasswd -a aaronkilik

Not: Samba güvenlik modu: güvenlik=kullanıcı, istemcilerin paylaşımlara bağlanmak için bir kullanıcı adı ve şifre girmesini gerektirir.

Samba kullanıcı hesapları sistem hesaplarından ayrıdır ancak isteğe bağlı olarak sistem kullanıcılarını ve şifrelerini samba kullanıcı veritabanıyla senkronize etmek için kullanılan libpam-winbind paketini yükleyebilirsiniz.

sudo apt install libpam-winbind

Daha sonra paylaşılan dosyaların saklanacağı güvenli dizini oluşturun.

sudo mkdir -p /srv/samba/secure_shares

Daha sonra dizinde uygun izinleri ayarlayın.

sudo chmod -R 0770 /srv/samba/secure_shares
sudo chown -R root:smbgrp /srv/samba/secure_shares

Şimdi yapılandırma dosyasını açın.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Daha sonra direktif ayarlarını aşağıda açıklandığı gibi düzenleyin veya değiştirin.

[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure_shares
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

Daha önce olduğu gibi mevcut samba ayarlarınızı görmek için bu komutu çalıştırın.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure_shares
	valid users = @smbgrp
	read only = No

Yukarıdaki yapılandırmaları tamamladıktan sonra değişiklikleri uygulamak için Samba hizmetlerini yeniden başlatın.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Güvenli Samba Dosya Paylaşımını Test Etme

Daha önce olduğu gibi, Windows makinesinde bir Windows Gezgini penceresinden “” öğesini açın. Ubuntu ana bilgisayarına tıklayın (bizim durumumuz için TECMINT). Bir sonraki adıma geçmediğiniz takdirde aşağıdaki hatayı alabilirsiniz.

Sunucuya IP adresini kullanarak erişmeyi deneyin; \\192.168.43.168 bunu beğendi. Daha sonra aaronkilik kullanıcısı için kimlik bilgilerini (kullanıcı adı ve şifre) girin ve Tamam'ı tıklayın.

Artık tüm paylaşılan dizinleri görüntüleyeceksiniz, açmak için Güvenli'yi tıklayın.

Bazı dosyaları bu dizine bırakarak ağdaki diğer izin verilen kullanıcılarla güvenli bir şekilde paylaşabilirsiniz.

Ubuntu'daki UFW Güvenlik Duvarında Samba'yı etkinleştirin

Sisteminizde UFW güvenlik duvarı etkin/etkinse, Samba'nın güvenlik duvarınızdan geçmesine izin verecek kuralları eklemeniz gerekir.

Bunu test etmek için 192.168.43.0 ağ şemasını kullandık. Ağ adresinizi belirterek aşağıdaki komutları çalıştırın.

sudo ufw allow proto udp to any port 137 from 192.168.43.0/24
sudo ufw allow proto udp to any port 138 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 139 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 445 from 192.168.43.0/24

Ayrıca ağda Samba dosya paylaşımıyla ilgili bu faydalı makalelere de göz atabilirsiniz.

  1. Samba4 Active Directory Etki Alanı Denetleyicisinin Kurulumu - Bölüm 1 - 14
  2. Linux'ta Yerel ve Ağ (Samba ve NFS) Dosya Sistemlerini Bağlama/Çıkarma
  3. ACL'leri (Erişim Kontrol Listeleri) Kullanma ve Samba/NFS Paylaşımlarını Bağlama
  4. Linux Sistemlerinde SambaCry Güvenlik Açığı (CVE-2017-7494) Nasıl Düzeltilir

Bu kadar! Bu kılavuzda size Ubuntu ve Windows makineleri arasında anonim ve güvenli dosya paylaşımı için Samba4'ün nasıl kurulacağını gösterdik. Düşüncelerinizi bizimle paylaşmak için aşağıdaki geri bildirim formunu kullanın.