martedì, Dicembre 3, 2024

VPN, Firewall e Proxy con Smoothwall

Introduzione

Negli ultimi anni si è visto una notevole crescita, sviluppo e diffusione di distribuzioni Linux dedicate a compiti direttamente inerenti la sicurezza quali, ad esempio, firewall, IDS, Proxy e possibilità di fare da server VPN.

Tutto ciò è motivabile dal fatto che l’uso di questo genere di distribuzione è molto semplice. La loro applicazione, invece, consente di installare e configurare un firewall più o meno sicuro (dipende da chi lo configura) e di, soprattutto, risparmiare in termini economici.

Le più famose distribuzioni sono IPCop, MonoWall, Smoothwall. Noi tratteremo quest’ultima.

Smoothwall

Cos’è

Logo SmoothwallSmoothwall è una distribuzione Linux dedicata ai servizi sopra citati. E’ un ottimo prodotto per chi si trova nella condizione di dover installare velocemente un firewall/proxy/IDS senza necessariamente avere alte competenze tecniche.

Smoothwall, infatti, è completamente amministrabile tramite una interfaccia web che consente e facilita, appunto, la configurazione della macchina per gli obiettivi prefissati.
Un altro punto di forza di Smoothwall, inoltre, sono i bassi requisiti hardware.

Requisiti minimi:

  • processore 386
  • 8 mb di ram
  • 30 mb di hard-disk

Come funziona

Un firewall necessita di, ovviamente, minimo due schede di rete. Questo perchè deve separare quello che generalmente possiamo definire come rete privata e rete pubblica. Nella stra grande maggioranza dei casi la rete pubblica è Internet mentre la rete privata è una LAN.

Il funzionamento è molto semplice: i pacchetti entrano dall’interfaccia pubblica, vengono esaminati e processati dalle regole dell’ipotetico firewall e dalle ACL dell’IDS e, solo successivamente, escono dall’interfaccia privata entrando, quindi, nella LAN e raggiungendo i diversi host di destinazione.
Smoothwall, come comunque qualsiasi altra distribuzione Linux dedicate a questa tipologia di servizi, consente l’implementazione e la configurazione di una terza scheda di rete adibita alla DMZ.

La DMZ (DeMilitarized Zone) non è altro che una “porzione” di rete privata nella quale vanno posizionati tutti i server offrenti servizi che devono essere raggiungibili dall’esterno. Isolare e separare, quindi, questi server, garantisce una maggiore sicurezza e ordine.
Queste tre interfacce fisiche vengono logicamente espresse con tre colori: l’interfaccia pubblica (Internet) è l’interfaccia RED, l’interfaccia privata è la GREEN e la DMZ è la ORANGE
Un’altra importante cosa da ricordare è il fatto che Smoothwall utilizza alcuni servizi quali HTTP (ovviamente, visto l’interfaccia web di amministrazione), HTTPS (HTTP Secure), SSH e via dicendo. La particolarità non è certo questa bensì le porte su cui sono stati “allocati” i servizi pocanzi citati.

Le RFCs, infatti, stabiliscono e standardizzano la seguente corrispondenza servizio-porta:

  • HTTP – porta 80
  • HTTPs – porta 443
  • SSH – porta 22

Smoothwall, invece, per evitare problematiche tra i vari port forwarding, ha stabilito la seguente corrispondenza:

  • HTTP – porta 81
  • HTTPs – porta 445
  • SSH – porta 222

Installazione

Dal sito ufficiale è possibile effettuare il download dell’immagine ISO di Smoothwall. Ovviamente essa va masterizzata e poi usata per fare il boot nella nostra macchina.

Nel caso in cui fossimo sprovvisti di un masterizzatore o solamente per sfizio e curiosità, è possibile effettuare l’installazione da rete prendendo i pacchetti direttamente dal server FTP di smoothwall.org.

Una volta creato il CD, facciamo il boot della macchina avendo cura di “informare” il BIOS che deve fare il boot dal lettore CD.

L’installazione di Smoothwall è alquanto semplice e comprende anche la sua configurazione. Per fare ciò, useremo il tasto TAB (per passare da un campo all’altro), SPAZIO (per premere un bottone), ENTER (conferma il campo, preme il bottone).

Dovreste vedere la schermata iniziale dell’installazione, leggete e confermate. Dovete poi scegliere la lingua ed il media di installazione: nel nostro caso il cdrom.

