Microsoft Tunnel: accesso alle risorse on-prem da device Android o iOS – Parte 1

Negli ultimi due anni, abbiamo assistito ad un cambio epocale nel modo in cui le persone lavorano con un incremento esponenziale dell’attività da remoto da parte dei dipendenti.

Questo ha portato le aziende ad una Digital Trasformation senza precedenti: le aziende dove questo processo di trasformazione era già stato avviato sono state in grado di gestire in modo agevole lo switch verso un lavoro ibrido.

Nelle realtà con una forte presenza di dati e servizi basati su risorse on-prem, si è resa necessaria l’adozione di strumenti per consentirne l’accessibilità e l’utilizzo anche da sistemi mobile.

Microsoft Tunnel è la soluzione di Microsoft che permette l’accesso alle risorse on-premise da parte di device Android o iOS; l’introduzione di tale soluzione in azienda permette agli utenti di essere ugualmente produttivi ovunque essi si trovino e da qualsiasi tipo di device si colleghino.

Questa soluzione fornisce anche altri vantaggi come:

  • Possibilità di essere utilizzato dietro un sistema di bilanciamento per assicurare l’alta disponibilità del servizio;
  • Configurazione semplice attraverso una console di gestione centralizzata come Microsoft Endpoint Manager.
  • Aggiornamento automatico dei sistemi all’interno di specifiche finestre manutentive in modo tale da generare il minor disservizio possibile;
  • Possibilità di inviare i log di Microsoft Tunnel sfruttando l’integrazione di syslog con Azure Sentinel o con altri strumenti SIEM per registrare e monitorare gli eventi;

Prerequisiti

Per poter adottare Microsoft Tunnel è necessario disporre dei seguenti prerequisiti:

È importante sottolineare come solo i device registrati su Microsoft Intune (quindi gestiti) hanno la possibilità di sfruttare questo servizio per l’accesso alle risorse aziendali.

Creazione Server Configuration

L’utilizzo di una Server Configuration permette di definire quelle che saranno le configurazioni che verranno applicate ai device una volta contattato il Tunnel Gateway; questa configurazione permette di definire: il range di IP che verrà assegnato ai device, i server DNS da contattare ed eventuali regole di split tunneling.

Riportiamo qui sotto gli step necessari alla creazione di una nuova Server Configuration:

  • Eseguire l’accesso alla console Microsoft Endpoint Manager con un account amministrativo;
  • Accedere alla sezione Tenant administration > Microsoft Tunnel Gateway;
  • Selezionare il tab Server configurations;
  • Premere sul pulsante Create new;
Figura 1 – Creazione Server Configuration
  • Inserire un nome ed una eventuale descrizione e procedere con il pulsante Next;
  • Come precedentemente citato, all’interno del tab Settings, configurare le seguenti opzioni:
    • IP address range: range di indirizzi IP che verrà assegnato ai device quando eseguiranno la connessione al Tunnel Gateway (es: 192.168.1.0/24);
    • Server port: indica la porta su cui il server risulterà in ascolto (impostare 443);
    • DNS servers: questi sono i server DNS che verranno utilizzati per le richieste DNS provenienti da dispositivi che risultano connessi al Tunnel Gateway;
    • DNS suffix search (opzionale): questo suffisso DNS verrà fornito ai client come default;
    • Split tunneling (opzionale): permette di definire indirizzamenti IP da includere e escludere nel processo di routing; gli indirizzi IP inclusi verranno ruotati verso il Tunnel Gateway, mentre quelli esclusi non verranno ruotati verso il Tunnel Gateway.
Figura 2 – Server Configuration settings
  • Premere sul pulsante Next;
  • Procedere con il wizard fino alla creazione attraverso il pulsante Create.

Creazione Site Configuration

I Sites non sono nient’altro che raggruppamenti logici di server che ospitano il ruolo di Microsoft Tunnel; a questi server verrà poi assegnata una specifica Server Configuration che verrà specificata durante il processo di creazione del Site.

Riportiamo qui sotto gli step necessari per eseguire questo processo:

  • Accedere alla console MEM con un account amministrativo;
  • Accedere alla sezione Tenant administration > Microsoft Tunnel Gateway;
  • Selezionare il tab Sites;
  • Premere sul pulsante Create;
Figura 3 – Creazione Site Configuration
  • Inserire un nome ed una eventuale descrizione e procedere con il pulsante Next;
  • All’interno del tab Settings, configurare le seguenti opzioni:
    • Public IP address or FQDN: configurare l’indirizzo IP pubblico o l’FQDN pubblico con cui viene pubblicato il Tunnel Gateway; questo indirizzo/FQDN verrà utilizzato dai device per instaurare la comunicazione con il server Gateway.
    • Server configuration: dal menù a tendina, selezionare la Server Configuration precedentemente creata.
    • URL for internal network access check: definire un URL HTTP o HTTPS che verrà utilizzato dal server per determinare se è in grado di accedere correttamente alle risorse interne; il polling viene eseguito ogni 5 minuti.
    • Automatically upgrade servers at this site: nel caso in cui si selezioni l’opzione Yes, l’aggiornamento del/dei server verrà eseguito automaticamente; nel caso si selezioni l’opzione No, l’upgrade verrà eseguito solamente a fronte dell’approvazione manuale da parte di un amministratore;
    • Limit server upgrades to maintenance window: nel caso in cui si sia selezionato di eseguire l’aggiornamento automatico, impostando questa opzione a Yes, è possibile definire una finestra manutentiva all’interno della quale verrà eseguito l’aggiornamento.
Figura 4 – Site Configuration settings
  • Premere sul pulsante Next;
  • Procedere con il wizard fino alla creazione attraverso il pulsante Create.

