Ricerca nel sito web

Come configurare il server Samba in RHEL, Rocky Linux e AlmaLinux


La condivisione di file è una parte essenziale dell'amministrazione del server. Consente la condivisione delle risorse attraverso la rete necessarie agli utenti per svolgere le proprie attività. Uno dei software di condivisione file più utilizzati è Samba.

Samba, una reimplementazione del popolare protocollo SMB (server message block), è un'applicazione stabile e gratuita che consente la condivisione di file e servizi di stampa attraverso una rete. Il software è installato su un server Linux centrale da cui è possibile accedere ai file condivisi sia da sistemi Linux che Windows.

In questa guida ti guideremo attraverso l'installazione di Samba Server su distribuzioni basate su RHEL come CentOS Stream, Rocky Linux e AlmaLinux.

Passaggio 1: installa Samba su Linux

Per iniziare con Samba, installa i pacchetti principali di Samba incluso il pacchetto client:

sudo dnf install samba samba-common samba-client 

Il comando installa i pacchetti specificati insieme alle dipendenze visualizzate nell'output. Al termine dell'installazione, riceverai un riepilogo di tutti i pacchetti che sono stati installati.

Passaggio 2: crea e configura le condivisioni Samba

Una volta installati tutti i pacchetti samba, il passo successivo è configurare le condivisioni samba. Una condivisione samba è semplicemente una directory che verrà condivisa tra i sistemi client nella rete.

Qui creeremo una condivisione Samba chiamata /data nel percorso della directory /srv/tecmint/.

sudo mkdir -p /srv/tecmint/data

Successivamente, assegneremo le autorizzazioni e la proprietà come segue.

sudo chmod -R 755 /srv/tecmint/data
sudo chown -R  nobody:nobody /srv/tecmint/data
sudo chcon -t samba_share_t /srv/tecmint/data

Successivamente, effettueremo alcune configurazioni nel file di configurazione smb.conf che è il file di configurazione principale di Samba. Ma prima di farlo, eseguiremo il backup del file rinominandolo con un'estensione di file diversa.

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

Successivamente, creeremo un nuovo file di configurazione.

sudo vim /etc/samba/smb.conf

Definiremo le politiche su chi può accedere alla condivisione samba aggiungendo le righe mostrate nel file di configurazione.

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = rocky-8
security = user
map to guest = bad user
dns proxy = no
ntlm auth = true



[Public]
path =  /srv/tecmint/data
browsable =yes
writable = yes
guest ok = yes
read only = no

Salvare ed uscire dal file di configurazione.

Per verificare le configurazioni effettuate eseguire il comando:

sudo testparm

Successivamente, avvia e abilita i demoni Samba come mostrato.

sudo systemctl start smb
sudo systemctl enable smb
sudo systemctl start nmb
sudo systemctl enable nmb

Assicurati di verificare che entrambi i demoni smb e nmb siano in esecuzione.

sudo systemctl status smb
sudo systemctl status nmb

Per abilitare l'accesso alla condivisione samba da sistemi Windows remoti, è necessario aprire il protocollo samba sul firewall.

sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload
sudo firewall-cmd --list-services

Passaggio 3: accesso alla condivisione Samba da Windows

Finora abbiamo installato samba e configurato la nostra condivisione samba. Ora siamo pronti per accedervi da remoto. Per eseguire questa operazione su un client Windows, premi il tasto logo Windows + R per avviare la finestra di dialogo Esegui.

Nel campo di testo fornito, inserisci l'indirizzo IP del server Samba come mostrato:

\\server-ip

Verrà visualizzata la seguente finestra denominata "Pubblica". Ricorda, questa è la directory che punta alla nostra condivisione samba nella directory /srv/tecmint/data.

Attualmente la nostra directory è vuota poiché non abbiamo creato alcun file. Quindi, torneremo al nostro terminale e creeremo alcuni file nella directory condivisa di Samba.

cd /srv/tecmint/data
sudo touch file{1..3}.txt

Ora andremo alla cartella "Pubblica" dove verranno visualizzati i file che abbiamo creato in precedenza.

Perfetto. Siamo riusciti con successo ad accedere alla nostra condivisione samba. Tuttavia, la nostra directory è accessibile a chiunque e tutti possono modificare ed eliminare file a piacimento, il che non è consigliabile soprattutto se prevedi di ospitare file sensibili.

Nel passaggio successivo, dimostreremo come creare e configurare una directory di condivisione Samba sicura.

Passaggio 4: proteggere la directory di condivisione di Samba

Per prima cosa creeremo un nuovo utente Samba.

sudo useradd smbuser

Successivamente, configureremo una password per l'utente samba. Questa è la password che verrà utilizzata durante l'autenticazione.

sudo smbpasswd -a smbuser

Successivamente, creeremo un nuovo gruppo per la nostra condivisione samba sicura e aggiungeremo il nuovo utente samba.

sudo groupadd smb_group
sudo usermod -g smb_group smbuser

Successivamente, crea ancora un'altra condivisione Samba a cui si accederà in modo sicuro. Nel nostro caso, abbiamo creato un'altra directory nello stesso percorso di

sudo mkdir -p  /srv/tecmint/private

Quindi configura i permessi dei file per la condivisione samba

sudo chmod -R 770 /srv/tecmint/private
sudo chcon -t samba_share_t /srv/tecmint/private
sudo chown -R root:smb_group /srv/tecmint/private

Ancora una volta, accedi al file di configurazione di Samba.

sudo vim /etc/samba/smb.conf

Aggiungi queste righe per definire la condivisione sicura di Samba.

[Private]
path = /srv/tecmint/private
valid users = @smb_group
guest ok = no
writable = no
browsable = yes

Salva le modifiche ed esci.

Infine, riavvia tutti i demoni samba come mostrato.

sudo systemctl restart smb
sudo systemctl restart nmb

Quando accedi al tuo server questa volta, noterai un'ulteriore cartella "Privata". Per accedere alla cartella ti verrà richiesto di autenticarti con le credenziali dell'utente Samba. Fornisci il nome utente e la password dell'utente creato nel passaggio precedente e fai clic su "OK".

Passaggio 5: accesso alla condivisione Samba dal client Linux

Per accedere alla condivisione da un client Linux, assicurarsi innanzitutto che sia installato il pacchetto client Samba.

sudo dnf install samba-client 

Quindi utilizza il comando smbclient come segue

smbclient ‘\2.168.43.121\private’ -U smbuser

E con questo si conclude questa guida sulla configurazione di Samba su RHEL, CentOS Stream, Rocky Linux e AlmaLinux. Il tuo feedback su questa guida sarà molto apprezzato.