Condividere file e cartelle su UBUNTU con SAMBA || Setting tramite GUI
Sommario:
- Prerequisiti
- Configurare il server NFS
- Installazione del server NFS
- Creazione dei file system
- Esportazione dei file system
- Configurazione del firewall
- Configurare i client NFS
- Installazione del client NFS
- Montaggio dei file system
- Test dell'accesso NFS
- Smontaggio del file system NFS
- Conclusione
Network File System (NFS) è un protocollo di file system distribuito che consente di condividere directory remote su una rete. Con NFS, è possibile montare directory remote sul proprio sistema e lavorare con i file sul computer remoto come se fossero file locali.
Il protocollo NFS non è crittografato per impostazione predefinita e, diversamente da Samba, non fornisce l'autenticazione dell'utente. L'accesso al server è limitato dagli indirizzi IP o dai nomi host dei client.
In questo tutorial, vedremo come impostare un server NFSv4 su Ubuntu 18.04. Ti mostreremo anche come montare un file system NFS sul client.
Prerequisiti
Questo esempio presuppone che tu abbia un server con Ubuntu 18.04 e un altro con qualsiasi altra distribuzione Linux. Il server e i client dovrebbero essere in grado di comunicare tra loro su una rete privata. Se il tuo provider di hosting non offre indirizzi IP privati, puoi utilizzare gli indirizzi IP pubblici e configurare il firewall del server per consentire il traffico sulla porta
2049
solo da fonti attendibili.
Le macchine in questo esempio hanno i seguenti IP:
NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range
Configurare il server NFS
Inizieremo installando e configurando il server NFS.
Installazione del server NFS
Aggiorna l'indice dei pacchetti e installa il pacchetto del server NFS:
sudo apt update
sudo apt install nfs-kernel-server
Una volta completata l'installazione, i servizi NFS verranno avviati automaticamente.
Per impostazione predefinita, su Ubuntu 18.04 NFS versione 2 è disabilitato. Le versioni 3 e 4 sono abilitate. Puoi verificarlo eseguendo il seguente comando
cat
:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
NFSv2 è piuttosto vecchio ora e non c'è motivo di abilitarlo.
Le opzioni di configurazione del server NFS sono impostate nei
/etc/default/nfs-kernel-server
e
/etc/default/nfs-common
. Le impostazioni predefinite sono sufficienti nel nostro caso.
Creazione dei file system
Quando si configura un server NFSv4, è buona norma utilizzare una directory radice NFS globale e associare il mount delle directory effettive al punto di mount della condivisione. In questo esempio, useremo il regista
/srv/nfs4
come root NFS.
Condivideremo due directory (
/var/www
e
/opt/backups
), con impostazioni di configurazione diverse, per spiegare meglio come è possibile configurare i montaggi NFS.
/var/www/
è di proprietà dell'utente e il gruppo
www-data
e
/opt/backups
è di proprietà di
root
.
Crea il filesystem di esportazione usando il comando
mkdir
:
sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www
Montare le directory effettive:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
Per rendere permanenti i montaggi di bind, aprire il
/etc/fstab
:
sudo nano /etc/fstab
e aggiungi le seguenti righe:
/ Etc / fstab
/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0
Esportazione dei file system
Il passaggio successivo consiste nel definire i file system che verranno esportati dal server NFS, le opzioni di condivisione e i client a cui è consentito accedere a tali file system. Per fare ciò, apri il
/etc/exports
:
sudo nano /etc/exports
Il
/etc/exports
contiene anche commenti che descrivono come esportare una directory.
Nel nostro caso dobbiamo esportare le directory
www
e
backups
e consentire l'accesso solo dai client sulla rete
192.168.33.0/24
:
/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)
La prima riga contiene
fsid=0
che definisce la directory radice NFS
/srv/nfs
. L'accesso a questo volume NFS è consentito solo ai client dalla sottorete
192.168.33.0/24
. L'opzione
crossmnt
è necessaria per condividere directory che sono sottodirectory di una directory esportata.
Nella seconda riga mostra come specificare più regole di esportazione per un filesystem. Esporta la
/srv/nfs4/backups
e consente solo l'accesso in lettura all'intero intervallo
192.168.33.0/24
e l'accesso in lettura e scrittura a
192.168.33.3
. L'opzione di
sync
dice a NFS di scrivere le modifiche sul disco prima di rispondere.
L'ultima riga dovrebbe essere autoesplicativa. Per ulteriori informazioni su tutte le opzioni disponibili, digitare
man exports
nel terminale.
Salvare il file ed esportare le condivisioni:
sudo exportfs -ra
È necessario eseguire il comando sopra ogni volta che si modifica il
/etc/exports
. In caso di errori o avvisi, verranno visualizzati sul terminale.
Per visualizzare le esportazioni attive correnti e il loro stato, utilizzare:
sudo exportfs -v
L'output includerà tutte le condivisioni con le loro opzioni. Come puoi vedere ci sono anche opzioni che non abbiamo definito nel
/etc/exports
. Queste sono opzioni predefinite e se si desidera modificarle, è necessario impostare esplicitamente tali opzioni.
/srv/nfs4/backups 192.168.33.3(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)
Su Ubuntu,
root_squash
è abilitato per impostazione predefinita. Questa è una delle opzioni più importanti per quanto riguarda la sicurezza NFS. Impedisce agli utenti root connessi dai client di disporre dei privilegi di root sulle condivisioni montate.
nogroup
UID
root e
GID
su
nobody
/
nogroup
UID
/
GID
.
Affinché gli utenti sui computer client abbiano accesso, NFS prevede che gli ID utente e gruppo del client corrispondano a quelli sul server. Un'altra opzione è quella di utilizzare la funzione idmapping NFSv4 che traduce gli ID utente e gruppo in nomi e viceversa.
Questo è tutto. A questo punto, hai impostato un server NFS sul tuo server Ubuntu. È ora possibile passare al passaggio successivo e configurare i client e connettersi al server NFS.
Configurazione del firewall
Supponendo che si stia utilizzando
UFW
per gestire il firewall per consentire l'accesso dalla sottorete
192.168.33.0/24
è necessario eseguire il comando seguente:
sudo ufw allow from 192.168.33.0/24 to any port nfs
Per verificare l'esecuzione della modifica:
sudo ufw status
L'output dovrebbe mostrare che il traffico sulla porta
2049
è consentito:
To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
Configurare i client NFS
Ora che il server NFS è configurato e le condivisioni vengono esportate, il passaggio successivo configura i client e monta i file system remoti.
Puoi anche montare la condivisione NFS su macchine macOS e Windows ma ci concentreremo su sistemi Linux.
Installazione del client NFS
Sui computer client è necessario installare solo gli strumenti necessari per montare un file system NFS remoto.
-
Installa il client NFS su Debian e Ubuntu
Il nome del pacchetto che include programmi per montare file system NFS su distribuzioni basate su Debian è
nfs-common
. Per installarlo eseguire:sudo apt update
sudo apt install nfs-common
Installa il client NFS su CentOS e Fedora
Su Red Hat e i suoi derivati installare il pacchetto
nfs-utils
:sudo yum install nfs-utils
Montaggio dei file system
Lavoreremo sul computer client con IP
192.168.33.110
che ha accesso in lettura e scrittura al file system
/srv/nfs4/www
e l'accesso in sola lettura al file system
/srv/nfs4/backups
.
Creare due nuove directory per i punti di montaggio. È possibile creare queste directory in qualsiasi posizione desiderata.
sudo mkdir -p /backups
sudo mkdir -p /srv/www
Montare i file system esportati con il comando
mount
:
sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www
Dove
192.168.33.10
è l'IP del server NFS. È inoltre possibile utilizzare il nome host anziché l'indirizzo IP ma deve essere risolvibile dal computer client. Questo di solito viene fatto mappando il nome host sull'IP nel
/etc/hosts
.
Quando si monta un filesystem NFSv4, è necessario accedere alla directory radice NFS, quindi invece di
/srv/nfs4/backups
è necessario utilizzare
/backups
.
Verificare che i file system remoti siano montati correttamente utilizzando il comando mount o
df
:
df -h
Il comando stamperà tutti i file system montati. Le ultime due righe sono le condivisioni montate:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www
Per rendere permanenti i montaggi al riavvio, aprire il
/etc/fstab
:
sudo nano /etc/fstab
e aggiungi le seguenti righe:
/ Etc / fstab
192.168.33.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0
Per trovare maggiori informazioni sulle opzioni disponibili quando si monta un file system NFS, digitare
man nfs
nel proprio terminale.
Un'altra opzione per montare i file system remoti è utilizzare lo strumento
autofs
o creare un'unità systemd.
Test dell'accesso NFS
Testiamo l'accesso alle condivisioni creando un nuovo file per ognuna di esse.
Innanzitutto, prova a creare un file di test nella directory
/backups
usando il comando
touch
:
sudo touch /backups/test.txt
Il file system
/backup
viene esportato in sola lettura e, come previsto, verrà visualizzato un messaggio di errore
Permission denied
:
touch: cannot touch '/backups/test': Permission denied
Quindi, prova a creare un file di test nella
/srv/www
come root usando il comando
sudo
:
sudo touch /srv/www/test.txt
Ancora una volta, verrà visualizzato il messaggio
Permission denied
.
touch: cannot touch '/srv/www': Permission denied
Supponendo che tu abbia un utilizzo dei
www-data
sul computer client con lo stesso
UID
e
GID
del server remoto (che dovrebbe essere il caso, ad esempio, se hai installato nginx su entrambi i computer) puoi testare per creare un file come utente
www-data
con:
sudo -u www-data touch /srv/www/test.txt
Il comando non mostrerà alcun output, il che significa che il file è stato creato correttamente.
Per verificarlo, elenca i file nella
/srv/www
:
ls -la /srv/www
L'output dovrebbe mostrare il file appena creato:
drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Jun 23 22:18 test.txt
Smontaggio del file system NFS
sudo umount /backups
Se il punto di montaggio è definito nel
/etc/fstab
, assicurarsi di rimuovere la riga o di commentarla aggiungendo
#
all'inizio della riga.
Conclusione
In questo tutorial, ti abbiamo mostrato come impostare un server NFS e come montare i file system remoti sui computer client. Se stai implementando NFS in produzione e condividendo dati sensibili, è una buona idea abilitare l'autenticazione Kerberos.
In alternativa a NFS, è possibile utilizzare SSHFS per montare directory remote su una connessione SSH. SSHFS è crittografato per impostazione predefinita e molto più facile da configurare e utilizzare.
Sentiti libero di lasciare un commento in caso di domande.
ubuntu nfs mount terminalCome installare e configurare un server nfs su centos 8
In questo tutorial, seguirai i passaggi necessari per configurare un server NFSv4 su CentOS 8. Ti mostreremo anche come montare un file system NFS sul client.
Come installare e configurare redis su Ubuntu 18.04
Redis è un archivio di strutture di dati in memoria open source. Può essere usato come database, cache e broker di messaggi e supporta varie strutture di dati come stringhe, hash, liste, set, ecc. Questo tutorial descrive come installare e configurare Redis su un server Ubuntu 18.04.
Come installare e configurare nagios su Ubuntu 18.04
Nagios è uno dei più popolari sistemi di monitoraggio open source. Nagios mantiene un inventario dell'intera infrastruttura IT e garantisce che reti, server, applicazioni, servizi e processi siano attivi e funzionanti.