I sistemi Windows e Linux sono strutturati in modo diverso e spesso, una coesistenza pacifica tra i due è una sfida. Grazie a Samba, i due sistemi possono condividere file e cartelle in rete. Allora cos’è Samba? Samba è un protocollo gratuito e open source che consente di condividere i file su entrambi i sistemi in modo semplice e senza interruzioni. Puoi avere un server Samba su un server Linux che ospita vari file e cartelle a cui possono accedere i client Windows. In questo tutorial imparerai come installare e configurare l’ultima versione di Samba su CentOS 8. Imparerai anche come condividere una cartella dal sistema CentOS 8 al sistema Windows usando Samba.
Installare samba e i pacchetti necessari
Accedi al tuo server con l’utente “root” o comunque con privilegi di root ed esegui il comando seguente per installare Samba e le sue dipendenze.
# dnf install samba samba-common samba-client
Dobbiamo anche garantire che il sistema Windows e Linux siano nello stesso gruppo di lavoro. Quindi, vai sul tuo PC Windows e avvia il Prompt dei comandi. Digita il comando:
net config workstation
Dall’output, possiamo vedere nella riga “Dominio della workstation” il nome del gruppo di lavoro che di default è “WORKGROUP”, che verrà anche configurato in seguito sulla macchina Linux.
Configurare Samba
Dopo aver installato Samba, è il momento di effettuare alcune configurazioni. Ma prima di farlo, dobbiamo eseguire il backup del file di configurazione di Samba. Quindi, esegui il comando seguente:
# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Successivamente, creeremo una cartella condivisa denominata “cartella_condivisa” e assegneremo le autorizzazioni e la proprietà necessarie, impostando i valori appropriati booleano e contesto di sicurezza per SELinux con i comandi seguenti:
# mkdir -p /server/cartella_condivisa
# chmod -R 0755 /server/cartella_condivisa
# chown -R nobody:nobody /server/cartella_condivisa
# setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
# semanage fcontext -a -t samba_share_t “/server/cartella_condivisa(/.*)?”
# restorecon /server/cartella_condivisa
Consentire il servizio samba sul firewall
# firewall-cmd –add-service=samba –zone=public –permanent
# firewall-cmd –reload
Ora creiamo un nuovo file di configurazione di Samba:
# vi /etc/samba/smb.conf
Creazione di condivisioni accessibili a tutti in Samba
Aggiungi la configurazione seguente per una cartella condivisa a tutti senza dover immettere credenziali:
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos-server-8
security = user
map to guest = bad user
dns proxy = no
[Nome_condivisione]
path = /server/cartella_condivisa
browsable =yes
writable = yes
guest ok = yes
read only = no
Salvare e chiudere il file di configurazione. Per verificare che la configurazione sia corretta, eseguire il comando testparm:
# testparm
Successivamente, consenti a Samba di attraversare il firewall in modo che gli utenti esterni possano accedere alle condivisioni di samba:
Avvia e abilita i servizi Samba
Infine, avvia e abilita i servizi Samba & nmb
# systemctl start smb
# systemctl enable smb
Quindi verificare se il servizio smb è in esecuzione:
# systemctl status smb
Allo stesso modo verificare se il servizio nmb è in esecuzione proprio come abbiamo fatto con il servizio smb:
# systemctl status nmb
Creazione di condivisioni protette da credenziali in Samba
La condivisione di file che abbiamo appena creato è accessibile a tutti e qualsiasi utente può creare ed eliminare file. Ciò rappresenta una sfida se si desidera condividere documenti critici in quanto possono essere sovrascritti o eliminati. Per questo motivo, è necessario creare una condivisione file sicura per affrontare questa sfida.
Innanzitutto, creeremo un nuovo gruppo (nome_gruppo) per gli utenti di samba con il comando seguente:
# groupadd nome_gruppo
Quindi aggiungeremo un nuovo utente (utente) al gruppo appena creato con questo comando:
# useradd -g nome_gruppo utente
Successivamente, creeremo una nuova cartella protetta denominata “cartella_protetta“ e successivamente assegneremo le autorizzazioni e la proprietà dei file necessarie, con i comandi seguenti:
# mkdir -p /server/cartella_protetta
# chmod -R 0770 /server/cartella_protetta
# chcon -t samba_share -p /server/cartella_protetta
# chown -R root:nome_gruppo /server/cartella_protetta
Successivamente, assegneremo all’utente samba (utente) una password che verrà utilizzata durante l’accesso alla condivisione file protetta. Questo ti chiederà di fornire una password SMP e successivamente confermarla:
# smbpasswd -a utente
Ora torniamo al file di configurazione di Samba:
# vi /etc/samba/smb.conf
Aggiungi le righe di configurazione mostrate di seguito:
[Nome_condivisione]
path = /server/cartella_protetta
valid users = @nome_gruppo
guest ok = no
writable = yes
browsable = yes
Salvare e chiudere il file di configurazione. Per verificare che la configurazione sia corretta, eseguire il comando testparm:
# testparm
Riavvia il servizio Samba:
# systemctl restart samba