Com instal·lar Samba a Ubuntu per compartir fitxers a Windows


Samba és un programari de codi obert i gratuït per compartir fitxers i serveis d'impressió entre sistemes semblants a Unix, inclosos els amfitrions Linux i Windows a la mateixa xarxa.

En aquesta guia, mostrarem com configurar Samba4 per compartir fitxers bàsics entre sistemes Ubuntu i màquines Windows. Cobrirem dos possibles escenaris: anònim (no segur) i compartició segura de fitxers.

Tingueu en compte que a partir de la versió 4.0, Samba es pot utilitzar com a controlador de domini (DC) d'Active Directory (AD). Hem organitzat una sèrie especial per configurar Samba4 Active Directory Domain Controller, que inclou temes clau a Ubuntu, CentOS i Windows.

  1. Configuració del controlador de domini Samba4 Active Directory

Instal·leu i configureu Samba a Ubuntu

El servidor Samba està disponible per instal·lar-lo des dels dipòsits d'Ubuntu predeterminats mitjançant l'eina de gestor de paquets apt tal com es mostra.

$ sudo apt install samba samba-common python-dnspython

Un cop instal·lat el servidor samba, ara és el moment de configurar el servidor samba com a: compartició de fitxers anònima i segura.

Per a això, hem d'editar el fitxer de configuració principal de Samba /etc/samba/smb.conf (que explica diverses directives de configuració).

Primer feu una còpia de seguretat del fitxer de configuració de samba original de la següent manera.

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

Després, procedirem a configurar samba per a serveis d'intercanvi de fitxers anònims i segurs, tal com s'explica a continuació.

Important: abans de seguir endavant, assegureu-vos que la màquina Windows es troba al mateix grup de treball que es configurarà al servidor Ubuntu.

Inicieu sessió a la vostra màquina Windows, feu clic amb el botó dret a \Aquest PC o \El meu ordinador → Propietats → Configuració avançada del sistema → Nom de l'ordinador per verificar el grup de treball.

Alternativament, obriu l'indicador d'ordres i visualitzeu-lo executant l'ordre següent i cerqueu \domini de l'estació de treball.

>net config workstation

Un cop conegueu el vostre grup de treball de Windows, és hora d'avançar i configurar el servidor samba per compartir fitxers.

Compartició anònima de fitxers de Samba

Primer comenceu creant un directori de samba compartit on s'emmagatzemaran els fitxers.

$ sudo mkdir -p /srv/samba/anonymous_shares

A continuació, configureu els permisos adequats al directori.

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

Ara obriu el fitxer de configuració.

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

A continuació, editeu o modifiqueu la configuració de la directiva tal com es descriu a continuació.

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

Ara verifiqueu la configuració actual de samba executant l'ordre següent.

$ 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

A continuació, reinicieu els serveis de Samba per efectuar els canvis anteriors.

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

Aneu a la màquina Windows i obriu \Xarxa des d'una finestra de l'Explorador de Windows. Feu clic a l'amfitrió d'Ubuntu (TECMINT per al nostre cas), o bé intenteu accedir al servidor samba mitjançant la seva adreça IP.

\2.168.43.168

Nota: utilitzeu l'ordre ifconfig per obtenir l'adreça IP del vostre servidor Ubuntu.

A continuació, obriu el directori Anonymous i proveu d'afegir-hi fitxers per compartir-los amb altres usuaris.

Compartició segura de fitxers de Samba

Per protegir amb contrasenya una compartició de samba, heu de crear un grup smbgrp i establir una contrasenya per a cada usuari. En aquest exemple faig servir aaronkilik com a usuari i contrasenya com a tecmint.

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

Nota: El mode de seguretat de samba: seguretat = usuari requereix que els clients introdueixin un nom d'usuari i una contrasenya per connectar-se als recursos compartits.

Els comptes d'usuari de Samba estan separats dels comptes del sistema, però, opcionalment, podeu instal·lar el paquet libpam-winbind que s'utilitza per sincronitzar usuaris i contrasenyes del sistema amb la base de dades d'usuaris de samba.

$ sudo apt install libpam-winbind

A continuació, creeu el directori segur on es guardaran els fitxers compartits.

$ sudo mkdir -p /srv/samba/secure_shares

A continuació, configureu els permisos adequats al directori.

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

Ara obriu el fitxer de configuració.

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

A continuació, editeu o modifiqueu la configuració de la directiva tal com es descriu a continuació.

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

Igual que abans, executeu aquesta ordre per veure la vostra configuració actual 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

Un cop hàgiu fet amb les configuracions anteriors, reinicieu els serveis de Samba per aplicar els canvis.

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

Com abans, a la màquina Windows, i obriu \Xarxa des d'una finestra de l'Explorador de Windows. Feu clic a l'amfitrió d'Ubuntu (TECMINT per al nostre cas). Podeu obtenir l'error següent, si no, aneu al pas següent.

Intenteu accedir al servidor mitjançant la seva adreça IP, p. \\192.168.43.168 com aquest. A continuació, introduïu les credencials (nom d'usuari i contrasenya) per a l'usuari aaronkilik i feu clic a D'acord.

Ara veureu tots els directoris compartits, feu clic a Segur per obrir-lo.

Podeu compartir de manera segura alguns fitxers amb altres usuaris permesos de la xarxa deixant-los anar en aquest directori.

Habiliteu Samba a UFW Firewall a Ubuntu

Si teniu el tallafoc UFW habilitat/actiu al vostre sistema, heu d'afegir les regles per permetre que Samba passi pel vostre tallafoc.

Per provar-ho, hem utilitzat l'esquema de xarxa 192.168.43.0. Executeu les ordres següents especificant la vostra adreça de xarxa.

$ 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

També podeu consultar aquests articles útils sobre l'ús compartit de fitxers Samba en una xarxa.

  1. Configuració del controlador de domini Samba4 Active Directory - Part 1 a 14
  2. Com muntar/desmuntar sistemes de fitxers locals i de xarxa (Samba i NFS) a Linux
  3. Ús d'ACL (llistes de control d'accés) i muntatge de recursos compartits de Samba/NFS
  4. Com solucionar la vulnerabilitat de SambaCry (CVE-2017-7494) als sistemes Linux

Això és tot! En aquesta guia, us vam mostrar com configurar Samba4 per compartir fitxers anònims i segurs entre màquines Ubuntu i Windows. Utilitzeu el formulari de comentaris a continuació per compartir qualsevol reflexió amb nosaltres.