Come proteggere con un firewall i server cloud e gestirli via VPN

Come usare pfSense per proteggere una rete privata creata sul cloud, formata da più server Windows e Linux. Attivazione dell'accesso sicuro con OpenVPN.

Professionisti e imprese che avessero la necessità di gestire più server sul cloud possono creare una rete privata tra le varie macchine esponendo pubblicamente solo i servizi che devono potersi affacciare su uno o più indirizzi IP pubblici.
Adottando alcune attenzioni, si può fare in modo che i server cloud possano essere gestiti via VPN, in maniera completamente sicura, evitando di esporre porte e servizi il cui utilizzo deve restare privato.

Il servizio Aruba Cloud PRO permette di allestire un vero e proprio data center virtuale: si possono scegliere i server cloud da utilizzare (Linux, Windows, FreeBSD) e metterli in comunicazione diretta usando un virtual switch.

Un virtual switch l’equivalente sul cloud di un tradizionale switch Ethernet che permette di collegare più dispositivi attraverso le rispettive schede di rete facendo sì che i dati vengano instradati unicamente nel segmento di rete a cui sono destinati.
Il virtual switch può essere utilizzato sul cloud per creare reti private composte da due o più server: le macchine collegate con lo switch potranno dialogare reciprocamente così come se si trovassero all’interno di una LAN e utilizzeranno i propri indirizzi IP privati, assegnati in maniera dinamica (via DHCP) oppure in modo statico (non cambiano nel tempo).

Aruba Cloud mette a disposizione degli utenti anche due famose piattaforme firewall: pfSense ed Endian. Collegando il firewall al virtual switch è possibile proteggere i server cloud collegati a valle esponendo sull’IP pubblico solo le porte e i servizi desiderati.

Il vantaggio di uno strumento come quello offerto da Aruba Cloud è che ogni server virtuale può essere liberamente dimensionato con la possibilità, con pochi clic, di scalare verso l’alto o verso il basso allorquando i carichi di lavoro e il volume di dati da gestire dovessero aumentare o decrescere.
Non solo. I tanti template messi a disposizione dei clienti Aruba Cloud consentono di allestire e configurare un nuovo server cloud in pochi minuti e, altrettanto velocemente, di creare la propria rete privata e gestire un intero data center virtuale.

Come creare una rete virtuale tra server cloud e proteggerla con il firewall pfSense: creare le macchine

Per proteggere due o più server cloud con il firewall pfSense suggeriamo, innanzi tutto, di portarsi nella pagina di Aruba Cloud che permette la creazione di un nuovo server virtuale.

Cliccando sul pulsante Crea nuovo server, si dovrà scegliere “PRO”, VMware“, selezionare Scegli template, digitare Firewall in corrispondenza della casella di ricerca Soluzioni per quindi selezionare pfSense nella colonna di sinistra.

Poco più in basso, nella stessa pagina di creazione del server, bisognerà assegnare un nome (ad esempio FIREWALL) e specificare una password sufficientemente lunga e complessa per l’amministrazione di pfSense.

Non appena il server che fungerà da firewall (con pfSense preinstallato, grazie al template Aruba Cloud) sarà pronto per l’utilizzo, nel pannello di amministrazione apparirà il suo indirizzo IP pubblico: è bene annotarlo perché servirà tra poco.

Nel frattempo, si può cliccare su Virtual switch nella colonna di sinistra del pannello di Aruba Cloud quindi sul pulsante Crea nuovo virtual switch. Al virtual switch dovrà essere assegnato un nome. Nel nostro caso abbiamo specificato DC-SWITCH.

Cliccando su Gestione, immediatamente sotto la voce Cloud server, si tornerà alla lista dei server cloud creati.
A questo punto proviamo ad aggiungere un server Ubuntu Linux e una macchina Windows Server 2019.
Per impostazione predefinita, a ciascun server cloud verrà assegnato un indirizzo IP pubblico.

Collegare i server cloud al virtual switch

Il passo successivo consiste nel cliccare sui pulsanti Gestisci a destra dei tre server appena creati (nell’esempio si chiamano FIREWALL, DC-UBUNTU e DC-WIN2019).

Scorrendo la pagina di configurazione di ciascun server cloud, quasi in chiusura si troverà Schede di rete. Per default l’unica attiva risulterà essere la prima, associata a un indirizzo IP pubblico.

