Cum se instalează Samba pe Ubuntu pentru partajarea fișierelor pe Windows


Samba este un software gratuit/deschis și folosit în mod popular pentru partajarea de fișiere și servicii de imprimare între sisteme similare Unix, inclusiv gazde Linux și Windows din aceeași rețea.

În acest ghid, vom arăta cum să configurați Samba4 pentru partajarea de fișiere de bază între sistemele Ubuntu și mașinile Windows. Vom acoperi două scenarii posibile: anonim (nesigur), precum și partajarea securizată a fișierelor.

Lectură recomandată: Cum se instalează Samba4 pe CentOS/RHEL 7 pentru partajarea fișierelor pe Windows

Rețineți că, începând cu versiunea 4.0, Samba poate fi utilizat ca controler de domeniu (DC) Active Directory (AD). Am organizat o serie specială pentru configurarea Samba4 Active Directory Domain Controller, care cuprinde subiecte cheie în Ubuntu, CentOS și Windows.

  1. Configurarea controlerului de domeniu Samba4 Active Directory

Instalați și configurați Samba în Ubuntu

Serverul Samba este disponibil pentru a fi instalat din depozitele implicite Ubuntu folosind instrumentul de gestionare a pachetelor apt, așa cum se arată.

sudo apt install samba samba-common python-dnspython

Odată instalat serverul samba, acum este timpul să configurați serverul samba ca: anonim nesecurizat și partajare securizată de fișiere.

Pentru aceasta, trebuie să edităm fișierul principal de configurare Samba /etc/samba/smb.conf (care explică diverse directive de configurare).

Mai întâi backup fișierul de configurare samba original, după cum urmează.

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

Ulterior, vom continua la configurarea samba pentru serviciile de anonim și de partajare securizată de fișiere, așa cum este explicat mai jos.

Important: înainte de a continua, asigurați-vă că aparatul Windows se află în același grup de lucru care va fi configurat pe serverul Ubuntu.

Verificați setările Windows Machine WorkGroup

Conectați-vă la computerul dvs. Windows, faceți clic dreapta pe „Acest PC ” sau „Computerul meu Proprietăți Setări avansate de sistem Nume computer pentru a verifica grupul de lucru.

Ca alternativă, deschideți promptul de comandă și vizualizați-l executând comanda de mai jos și căutați „domeniul stației de lucru”.

>net config workstation

Odată ce vă cunoașteți grupul de lucru Windows, este timpul să mergeți mai departe și să configurați serverul Samba pentru partajarea fișierelor.

Partajare anonimă de fișiere Samba

Începeți mai întâi prin a crea un director samba partajat unde vor fi stocate fișierele.

sudo mkdir -p /srv/samba/anonymous_shares

Apoi setați permisiunile corespunzătoare pe director.

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

Acum deschideți fișierul de configurare.

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

În continuare, editați sau modificați setările directivei așa cum este descris mai jos.

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

Acum verificați setările curente de samba rulând comanda de mai jos.

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

Apoi reporniți serviciile Samba pentru a efectua modificările de mai sus.

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

Testarea partajării anonime de fișiere Samba

Accesați computerul Windows și deschideți „Rețea ” dintr-o fereastră Windows Explorer. Faceți clic pe gazda Ubuntu (TECMINT pentru cazul nostru), sau încercați să accesați serverul samba folosind adresa sa IP.

\2.168.43.168

Notă: utilizați comanda ifconfig pentru a obține adresa IP a serverului Ubuntu.

Apoi deschideți directorul Anonim și încercați să adăugați fișiere acolo pentru a le partaja altor utilizatori.

Partajarea securizată a fișierelor Samba

Pentru a proteja cu parolă o partajare samba, trebuie să creați un grup „smbgrp” și să setați o parolă pentru fiecare utilizator. În acest exemplu, folosesc aaronkilik ca utilizator și parolă ca „tecmint“.

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

Notă: modul de securitate samba: security=user cere clienților să introducă un nume de utilizator și o parolă pentru a se conecta la partajări.

Conturile de utilizator Samba sunt separate de conturile de sistem, cu toate acestea, opțional puteți instala pachetul libpam-winbind care este folosit pentru a sincroniza utilizatorii de sistem și parolele cu baza de date a utilizatorilor samba.

sudo apt install libpam-winbind

Apoi creați directorul securizat în care vor fi păstrate fișierele partajate.

sudo mkdir -p /srv/samba/secure_shares

Apoi, setați permisiunile corespunzătoare pe director.

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

Acum deschideți fișierul de configurare.

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

În continuare, editați sau modificați setările directivei așa cum este descris mai jos.

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

La fel ca înainte, rulați această comandă pentru a vedea setările curente de samba.

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

După ce ați terminat cu configurațiile de mai sus, reporniți serviciile Samba pentru a aplica modificările.

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

Testarea partajării securizate de fișiere Samba

Ca și înainte, în computerul Windows și deschideți „Rețea ” dintr-o fereastră Windows Explorer. Faceți clic pe gazda Ubuntu (TECMINT pentru cazul nostru). Este posibil să primiți eroarea de mai jos, dacă nu treceți la pasul următor.

Încercați să accesați serverul folosind adresa sa IP, de ex. \\192.168.43.168 ca acesta. Apoi introduceți acreditările (nume de utilizator și parolă) pentru utilizatorul aaronkilik și faceți clic pe OK.

Acum veți vedea toate directoarele partajate, faceți clic pe Securizat pentru a le deschide.

Puteți partaja în siguranță unele fișiere cu alți utilizatori autorizați din rețea, plasându-le în acest director.

Activați Samba în UFW Firewall în Ubuntu

Dacă aveți firewall UFW activat/activ pe sistemul dvs., trebuie să adăugați regulile pentru a permite Samba să treacă prin firewall.

Pentru a testa acest lucru, am folosit schema de rețea 192.168.43.0. Rulați comenzile de mai jos specificând adresa de rețea.

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

De asemenea, puteți consulta aceste articole utile referitoare la partajarea fișierelor Samba într-o rețea.

  1. Configurarea controlerului de domeniu Samba4 Active Directory - Partea 1 până la 14
  2. Cum se montează/demontează sistemele de fișiere locale și de rețea (Samba și NFS) în Linux
  3. Utilizarea ACL-urilor (liste de control al accesului) și montarea partajărilor Samba/NFS
  4. Cum se remediază vulnerabilitatea SambaCry (CVE-2017-7494) în sistemele Linux

Asta e tot! În acest ghid, v-am arătat cum să configurați Samba4 pentru partajarea anonimă și sigură de fișiere între mașinile Ubuntu și Windows. Folosește formularul de feedback de mai jos pentru a ne împărtăși orice gânduri.