Il menu di setup

  • Keyboard Mapping: scegliamo il layout della tastiera che stiamo utilizzando.
  • Hostname: diamo un nome alla nostra macchina; lo potremo usare in alternativa all’indirizzo IP.
  • Web Proxy: se vogliamo utilizzare il proxy del nostro ISP, questo è il posto ove inserirne l’indirizzo e la port
  • ISDN e ADSL: non li configuriamo in quanto non da noi affrontati
  • Networking: è la parte più importante, seguono i 4 sottomenu.
    • Network Configuration type: delle diverse opzioni a disposizione scegliamo GREEN+RED, cioè 2 schede di rete, una per la rete locale ed una per Internet.
    • Drivers and card assignments: ci permette di assegnare un driver alla scheda RED; usiamo il tatsto Probe, e la scheda esterna dovrebbe essere riconosciuta.
    • Address Settings: in questo menu scegliamo Static e inseriamo l’indirizzo IP ed la subnet mask
    • DNS and Gateway settings: inseriamo qui i DNS che il nostro provider ci ha fornito, e l’indirizzo del gateway
    • DHCP Server configuration: abilita e configura il servizio DHCP server di Smoothwall
    • Setting user password: è il passo finale dell’installazione di SmoothWall Express.

A tal proposito avrete notato che Smoothwall vi ha chiesto di inserire una password per alcuni utenti di sistema. In realtà, in questo ambiente, ci sono quattro utenti:

  • root
  • setup
  • dial
  • admin

Root: è come per tutti i sistemi GNU/Linux ovvero l’utente che ha pieni poteri e privilegi sul sistema.

Setup: consente la modifica della configurazione del firewall.

Admin: viene utilizzata per l’amministrazione quotidiana del sistema. Consente di vedere i log e altri parametri.

Dial: è quella che dovrebbe essere fornita agli utenti che avranno il permesso di avviare/fermare la connessione dial-up.

Il pannello di amministrazione

  • Control
    • Home – è la pagina principale dalla quale è possibile controllare la versione in uso di Smoothwall e l’uptime, ovvero da quanto tempo è accesa la macchina. Oltre a questo, qui comparirà un messaggio se non aggiorniamo Smoothwall da molto tempo
    • Credits – credits e licenze.
  • About
    • Status – Controllo di quali servizi sono attivi o meno sul firewall.
    • Advanced – informazioni dettagliate sulla memoria in uso e configurazione di partizioni, inode, uptime, interfacce di rete, routing, moduli e versione del kernel.
    • Traffic graph – grafici basati sulle statistiche di traffico delle interfacce di rete.
  • Services
    • Web proxy – da qui possiamo abilitare e configurare il servizio proxy. Tra le varie opzioni, la possibilità di attivare il Transparent Proxy che affronteremo successivamente.
    • DHCP – configurazione e abilitazione del servizio DHCP.
    • Dynamic DNS – se non avete un indirizzo IP fisso, potete utilizzare uno dei numerosi servizi che vi permettono di essere comunque raggiungibili dall’esterno.
    • Intrusion Detection System – questa opzione abilita Snort, uno degli IDS più famosi. Esso riconosce i tentativi di accesso che sfruttano le falle di sicurezza più note.
    • Remote Access – nel caso in cui volessimo gestire remotamente (con SSH) il nostro proxy/firewall in questione, selezioniamo entrambe le checkbox.
    • Time – cambiare il fuso orario, impostare l’ora e configurate i server NTP per la sincronizzazione automatica dell’ora da Internet. E’ importante, infatti, avere data e ora esatti per poter interpretare correttamente i log del sistema.
  • Networking
    • Port forwarding – configurazione del port forwarding. L’utilizzo è molto semplice.
    • External Service Access – per permettere l’accesso dall’esterno a servizi offerti da SmoothWall.
    • DMZ Pinholes – da questa pagina possiamo configrare l’accesso alla LAN da DMZ solo per determinate porte e host. Può essere utile nel caso il server in DMZ abbia bisogno di accedere alla LAN ad esempio un sito dinamico hostato in DMZ potrebbe interrogare un database in LAN o, comunque, altri ambienti e/o necessità.
  • PPP settings – serve per configurare l’accesso ad internet via PPP, PPP over ATM o PPP over Ethernet.
    • IP block – possiamo blacklistare uno o più indirizzi IP.
    • Advanced – configurazione di ICMP, IGMP, UPnP, SYN cookies e traffico multicast.
  • VPN
    • Control – SmoothWall può stabilire connessioni VPN con altri SmoothWall, oppure con endpoint FreeS/WAN compatibili.
    • Connections – e da qui vengono configurate le connessioni della (o delle) VPN in uso.
  • Logs – questo tab contiene tutte le sezioni dedicate ai log del sistema: sono molti e dettagliati.
    • Other
    • Web proxy
    • Firewall
    • Intrusion Detection System
  • Tools
    • IP information – whois su indirizzi IP o domini.
    • IP tools – ping e traceroute.
    • Shell – per collegarsi a Smoothwall in console tramite un’applet java.
  • Maintenance
    • Updates – per scaricare ed installare gli aggiornamenti del sistema. Inoltre visualizza lo storico degli aggiornamenti installati.
    • Modem – nel caso si usi un modem per la connessione, qui troviao la configurazione, sia per PSTN che ISDN.
    • Alcatel Speedtouch USB ADSL firmware upload – per aggiornare il firmware del modem nel caso in cui, appunto, avessimo il modem specificato.
    • Passwords – gestione delle password degli utenti admin e dial.
    • Backup – per salvare la configurazione su un floppy e per poter ripetere rapidamente l’installazione.
    • Shutdown – per spegnere o riavviare SmoothWall.

