Tutorial > Come creare una Intranet con Samba e OpenVPN su Ubuntu 18.04

Come creare una Intranet con Samba e OpenVPN su Ubuntu 18.04

Pubblicato il: 03 marzo 2020

Storage Ubuntu VPN

Una Intranet è una rete privata creata dalle organizzazioni per facilitare le comunicazioni e il trasferimento di dati. Ciascun utente connesso alla rete privata potrà accedere a determinati file o servizi anche da remoto. Per farlo ci si avvale di un servizio VPN che permette di creare un tunnel di collegamento sicuro e criptato tra il computer dell’utente e la rete principale dell'ufficio.

In questo tutorial imparerai a creare una Intranet, configurando un servizio di condivisione file con Samba e OpenVPN, e a gestire l'accesso alle risorse condivise, rendendolo disponibile solo agli utenti connessi tramite VPN.

Per poter procedere con l'installazione di Samba dovrai avere a disposizione un server con OpenVPN installato e configurato. Se non ne hai già uno puoi seguire prima la nostra guida Creare e configurare una VPN utilizzando OpenVPN su Ubuntu 18.04.

Per iniziare dovrai quindi connetterti al tuo server tramite una connessione SSH. Se non l’hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con il protocollo SSH. In caso di server locale puoi passare al punto successivo e aprire il terminale del tuo server.

Installazione e Configurazione di Samba

Samba è un software che permette la condivisione e l'accesso ai file fra diversi sistemi operativi connessi all'interno di uno stesso network. A differenza di altri servizi di file storage più noti, come Google Drive o Dropbox, Samba non fornisce un'interfaccia grafica e non impone vincoli sulla quantità di file che possano essere condivisi: l'unico limite sarà pertanto lo spazio libero disponibile sull'hard disk del server utilizzato.

Prima di tutto devi installare sul tuo server Samba e le relative dipendenze:

sudo apt-get install samba samba-common python-glade2 system-config-samba

Per sicurezza effettua una copia del file di configurazione, così da poter effettuare un ripristino in caso di problemi:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Dato che il servizio necessita di accedere alla rete, qualora tu abbia attivato un firewall come UFW, devi prima aggiungere Samba alle eccezioni del firewall:

sudo ufw allow samba

Crea quindi due cartelle, una accessibile da chiunque (pubblica) e una solo da utenti autorizzati (privata).

sudo mkdir -p /samba/privata
sudo mkdir -p /samba/pubblica

Configurazione di Samba

Modifica il file di configurazione di Samba per definire le regole di accesso a cartelle e file:

sudo nano /etc/samba/smb.conf

Elimina tutto il contenuto e sostituisci con la seguente configurazione:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = ubuntu
security = user
map to guest = bad user
dns proxy = no
interfaces = 10.8.0.1/8
bind interfaces only = yes

## Logging
log level = 2
log file = /var/log/samba.log.%m
max log size = 50
debug timestamp = yes

#============ Share Defenitions ==================

[pubblica]
path = /samba/pubblica/
browsable = yes
writable = yes
guest ok = yes
read only = no
force user = nobody

[privata]
path = /samba/privata/
valid users = @autorizzati
guest ok = no
writable = yes
browsable = yes