Installazione Microsoft Tunnel

Una volta ultimata la creazione di una nuova Server Configuration e di un nuovo Site, è possibile procedere con l’installazione della funzionalità Microsoft Tunnel sul server Linux predisposto; requisito di questa funzionalità, è la presenza di Docker versione 19.03 CE o successive.

Collegarsi al server Linux predisposto per questa funzionalità ed eseguire i seguenti comandi (gli step sotto riportati fanno riferimento all’installazione di Docker su un distro Linux CentOS versione 7.9):

Nel caso in cui il server Linux sia in grado di accedere ad Internet senza particolari restrizioni eseguire quanto sotto riportato:

sudo yum install -y yum-utils
sudo yum-config-manager \--add-repo\https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

In caso contrario, eseguire le operazioni sotto riportate:

  • Accedere al link https://download.docker.com/linux/centos/
  • Selezionare la versione CentOS del server Linux coinvolto;
  • Accedere al path x86_64/stable/Packages/
  • Eseguire il downlod dei seguenti file rpm:
    • docker-ce
    • docker-ce-cli
    • io
    • docker-scan-plugin
    • docker-ce-selinux
    • docker-ce-rootless

Una volta completato il download dei file, copiarli all’interno della folder tmp del server Linux ed avviare l’installazione attraverso il seguente comand:

sudo yum install <path>\docker-ce-<version>.rpm docker-ce-cli-<version>.rpm containerd.io-<version>.rpm

Nel caso in cui non risultino disponibili i prerequisiti per il Docker sul server CentOS, è possibile ricevere il seguente messaggio di errore:

Error: Package: docker-ce-rootless-extras-20.10.8-3.el7.x86_64 (docker-ce-stable)
           Requires: slirp4netns >= 0.4

Per permettere l’installazione automatica dei requisiti eseguire gli step sotto riportati:

  • Accedere alla folder contenente il repositori yum:
    cd /etc/yum.repos.d
    mv CentOS-Base.repo CentOS-Base.repo_bak

  • Aggiungere all’inizio del file /etc/yum.repos.d/docker-ce.repo le seguenti entry:
    [centos-extras]
    name=Centos extras – $basearch
    baseurl=http://mirror.centos.org/centos/7/extras/x86_64
    enabled=1
    gpgcheck=0
  • Procedere con il salvataggio del file;
  • Forzare l’installazione dei componenti slirp4netns, fuse-overlayfs e container-selinux attraverso la seguente riga di comando:
    sudo yum -y install slirp4netns fuse-overlayfs container-selinux

Una volta terminato il processo di installazione di Docker procedere con l’avvio e la rispettiva configurazione per permettere l’avvio automatico del servizio in automatico all’avvio del sistema:

sudo systemctl start docker
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

Terminato il processo di installazione di Docker, è possibile procedere con l’installazione di Microsoft Tunnel;

  • Eseguire il download dello script di installazione in una delle seguenti modalità:
    • Download da un browser attraverso il seguente link;
    • Attraverso il portale Microsoft Endpoint Manager all’interno della sezione Tenant administration > Microsoft Tunnel Gateway > Servers > Create premere sul pulsante Download script
    • Download direttamente dal server Linux attraverso il seguente comando: wget –output-document=mstunnel-setup https://aka.ms/microsofttunneldownload
Figura 5 – Download installer script
  • Avviare la procedura di installazione eseguendo lo script scaricato in precedenza:
    sudo chmod +x ./mstunnel-setup

Una volta avviato, lo script provvederà ad eseguire automaticamente il download dell’immagine dagli endpoint di Microsoft Intune e a creare le folder/file necessari.

  • Accettare l’EULA
  • Verificare ed eventualmente modificare come richiesto le variabili presenti all’interno del file /etc/mstunnel/env.sh
Figura 6 – Configurazione variabili d’ambiente
  • Rinominare i file relativi al certificato come riportato qui sotto:
    • Formato PFX -> site.pfx
    • Formato CRT -> site.cer (per certificato e relativa chain) e site.key (per chiave privata)
  • Copiare i file relativi al certificato nelle apposite folder come indicato dalla procedura attraverso I seguenti comandi:
    • Formato PFX
      cp [path/site.pfx] /etc/mstunnel/private/site.pfx
    • Formato CRT
      cp [path/site.crt] /etc/mstunnel/certs/site.crt
      cp [path/site.key] /etc/mstunnel/private/site.key
Figura 7 – Installazione certificato
  • Durante il processo di import, nel caso in cui venga utilizzato un file pfx protetto da password, verrà richiesto l’inserimento di quest’ultima:
Figura 8 – Richiesta password per import certificato
 
  • Al termine del processo di import, per poter avviare la registrazione del Microsoft Tunnel Gateway server sul portale Microsoft Intune, risulta necessario eseguire l’accesso al link indicato (https://microsoft.com/devicelogin), autenticarsi con un account Global Admin o Intune Administrator e infine inserire il codice indicato:
Figura 9 – Registrazione Microsoft Tunnel Gateway server su Intune
  • Una volta autorizzata la registrazione, verificare che il processo di creazione si completi con esito positivo e che il server risulti correttamente registrato nella sezione Server della console.

Riferimenti

Si riportano alcuni utili riferimenti alla documentazione ufficiale Microsoft:

Conclusioni

In questo articolo è stata fornita una panoramica della soluzione Microsoft Tunnel che consente di accedere alle risorse aziendali attraverso dispositivi mobile.

Nel prossimo articolo, vedremo come distribuire l’app necessaria per collegarsi con il server Microsoft Tunnel e come configurare i device per instaurare la connessione VPN sfruttando questa soluzione.