Ricerca nel sito web

Come installare Samba su Ubuntu per la condivisione di file su Windows


Samba è un software gratuito/open source e comunemente utilizzato per la condivisione di file e servizi di stampa tra sistemi simili a Unix, inclusi host Linux e Windows sulla stessa rete.

In questa guida mostreremo come configurare Samba4 per la condivisione di file di base tra sistemi Ubuntu e macchine Windows. Tratteremo due possibili scenari: anonimo (non sicuro) e condivisione sicura di file.

Lettura consigliata: Come installare Samba4 su CentOS/RHEL 7 per la condivisione di file su Windows

Si noti che a partire dalla versione 4.0, Samba può essere utilizzato come controller di dominio (DC) di Active Directory (AD). Abbiamo organizzato una serie speciale per la configurazione del controller di dominio Active Directory Samba4, che comprende argomenti chiave su Ubuntu, CentOS e Windows.

  1. Configurazione del controller di dominio Active Directory Samba4

Installa e configura Samba in Ubuntu

Il server Samba è disponibile per l'installazione dai repository Ubuntu predefiniti utilizzando lo strumento di gestione pacchetti apt come mostrato.

sudo apt install samba samba-common python-dnspython

Una volta installato il server Samba, ora è il momento di configurare il server Samba come: anonimo non sicuro e condivisione file sicura.

Per questo, dobbiamo modificare il file di configurazione principale di Samba /etc/samba/smb.conf (che spiega varie direttive di configurazione).

Per prima cosa esegui il backup del file di configurazione originale di samba come segue.

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

Successivamente, procederemo a configurare samba per i servizi anonimi e di condivisione file sicura come spiegato di seguito.

Importante: prima di procedere oltre, assicurati che la macchina Windows si trovi nello stesso gruppo di lavoro che verrà configurato sul server Ubuntu.

Controlla le impostazioni del gruppo di lavoro della macchina Windows

Accedi al tuo computer Windows, fai clic con il pulsante destro del mouse su "Questo PC " o "Risorse del computer " Proprietà Impostazioni di sistema avanzate Nome computer per verificare il gruppo di lavoro.

In alternativa, apri il prompt dei comandi e visualizzalo eseguendo il comando seguente e cerca "dominio della workstation".

>net config workstation

Una volta che conosci il tuo gruppo di lavoro Windows, è tempo di andare avanti e configurare il server Samba per la condivisione di file.

Condivisione di file Samba anonima

Per prima cosa inizia creando una directory Samba condivisa in cui verranno archiviati i file.

sudo mkdir -p /srv/samba/anonymous_shares

Quindi impostare le autorizzazioni appropriate sulla directory.

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

Ora apri il file di configurazione.

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

Successivamente modificare o modificare le impostazioni della direttiva come descritto di seguito.

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

Ora verifica le impostazioni attuali di Samba eseguendo il comando seguente.

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

Quindi riavviare i servizi Samba per rendere effettive le modifiche di cui sopra.

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

Testare la condivisione anonima di file Samba

Vai al computer Windows e apri "Rete" da una finestra di Esplora risorse. Fare clic sull'host Ubuntu (TECMINT nel nostro caso), oppure provare ad accedere al server Samba utilizzando il suo indirizzo IP.

\2.168.43.168

Nota: utilizza il comando ifconfig per ottenere l'indirizzo IP del tuo server Ubuntu.

Quindi apri la directory Anonima e prova ad aggiungere file da condividere con altri utenti.

Condivisione sicura dei file Samba

Per proteggere con password una condivisione Samba, devi creare un gruppo “smbgrp” e impostare una password per ciascun utente. In questo esempio utilizzo aaronkilik come utente e password come "tecmint".

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

Nota: la modalità di sicurezza samba: security=user richiede ai client di inserire un nome utente e una password per connettersi alle condivisioni.

Gli account utente Samba sono separati dagli account di sistema, tuttavia, puoi facoltativamente installare il pacchetto libpam-winbind che viene utilizzato per sincronizzare gli utenti e le password del sistema con il database degli utenti Samba.

sudo apt install libpam-winbind

Quindi crea la directory sicura in cui verranno conservati i file condivisi.

sudo mkdir -p /srv/samba/secure_shares

Successivamente, imposta le autorizzazioni appropriate sulla directory.

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

Ora apri il file di configurazione.

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

Successivamente modificare o modificare le impostazioni della direttiva come descritto di seguito.

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

Proprio come prima, esegui questo comando per vedere le tue attuali impostazioni di 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

Una volta completate le configurazioni di cui sopra, riavviare i servizi Samba per applicare le modifiche.

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

Test della condivisione sicura dei file Samba

Come prima, nel computer Windows e apri "Rete" da una finestra di Esplora risorse. Fare clic sull'host Ubuntu (TECMINT nel nostro caso). Potresti ricevere l'errore riportato di seguito, altrimenti procedi al passaggio successivo.

Prova ad accedere al server utilizzando il suo indirizzo IP, ad es. \\192.168.43.168 in questo modo. Quindi inserisci le credenziali (nome utente e password) per l'utente aaronkilik e fai clic su OK.

Ora visualizzerai tutte le directory condivise, fai clic su Protetto per aprirle.

È possibile condividere in modo sicuro alcuni file con altri utenti autorizzati sulla rete trascinandoli in questa directory.

Abilita Samba nel firewall UFW in Ubuntu

Se hai il firewall UFW abilitato/attivo sul tuo sistema, devi aggiungere le regole per consentire a Samba di passare attraverso il firewall.

Per testarlo, abbiamo utilizzato lo schema di rete 192.168.43.0. Esegui i comandi seguenti specificando il tuo indirizzo di rete.

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

Puoi anche consultare questi utili articoli riguardanti la condivisione di file Samba su una rete.

  1. Configurazione del controller di dominio Active Directory Samba4 - Parte da 1 a 14
  2. Come montare/smontare filesystem locali e di rete (Samba e NFS) in Linux
  3. Utilizzo degli ACL (elenchi di controllo degli accessi) e montaggio di condivisioni Samba/NFS
  4. Come risolvere la vulnerabilità SambaCry (CVE-2017-7494) nei sistemi Linux

È tutto! In questa guida ti abbiamo mostrato come configurare Samba4 per la condivisione di file anonima e sicura tra macchine Ubuntu e Windows. Utilizza il modulo di feedback qui sotto per condividere eventuali pensieri con noi.