Con un clic sul pulsante Connetti virtual switch in corrispondenza di “Ethernet 2” (la seconda scheda di rete virtuale), si dovrà selezionare e connettere il virtual switch creato in precedenza.

L’operazione dovrà essere ripetuta per tutti e tre i server cloud oltre che per qualunque altra macchina virtuale che si dovesse collegare in seguito alla rete privata.
Suggeriamo di annotare (magari aiutandosi con un “copia e incolla” l’indirizzo MAC della seconda scheda di rete di ciascun server cloud appena creato).

Configurare il firewall pfSense

Copiando e incollando nella barra degli indirizzi del browser l’IP pubblico associato al server cloud contenente pfSense, si accederà alla configurazione del firewall.
I dati transitano via HTTPS ma pfSense, di default, usa un certificato digitale auto-generato: alla comparsa dell’errore “La connessione non è privata” si dovrà semplicemente fare clic sul pulsante Avanzate quindi su Procedi su … (non sicuro).

Alla comparsa della pagina di login di pfSense bisognerà inserire admin come nome utente e, nel campo sottostante, la password scelta in fase di creazione del server su Aruba Cloud.

Facendo riferimento al riquadro Interfaces in alto a destra, si noterà che il server virtuale pfSense sta usando attivamente due interfacce: la prima (WAN) alla quale è assegnato l’IP pubblico; la seconda (LAN) sulla quale è il server cloud è connesso al virtual switch che gestisce la rete privata.

A questo punto, suggeriamo di fare clic su LAN e assegnare un intervallo di indirizzi diverso da quello che si usa nell’ambito della propria rete locale, domestica o aziendale.
Più avanti, infatti, imposteremo la connessione via VPN: per evitare conflitti, è importante che la rete privata sul cloud usi un intervallo di indirizzi differente da quello adoperato in locale.

Nel nostro caso, all’interno del riquadro Static IPv4 Configuration, abbiamo scelto di optare per 192.168.0.1/24.

Per proseguire, bisognerà fare clic sul pulsante Save in basso quindi su Apply changes in alto a destra.
Dal menu Services, DHCP Server, in corrispondenza delle caselle Range, bisognerà inserire un intervallo di indirizzi IP privati assegnabili dal server DHCP che sia compatibile con quello appena impostato (nel nostro caso abbiamo impostato 192.168.0.100 - 192.168.0.199). La modifica dovrà essere memorizzata facendo clic sul pulsante Save in basso.

Impostare indirizzi IP privati di tipo statico sui server cloud collegati con il virtual switch

Utilizzando, nel caso dei sistemi Linux, un client SSH come PuTTY e Connessione Desktop remoto per amministrare Windows Server, si dovrà assegnare un indirizzo IP statico alla seconda scheda di rete collegata in precedenza al virtual switch.

Configurazione del server Ubuntu Linux

1) Stabilire una connessione con PuTTY via SSH inserendo nel campo Host name (or IP address) l’indirizzo IP pubblico del server cloud Ubuntu Linux creato poco fa con Aruba Cloud. Dopo aver effettuato il login con le credenziali root, si dovrà digitare apt update && apt upgrade -y per aggiornare tutti i software presenti sul server.

2) Installiamo a mo’ di test il web server Apache con il comando .
Digitiamo quindi quanto segue per modificare la pagina mostrata di default da Apache quando si tenta la connessione al server via HTTP:

echo '<html><head><meta http-equiv="Content-Language" content="it"><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Server cloud</title></head><body>Benvenuti!</body></html>' > /var/www/html/index.html

Scrivendo l’IP pubblico del server Ubuntu Linux nella barra degli indirizzi del browser (facendolo precedere da http://), si vedrà immediatamente comparire il messaggio “Benvenuti!“.

3) Scrivere nano /etc/network/interfaces e aggiungere quanto segue:

auto eth1
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8 8.8.4.4

Il file dovrà essere salvato premendo CTRL+O quindi CTRL+X per uscire dall’editor.
Così facendo, si sarà assegnato un IP privato statico (nell’esempio 192.168.0.2) al server cloud Ubuntu. Come ultimo passo, si può riavviare la macchina digitando reboot e premendo Invio.