Hands-on

Quello che con questo articolo andiamo a realizzare, è semplicemente la configurazione di Smoothwall come Proxy (anche transparent), come firewall e come server VPN.

Proxy

Cos’è un Proxy

Dare una definizione di Proxy non è semplice in quanto è una funzionalità che assume moltissimi significati variando l’ambiente di applicazione e le stesse necessità.
Un proxy, inoltre, può svolgere le più svariate funzioni come:

  • caching: un Proxy può tenere traccia e conservare tutte le pagine visitate e richieste da tutte le macchine che usano il proxy stesso. Questo comporta a un minore spreco di banda e all’aumento della velocità con cui il nostro browser caricherà le pagine da noi richieste in quanto le pagine saranno caricate dal nostro proxy e non da Internet.
  • monitoring: un proxy ci consente di controllare il traffico in entrata e scoprire le pagine visitate dai nostri utenti. Questa funzionalità, inoltre, ci consente anche di fare delle statistiche.
  • content filtering: come dice il termine stesso, questa funzionalità è utile ai fini di filtrare il traffico passante per il proxy in base a specifici contenuti definiti, magari, da delle keyword. Possiamo, quindi, vietare la visione di alcuni siti rispetto ad altri.
  • firewall: benchè la funzione di firewall e di proxy siano ben distinte tra di loro, molto spesso si usa unire questi due compiti.

Un proxy, inoltre, si dice transparent quando intercetta ogni richiesta di un particolare servizio per poi redirigerla a un proxy (Squid) affinchè svolga tutte le funzioni del caso. In termini concreti, un proxy è transparent quando nelle impostazioni del browser del client in uso non specifichiamo l’utilizzo del proxy in quanto, in realtà, tutte le richieste saranno routate al proxy.

Pratica: Proxy e Transparent Proxy

Smoothwall ha già installato Squid, il proxy server più famoso. L’attivazione di Squid è assai facile grazie alla gestione centralizzata che Smoothwall offre tramite il suo pannello di amministrazione.
Come ben visibile nella figura seguente, per attivare la funzionalità di Proxy e di Transparent Proxy è sufficiente spuntare le due checkbox “Enabled” e “Transparent”.

Distinguiamo, però, le due operazioni.

Per l’impostazione del proxy, attiviamo solamente la prima opzione ovvero “Enabled”. Fatto questo, informiamo il nostro browser che dovrà forwardare le richieste all’indirizzo IP del proxy tramite la giusta porta.

Per fare ciò, supponendo di usare Mozilla Firefox, apriamo le Opzioni tramite Strumenti—>Opzioni o Edit–>Preferences se in lingua inglese.

Comparirà questa finestra:

Qui clicchiamo su “Impostazioni connessione”; risulterà questo:


Impostiamo l’IP del nostro proxy ovviamente nel campo “HTTP Proxy” e la corrispettiva porta in “Port”. Fatto questo, salviamo la configurazione e proviamo ad aprire un qualsiasi sito. Se quest’ultimo verrà visualizzato, vuol dire che la richiesta è correttamente giunta al proxy il quale si è preoccupato di fare la HTTP request al sito aperto per poi restituirci il risultato.
Nel caso del Transparent Proxy, invece, tutto il traffico diretto verso la rete pubblica verrà forwardato al Proxy. Questo scenario ci consente di non specificare alcun proxy nel browser. Togliamo quindi le impostazioni appena inserite e indichiamo al nostro pc qual è il gateway attraverso il quale comunicare con Internet. Clicchiamo col tasto destro del mouse sulla nostra connessione di rete e selezioniamo “Protocollo TCP/IP”. Nella finestra che si apre, specifichiamo come gateway l’ip del nostro Proxy. Salviamo le impostazioni.

Analogamente a prima, proviamo ad aprire un sito web verificando, quindi, l’effettiva capacità del nostro pc di raggiungere Internet attraverso Smoothwall.

Firewall

Come è giusto e normale che sia, Smoothwall blocca “tutte” le connessioni provenienti dall’interfaccia RED. Detto questo quindi, se a Smoothwall dovesse pervenire una richiesta HTTP proveniente da Internet (supponiamo che qualcuno voglia accedere al nostro pannello web di amministrazione) esso dropperà i pacchetti in questione in quanto, di default, le richieste provenienti dall’interfaccia RED sono bloccate.

