Ricerca nel sito web

Impostazione di Samba e configurazione di FirewallD e SELinux per consentire la condivisione di file su client Linux/Windows - Parte 6


Poiché i computer raramente funzionano come sistemi isolati, è prevedibile che, in qualità di amministratore o ingegnere di sistema, tu sappia come configurare e mantenere una rete con più tipi di server.

In questo articolo e nel prossimo di questa serie esamineremo gli elementi essenziali per configurare server Samba e NFS rispettivamente con client Windows/Linux e Linux.

Questo articolo ti tornerà sicuramente utile se ti viene chiesto di configurare file server in ambienti aziendali o aziendali in cui è probabile trovare diversi sistemi operativi e tipi di dispositivi.

Dato che puoi leggere il background e gli aspetti tecnici sia di Samba che di NFS ovunque su Internet, in questo articolo e nel prossimo andremo dritti al punto con l'argomento in questione.

Passaggio 1: installazione del server Samba

Il nostro attuale ambiente di test è costituito da due box RHEL 7 e una macchina Windows 8, in questo ordine:


1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18], 
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]

Su box1, installa i seguenti pacchetti:


yum update && yum install samba samba-client samba-common

Nella box2:


yum update && yum install samba samba-client samba-common cifs-utils

Una volta completata l'installazione, siamo pronti per configurare la nostra condivisione.

Passaggio 2: configurazione della condivisione file tramite Samba

Uno dei motivi per cui Samba è così rilevante è perché fornisce servizi di file e stampa ai client SMB/CIFS, il che fa sì che tali client vedano il server come se fosse un Sistema Windows (devo ammettere che tendo a emozionarmi un po' mentre scrivo di questo argomento dato che è stata la mia prima installazione come nuovo amministratore di sistema Linux alcuni anni fa).

Aggiunta di utenti di sistema e impostazione di autorizzazioni e proprietà

Per consentire la collaborazione di gruppo, creeremo un gruppo denominato finance con due utenti (utente1 e utente2) con il comando useradd e una directory /finanza nel box1.

Cambieremo anche il proprietario del gruppo di questa directory in finanza e imposteremo le sue autorizzazioni su 0770 (autorizzazioni di lettura, scrittura ed esecuzione per il proprietario e il proprietario del gruppo):


groupadd finance
useradd user1
useradd user2
usermod -a -G finance user1
usermod -a -G finance user2
mkdir /finance
chmod 0770 /finance
chgrp finance /finance

Passaggio 3: Configurazione di SELinux e Firewalld

In preparazione alla configurazione di /finance come condivisione Samba, dovremo disabilitare SELinux o impostare i valori booleani e del contesto di sicurezza corretti come segue (altrimenti, SELinux impedirà ai client di accedere alla condivisione):


setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/finance(/.*)?"
restorecon /finance

Inoltre, dobbiamo garantire che il traffico Samba sia consentito dal firewalld.


firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

Passaggio 4: configura la condivisione Samba

Ora è il momento di tuffarci nel file di configurazione /etc/samba/smb.conf e aggiungere la sezione per la nostra condivisione: vogliamo che i membri del gruppo finance possano per sfogliare i contenuti di /finance e salvare / creare file o sottodirectory al suo interno (che per impostazione predefinita avranno i bit di autorizzazione impostati su 0770 e finanza sarà il proprietario del gruppo):


[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance

Salvare il file e poi testarlo con l'utilità testparm. Se sono presenti errori, l'output del comando seguente indicherà cosa è necessario correggere. Altrimenti, verrà visualizzata una revisione della configurazione del server Samba:

Se desideri aggiungere un'altra condivisione aperta al pubblico (ovvero senza alcuna autenticazione), crea un'altra sezione in /etc/samba/smb.conf e sotto il nome della nuova condivisione copia la sezione sopra , cambiando solo public=no in public=yes e non includendo gli utenti validi e le direttive dell'elenco di scrittura.

Passaggio 5: aggiunta di utenti Samba

Successivamente, dovrai aggiungere utente1 e utente2 come utenti Samba. Per fare ciò, utilizzerai il comando smbpasswd, che interagisce con il database interno di Samba. Ti verrà richiesto di inserire una password che utilizzerai successivamente per connetterti alla condivisione:


smbpasswd -a user1
smbpasswd -a user2

Infine, riavvia Samba, abilita l'avvio del servizio all'avvio e assicurati che la condivisione sia effettivamente disponibile per i client di rete:


systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2

A questo punto il file server Samba è stato installato e configurato correttamente. Ora è il momento di testare questa configurazione sui nostri client RHEL 7 e Windows 8.

Passaggio 6: montare la condivisione Samba in Linux

Innanzitutto, assicurati che la condivisione Samba sia accessibile da questo client:


smbclient –L 192.168.0.18 -U user2

(ripetere il comando precedente per utente1)

Come qualsiasi altro supporto di archiviazione, puoi montare (e successivamente smontare) questa condivisione di rete quando necessario:


mount //192.168.0.18/finance /media/samba -o username=user1

(dove /media/samba è una directory esistente)

o permanentemente, aggiungendo la seguente voce nel file /etc/fstab:


//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

Dove contiene il file nascosto /media/samba/.smbcredentials (le cui autorizzazioni e proprietà sono state impostate rispettivamente su 600 e root:root) due righe che indicano nome utente e password di un account autorizzato a utilizzare la condivisione:


username=user1
password=PasswordForUser1

Infine, creiamo un file all'interno di /finance e controlliamo i permessi e la proprietà:


touch /media/samba/FileCreatedInRHELClient.txt

Come puoi vedere, il file è stato creato con le autorizzazioni 0770 e la proprietà impostata su user1:finance.

Passaggio 7: montare la condivisione Samba in Windows

Per montare la condivisione Samba in Windows, vai su Il mio PC e scegli Computer, quindi Mappa unità di rete. Successivamente, assegna una lettera all'unità da mappare e seleziona Connetti utilizzando credenziali diverse (gli screenshot seguenti sono in spagnolo, la mia lingua madre):

Infine, creiamo un file e controlliamo i permessi e la proprietà:


ls -l /finance

Questa volta il file appartiene a utente2 poiché è l'account che abbiamo utilizzato per connetterci dal client Windows.

Riepilogo

In questo articolo abbiamo spiegato non solo come configurare un server Samba e due client che utilizzano sistemi operativi diversi, ma anche come configurare firewalld e SELinux sul server per consentire le funzionalità di collaborazione di gruppo desiderate.

Ultimo, ma non meno importante, lasciatemi consigliare la lettura della pagina man online di smb.conf per esplorare altre direttive di configurazione che potrebbero essere più adatte al vostro caso rispetto allo scenario descritto in questo articolo.

Come sempre, non esitate a lasciare un commento utilizzando il modulo sottostante se avete commenti o suggerimenti.