4) Collegandosi nuovamente al server Ubuntu, si potrà digitare quanto segue per attivare le regola firewall in ingresso:

ufw allow "Apache Secure"
ufw allow "OpenSSH"
ufw enable
systemctl reload apache2
reboot

Configurazione di rete della macchina Windows Server

1) Avviare il software Connessione Desktop remoto da un sistema Windows quindi digitare l’IP pubblico del server cloud Windows Server creato in precedenza nel campo Computer. Dopo aver fatto clic sul pulsante Connetti, cliccare su Altre opzioni, Usa un altro account; inserire administrator come Nome utente e la password scelta in fase di creazione del server.

2) Una volta stabilita la connessione via Desktop remoto, suggeriamo di impostare – a titolo esemplificativo – almeno il ruolo di server web con IIS. Basta fare clic su Add roles and features quindi premere sempre Next fino alla comparsa della finestra Select server roles. Qui attivare Web Server (IIS) e fare clic sul pulsante Add features.

Premere ripetutamente Next quindi Install all’ultimo passaggio.
Anche in questo caso, digitando l’indirizzo IP pubblico della macchina nella barra degli indirizzi del browser (preceduto da http://), si vedrà apparire il messaggio di benvenuto del web server IIS.

3) Per configurare la seconda scheda di rete sulla macchina Windows Server, si deve infine premere con il tasto destro sul pulsante Start, selezionare Run quindi digitare ncpa.cpl e infine cliccare due volte sull’icona Lan 2.
Con un clic sul pulsante Properties, su Internet Protocol Version 4 (TCP/IPv4) quindi ancora su Properties, suggeriamo di assegnare un IP privato statico (nell’esempio 192.168.0.3). Le altre caselle possono essere impostate così come in figura (ovvero 255.255.255.0 come Subnet mask; 192.168.0.1 come Gateway; più si possono introdurre i DNS di Google).

Aprendo il prompt dei comandi sulla macchina Windows Server e digitando ping 192.168.0.2 e 192.168.0.1, si noterà come sia il server Ubuntu che il firewall pfSense connessi alla stessa rete privata mediante virtual switch risponderanno correttamente.

Configurare l’accesso via VPN alla rete privata sul cloud

La piattaforma firewall pfSense integra, tra le varie funzionalità, quella di server OpenVPN.
Per configurarla correttamente anche lato client e stabilire una connessione sicura da remoto, suggeriamo innanzi tutto di collegarsi al pannello di amministrazione pfSense digitando nella barra degli indirizzi del browser il corrispondente IP pubblico quindi portarsi su System, Package Manager, Available Packages.
Digitando openvpn-client-export nell’apposita casella, si dovrà avviare la ricerca e installare il pacchetto proposto (pulsanti Install, Confirm).

A questo punto si dovrà cliccare sul menu VPN, OpenVPN, scegliere Wizards, lasciare selezionata l’opzione Local User Access quindi fare clic su Next.

Nella pagina Certificate Authority (CA) Certificate si dovrà assegnare un nome nel campo Descriptive Name (ad esempio MYVPN) così come nella successiva Create New Certificate.

La successiva schermata andrà impostata come in figura in modo da attivare su pfSense le connessioni OpenVPN su interfaccia WAN e porta TCP 1194. È fondamentale spuntare entrambe le caselle TLS Authentication e Generate TLS Key.

In corrispondenza della casella Tunnel network si potrà indicare 10.1.1.0/24 mentre nella sottostante Local Network 192.168.0.0/24.
Spuntare anche la casella Inter-Client Communication così da permettere il dialogo diretto tra i sistemi connessi alla rete privata virtuale.

Terminata la configurazione del server OpenVPN, si dovrà cliccare su System, User Manager quindi sul pulsante Add. Bisognerà specificare un nome utente e una password (verranno utilizzati per stabilire la connessione via VPN) e – importante – si dovrà spuntare la casella Click to create a user certificate.

Dopo aver salvato l’account utente con un clic su Save, si dovrà fare clic su VPN, OpenVPN quindi cliccare su Client Export.

Da ultimo, cliccando sul pulsante Most Clients in calce alla pagina, si otterrà un file .ovpn che permetterà di stabilire la connessione VPN da un sistema client.

