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.
- 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.
- Configurazione del controller di dominio Active Directory Samba4 - Parte da 1 a 14
- Come montare/smontare filesystem locali e di rete (Samba e NFS) in Linux
- Utilizzo degli ACL (elenchi di controllo degli accessi) e montaggio di condivisioni Samba/NFS
- 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.