Questa configurazione delimita 3 sezioni: Global, Pubblica e Privata, ciascuna con diversi livelli di autorizzazione di accesso ai file.

  • Global: contiene i parametri di impostazioni generali per il server Samba.
    • Workgroup: gruppo di lavoro al quale il server apparirà. Di default su windows è WORKGROUP ma puoi cambiarlo se ne utilizzi uno diverso.
    • Server String & Netbios: indicano il nome del server e la sua piattaforma.
    • Security: specifica che il server è indipendente (stand-alone) avente i propri account.
    • Map to guest: Ciascun utente che non effettuerà un login corretto verrà gestito come utente guest.
    • Dns proxy: Non ci stiamo connettendo mediante DNS
    • Interfaces: L’accesso è limitato solo a coloro che si interfacceranno mediante l’IP del server della VPN.
    • Bind interfaces only = Si accettano solo richieste provenienti dall’interno della VPN
    • Log level: livello di dettaglio desiderato nel log di registro (da 1 a 10).
    • Log File: percorso e nome del file in cui salvare il log.
    • Max log size: dimensione massima del file di log.
    • Debug timestamp: Includere o meno i timestamp nel registro.
  • Pubblica: è il livello di accesso alle cartelle da parte di tutti gli utenti.
    • Path: percorso della cartella alla quale si farà accesso.
    • Browsable & Writable: Possibilità di poter navigare tra le cartelle, visualizzarne e modificarne il contenuto.
    • Guest ok: Permettere l’accesso alla cartella anche ad utenti che non hanno un account registrato.
    • Read only: Indicare se di voglia consentire l’accesso in sola lettura.
    • Force user: Identità assunta dagli utenti guest.
  • Privata: contiene le regole di accesso per i membri appartenenti al gruppo “autorizzati”
    • Path: Percorso della cartella alla quale si farà accesso
    • Valid users: Sarà consentito l’accesso ai soli membri aggiunti al gruppo “autorizzati”
    • Guest ok: Permettere l’accesso alla cartella anche ad utenti che non hanno un account registrato.
    • Writable & Browsable: Possibilità di poter navigare tra le cartelle, visualizzarne e modificarne il contenuto.

Configurazione degli accessi a Samba Shares

Per accedere ai file della cartella “privata” devi creare il gruppo di utenti “autorizzati” all'interno del quale inserire i dati di login degli utenti che possono fare accesso a tali file.

sudo addgroup autorizzati

Aggiungi l’utente al gruppo degli utenti autorizzati ad accedere alla cartella privata:

sudo useradd nome_utente_autorizzato -G autorizzati
sudo smbpasswd -a nome_utente_autorizzato

Ti verrà chiesto di inserire la password che dovrà essere utilizzata da quell’utente per accedere ai file condivisi.

Aggiunta gruppo e utente autorizzato

Ora puoi impostare i permessi di lettura e scrittura destinati agli utenti che dovranno accedere alla cartella pubblica:

sudo chmod -R 766 /samba/pubblica
sudo chown -R nobody:nogroup /samba/pubblica
sudo setfacl -dm g:nogroup:rw /samba/pubblica
sudo setfacl -dm u:nobody:rw /samba/pubblica

Imposta quindi i permessi di lettura e scrittura destinati agli utenti che dovranno accedere alla cartella privata:

sudo chmod -R 770 /samba/privata
sudo chown root:autorizzati /samba/privata

A configurazione eseguita, riavvia il server per attuare le modifiche effettuate:

sudo service smbd restart

Connessione al Server Samba

Ubuntu

Apri il File Explorer -> Altre Posizioni -> Connetti al server, e digita:

smb://10.8.0.1/

Connessione al server Samba da Ubuntu

Se vuoi accedere alla cartella “pubblica” puoi anche lasciare l’accesso “Anonimo”, ma se vuoi effettuare l'accesso alla cartella “privata” devi necessariamente inserire nome utente e password impostati quando hai aggiunto quello specifico utente al gruppo “autorizzati”.

Login Samba

Windows

Apri Explorer -> Network, e digita:

\\10.8.0.1\

Connessione Samba da Windows

L’accesso alla cartella “pubblica” sarà consentito senza alcuna richiesta, mentre per accedere alla cartella “privata” saranno richiesti Nome utente e Password.

Login Samba da Windows

Rimuovere l’accesso a cartelle e file

Qualora tu voglia fare in modo che un determinato utente non abbia più accesso ai file condivisi, dovrai rimuoverlo dal gruppo “autorizzati”:

sudo deluser nome_utente_autorizzato -G autorizzati
Rimozione Utente

Per visualizzare l’elenco degli utenti associati al gruppo “autorizzati”, e che possono quindi fare accesso ai file riservati, puoi utilizzare il comando “members”:

sudo apt-get install members
members autorizzati

Se vuoi aggiungere nuovamente un utente, che hai cancellato in precedenza, digita invece:

usermod -a -G autorizzati nome_utente_autorizzato

Aggiunta utente precedentemente eliminato