Per utilizzarlo, ad esempio da un sistema Windows, è necessario effettuare il download dell’ultima versione del client OpenVPN (da questa pagina) quindi copiare il file .ovpn nella cartella %programfiles%\OpenVPN\config.

Avviando il client OpenVPN e cliccando sul profilo .ovpn appena aggiunto, infine selezionando Connetti, il sistema in uso verrà connesso alla rete privata remota (specificare nome utente e password dell’account creato in pfSense).

Digitando i comandi ping 192.168.0.1, ping 192.168.0.2 e ping 192.168.0.3 si riceverà risposta da tutti i server cloud configurati in precedenza.
Non solo. Digitando http://192.168.0.2 nella barra degli indirizzi del browser si vedrà comparire il messaggio “Benvenuti!” del server Apache installato su Ubuntu Linux; scrivendo http://192.168.0.3 apparirà la schermata di benvenuto di IIS restituita dalla macchina Windows Server.

A questo punto, è possibile tornare nel pannello di amministrazione di Aruba Cloud, cliccare su Gestisci in corrispondenza dei server Ubuntu e Windows quindi cliccare Rimuovi IP a destra delle schede di rete Ethernet 1.
Così facendo i due server saranno raggiungibili solo previa connessione alla VPN. Per accedere al server Ubuntu via SSH e a Windows Server tramite Desktop remoto si dovrà, d’ora in avanti, connettersi alla VPN usando il client OpenVPN quindi avviare rispettivamente PuTTY e Connessione Desktop remoto specificando gli IP 192.168.0.2 e 192.168.0.3 nel campo relativo all’host da raggiungere.

Dall’interfaccia di amministrazione di pfSense, ancora raggiungibile mediante IP pubblico, si potrà infine disattivare le richieste di connessione sulla porta WAN selezionando la prima regola mostrata e attivando la casella Disable this rule (si dovrà lasciare solamente la regola che permette le connessioni sulla porta TCP 1194 di OpenVPN).

Con un clic su Firewall, NAT e infine sul pulsante Add, si può ad esempio creare una nuova regola per consentire l’accesso al server HTTP di Windows Server a partire da una richiesta pervenuta sull’IP pubblico del firewall pfSense.
Per procedere, basta configurare una regola di port forwarding così come in figura:

Come si vede, dopo aver indicato l’utilizzo del protocollo HTTP (porta 80), si richiede il port forwarding sulla stessa porta sull’IP 192.168.0.3 corrispondente all’indirizzo privato della macchina Windows Server.

Digitando http:// seguito dall’indirizzo IP pubblico del firewall, risponderà immediatamente il web server IIS di Windows Server.
La stessa operazione può essere effettuata per Apache, sul server Ubuntu, o per qualunque altro servizio in ascolto su qualsiasi altra porta.

Dal pannello di pfSense, portandosi su System, Advanced, è infine possibile modificare il valore del campo TCP port: in questo modo si potrà riutilizzare la porta 443 (HTTPS) per un server web installato nella rete privata.

Nell’esempio, si è scelto di usare la porta 4343 per l’accesso all’interfaccia di amministrazione di pfSense. Per accedervi bisognerà quindi, d’ora in avanti, collegarsi via VPN quindi digitare l’IP privato del server pfSense seguito da :4343.

Alcune note finali:
– Il server virtuale pfSense può anche essere creato in locale e poi importato su Aruba Cloud grazie all’upload via FTP. Basterà creare il server cloud di pfSense usando il template .VMDK importato (fare riferimento a questa pagina). Vedere l’articolo pfSense, firewall e VPN tutto in uno: come provarli con Virtualbox.
In alternativa, si può installare pfSense caricando il file ISO aggiornato nell’area FTP dell’account Aruba Cloud quindi associarlo a un CD/DVD virtuale e usare il pulsante Accedi console per sovrintendere l’intera procedura di installazione e configurazione.
– La VPN può essere eventualmente configurata sulla porta 443 (anziché 1149) in maniera tale da avere la garanzia di riuscire a connettersi da qualunque rete altrui.
– Gli IP privati sono stati assegnati ai vari server cloud in modo manuale. In diverse configurazioni potrebbe essere utile configurare i server in DHCP con assegnazione statica degli IP (basterà usare i MAC address annotati in precedenza).

Ti consigliamo anche

Link copiato negli appunti