Nostro compito, invece, era quello di permettere questo. Ricordando, quindi, che il pannello web di Smoothwall lavora sulla porta 81, creeremo una semplice regola la quale permetterà le richieste TCP (PROTO: TCP) da qualsiasi sorgente (SOURCE: ALL) alla porta 81 (PORT: 81). Per farr ciò clicchiamo su Networking—>External Service Access.

Server VPN

Cos’è una VPN

VPN, acronimo di Virtual Private Network, è un collegamento a livello 3 (Network) stabilito ed effettuato tra due o più reti LAN attraverso una rete pubblica che non deve essere necessariamente Internet. La particolarità di una rete VPN è quella di collegare appunto due o più reti private rendendo la rete pubblica totalmente trasparente creando il cosìdetto tunnel VPN simulando, quindi, un collegamento diretto. Oltre a questo, tutti i dati che passano nella VPN vengono criptati rendendo quindi sicuro le varie comunicazioni e il trasporto di dati.

Il motivo per il quale i dati all’interno del tunnel vengano criptati è abbastanza ovvio. Come già detto, la VPN utilizza una rete pubblica per l’instaurazione del tunnel. Di conseguenza, tutto quel che viene trasmesso nella VPN è facilmente sniffabile e leggibile a qualsiasi persona munita di poche conoscenze tecniche. In base a questo, come già detto, tutti i dati vengono criptati.

Perchè una VPN?

Una VPN è solitamente utilizzata in ambito aziendale e corporate per il collegamento di una o più sedi remote di una stessa azienda in modo tale da semplificare la comunicazione tra le varie location. Oltre a questo, si usa molto spesso collegare l’azienda con le sedi remote dei vari clienti con l’intuibile vantaggio di semplificare i costi e i tempi di intervento in caso di problematiche relative a quel determinato cliente.

I vantaggi di una VPN
  • Riduzione dei costi: una VPN potrebbe essere sostituita da un collegamento tramite linea CDN. A questo punto, però, sorge un problema: il costo. Una linea CDN è infatti molto costosa (sia da mantenere che da installare) e lo potrebbe diventare ancora di più con l’aumentare della complessità della nosta rete.
  • Flessibilità e scalabilità: le VPN hanno una flessibilità e una capacità di scalare che le linee affittate non hanno. L’implementazione di una VPN semplifica e centralizza l’amministrazione delle reti. Una infrastruttura di VPN può adattarsi con facilità alle necessità di cambiamento delle reti. Con le VPN inoltre, gli utenti remoti (come per esempio delle sedi distaccate) si possono connettere in sicurezza da qualunque posto e in ogni tempo 24 ore su 24 alle risorse della rete sicura o tra di loro.
  • Sicurezza ed affidabilità: la sicurezza è un concetto intrinseco in una VPN, poiché le VPN utilizzano protocolli di tunneling e una cifratura avanzata. L’affidabilità viene data fatto che un Tunnel VPN ha un solo punto di entrata e un solo punto di uscita.
  • Struttura indipendente: una rete VPN è un collegamento a livello 3 del modello OSI/ISO. In base a questo, i primi due livelli non vengono considerati tralasciando, quindi, anche le loro relative problematiche e vulnerabilità.
Pratica: connessione VPN tra due Smoothwall

La creazione di una VPN tra due server Smoothwall è alquanto semplice e sempre il medesimo motivo: la possibilità, infatti, di configurare dei servizi attraverso una interfaccia grafica, semplifica notevolmente l’operazione stessa.

Segue lo screenshot illustrante le impostazioni da inserire in entrambi gli end-point VPN affinchè la connessione VPN possa avvenire.

Prima di tutto, comunque, attiviamo il servizio VPN dal menu “CONTROL”.

L'attivazione
L'attivazione
  • Name: è semplicemente il nome che vogliamo dare alla connessione.
  • Left: l’indirizzo IP dell’interfaccia RED dello Smoothwall in uso.
  • Left Subnet: è, intuibilmente, la subnet della nostra interfaccia RED. Attenzione che va scritta in notazione binaria ovvero 192.168.xxx.yyy/zz e non come 255.255.255.0 (esempio).
  • Right: l’indirizzo IP dell’interfaccia GREEN dello Smoothwall remoto.
  • Right Subnet: come prima. La subnet dell’interfaccia GREEN dello Smoothwall remoto.
  • Secret: La chiave segreta che permetterà la criptazione del canale di trasmissione evitando, quindi, un semplice sniffing dei dati.

Una volta inserite queste semplici informazioni, le due LAN collegate alle interfaccie GREEN dei due Smoothwall potranno comunicare tra di loro in quanto il tunnel VPN sarà attivo.

Articoli correlati

Noleggia una Tesla per il tuo evento ICT!

Categorie