Sei sulla pagina 1di 65

Progetto di un VPN gateway Antonio

Lepore

Sicurezza dei
Progetto di un Sistemi
VPN gateway Informatici
Master.it 2010
Autore:
Antonio Lepore
http://it.linkedin.com/pub/antonio-lepore/25/884/820

Docenti:
Luca Bechelli
Information Security Specialist
http://www.linkedin.com/in/lucabechelli

Anna Vaccarelli
Istituto di Informatica e Telematica, CNR PISA
http://www.iit.cnr.it/anna.vaccarelli

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

"Without Freedom Of Choice There Is No Creativity.

Without Creativity, There Is No Life."

Captain Kirk - "Star Trek" Classic

Episode " The Return Of The Archons " A 43'

SOMMARI

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

INTRODUZIONE: PERCH IL PROBLEMA DELLA SICUREZZA 5

CHE VUOL DIRE "PERICOLI"? 6

LA SICUREZZA HA UN COSTO 9

COSA CONTRIBUISCE ALLA SICUREZZA INFORMATICA 10

ALGORITMI DI ENCRYPTION PER UNA VPN 13

UNA VPN NELLA PRATICA: 14

I DUE PRINCIPALI TIPI DI VPN 15

SCENARIO ATTUALE E FUTURO 16

REQUISITI E SCELTE DI PROGETTO 18

SSL/TSL OPENVPN 19

NETFILTER, IPTABLES E SHORELINE FIREWALL: SHOREWALL 20

IMPLEMENTAZIONE DELLA SOLUZIONE SCELTA 22

MODIFICHE AL FIREWALL 27

CONFIGURAZIONE CONCLUSA 29

FILES DI CONFIGURAZIONI FINALI SUL CLIENT 30

FILES DI CONFIGURAZIONI FINALI SUL SERVER 33

SHARED STATIC KEY\SEGRETO CONDIVISO 36

STATIC.KEY FILE DI ANONIMO SRL- VPN 37

SVILUPPI FUTURI:HARDENING E CERTIFICATI 38


3

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

BIBLIOGRAFIA, SITOGRAFIA, FILMOGRAFIA (USATA E NON, DA LEGGERE IN FUTURO):39

GLOSSARIO & ACRONIMI (SOLO ALCUNI): 44

LICENZA COPYLEFT: 46

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Introduzione: Perch il problema della sicurezza

Il problema della sicurezza delle reti si diffuso parallelamente alla diffusione di Internet
e dei protocolli da essa utilizzati.

Internet nata come rete accademica:


stata progettata per favorire lacircolazione di
informazioni in modo scarsamente controllato.

Oggi questo non pi possibile perch


attraverso la rete circolano informazioni
confidenziali, di carattere industriale o
coperte da brevetto, interessi economici e
diritto d'autore.

Una particolare interpretazione


del fenomeno
del p2p globale sulla rete di reti
Nei nostri giorni la rete informatica entrata nelle case di molti, utilizzata dalle
societ, dagli Enti pubblici e privati, anche come mezzo per transazioni
commerciali.

http://www.ipligence.com/worldmap/internet-map.jpg

sorto il problema di utilizzare un mezzo affidabile e rispondente alle varie


esigenze private, commerciali pubbliche e governative.
Oggi questo rischio esiste ancora ed amplificato dalla diffusione dei virus attraverso la
rete, dalle vulnerabilit di software per sistemi operativi desktop dovute alla
scarsa attenzione delle aziende produttrici di software in tema di sicurezza e pi di
recente alle vulnerabilit delle applicazioni web la cui diffusione e fruizione ha ormai
superato quella delle applicazioni desktop (offline) in questa cosidetta era del Web2.0.
5

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Che vuol dire "pericoli"?

Possiamo essere vittima di un virus, che "infetta" il nostro computer e causa


comportamenti anomali di un "attacco" da parte di un CRIMINALE o
MALEINTEZIONATO che, per scopi illeciti, penetra in una rete privata o allinterno di
una workstation aziendale al fine di rubare o manomettere informazioni sensibili o a
modificare i comportamenti della workstation stessa (i.e. Zombie Client & Botnet ).

http://www.yootoo.it/wordpress/2009/02/12/gli-acciacchi-del-web-2-0/

Il rischio delle "intrusioni" o "attacchi" informatici oggi di rilevanza


notevole tanto da poter attribuire alla sicurezza informatica un carattere pervasivo
poich interessa tutti i soggetti civili, militarie governativi ovvero ha un ruolo
cruciale in quella che viene chiamata GLOBAL SECURITY

http://tinyurl.com/3xgetkl http://tinyurl.com/2ws24w3

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Oltre ai rischi sopracitati, un attacco informatico pu scegliere come bersaglio


lutente utilizzatore dellinfrastruttura tecnologica aziendale ovvero il classico
dipendende poco sveglio.

In tal caso si parla di Ingegneria Sociale che prevede il furto di informazioni


sensibili utilizzando linconsapevolezza della vittima e lastuzia e lintelligenza
dellattaccante.

http://www.youtube.com/watch?v=vq0GgZ_gmxU

Ad esempio si pu citare il phising email che utilizza inizialmente tecnologie


informatiche per giungere fino alla vittima ma nel momento dellacquisizione delle
informazioni sensibili sfrutta linconsapevolezza dellutente che incosciamente rivela
allaattaccante informazioni personali o aziendali.

In assenza di tecnologie informatiche lingegnere sociale pu fingersi unaltra


persona e utilizzare semplicemente le sue ottime doti di dialettica e persuasione
(innate o acquisite nel tempo) per convincere la vittima a rivelare informazioni sensibili.

In fine una forma di attacco di ingegneria sociale potrebbe essere quella del furto
economico utilizzando strumenti ludici che portano la vittima ad una dipendenza
continuativa e distruttiva del proprio patrimonio economico e ancor pi grave del
patrimonio economico familiare.

Ad esempio come i siti che offrono o promuovono determinati giochi online.

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

http://tinyurl.com/342bxv8

10

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

E utile in tal senso citare un caso di maxi sequestro avvenuto ad opera della Guardia
di Finanza Italiana

Questa operazione viene descritta come la pi imponente operazione contro il


gioco d'azzardo online mai compiuta dalle forze dell'Ordine italiane con numeri
senz'altro impressionanti:

364 siti web sotto sequestro,


38 perquisizioni,
52 le denunce
tutto attraverso l'attivazione di 31 diverse Procure della Repubblica.

Il tutto merito del GAT (Nucleo Speciale Frodi Telematiche della Guardia di
Finanza.) e soprattutto del comandante il colonnello Umberto Rapetto il
quale spiega: La legge 401/89 vieta questo genere di attivit e, con
l'integrazione della normativa nel 2005, vieta anche la pubblicit a giochi,
scommesse o lotterie che vengono accettate anche all'estero".

http://www.gat.gdf.it/

http://www.oilproject.org/EVENT256

11

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

La sicurezza ha un costo:

In materia di sicurezza aziendale, dopo un evento inaspettato come ad esemio la


perdita o il furto di dati, il costo per ripristinare le informazioni allo precedente
notevole. (SICUREZZA REATTIVA)

Invece il costo per attivare misure di sicurezza sono di diversi ordini inferiori a
quelle per "riparare" quindi anche in materia di sicurezza aziendale rimmane vero il detto
"prevenire e meglio che curare".(SICUREZZA PROATTIVA)

Quali i danni possibili

Il verificarsi di una intrusione o di un attacco pu portare danni di varia entit:

1. una "semplice" perdita di immagine (in alcuni casi anche questo pu essere un danno
grave):

la perdita dellimmagine aziendale rende


immediatamente chiara la vulnerabilit
dei sistemi e d elle tecnologie utilizzate e
linaffidabilit dei servizi offerti

Soluzione:
Rivolgersi ad una agenzia
specializzata in ORM
(Online Reputation Management)

Defacement sito poste italiane 10 ottobre 2009

Esempio (ORM) : Marea nera in Luisiana del giugno del 2010


Parole chiavi: Petrolio & BP (British Petroleum)

2. la manomissione di software e dati e l'accesso a dati personali riservati e servizi di


rete essenziali

12

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Soluzione: Sistemi di protezione perimetrale, sistemi


di rilevamento intrusioni, compartimentazione della
rete aziendale, logging&monitoring, cifratura, e nel
caso specific di questo progetto:

canali di comunicazioni protetti come ad esempio


una VPN (Virtual Private Network)

Monitoraggio Data Center Polo Fibonacci, Pisa

13

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Cosa contribuisce alla sicurezza informatica

I parametri che contribuiscono alla sicurezza di un sistema informatico sono:


1. integrit
2. disponibilit
3. riservatezza (o confidenzialit)
4. identificazione e autenticazione
5. anonimia
6. autorizzazione (o controllo degli accessi)
7. non ripudio

Tralasciando i parametri di anonimia, autorizzazione e non ripudio di definisce:

1) Integrit
la certezza che le informazioni inserite, elaborate, trasmesse e custodite sono integre cio
esenti da manomissioni o alterazioni, volontarie o involontarie, e che su tale integrit
possono fare affidamento tutti coloro (utenti o programmi) che le utilizzano per lo
svolgimento dei compiti assegnati.

2) Riservatezza o confidenzialit
Linformazione rilasciata soltanto a soggetti che sono autorizzati a conoscerla
Riservatezza (Privacy): il diritto di un individuo di decidere quando, che cosa, perch e chi
pu gestire la sua informazione personale.

Per garantire la riservatezza di un sistema informativo necessario:


definire i livelli di confidenzialit delle informazioni
definire i profili degli utilizzatori che possano avere accesso alle informazioni, in maniera
coerente alla definizione dei livelli di confidenzialit
stabilire le modalit di accesso degli utenti autorizzati
proteggere le informazioni contenute nei sistemi contro letture non autorizzate,
accidentali o dolose

3) Identificazione e autenticazione
L'autenticazione sia di utenti sia di macchine consiste nel verificare che essi siano veramente
chi dichiarano di essere. In genere l'identificazione avviene sulla base
di ci che uno (p.es. parametri biometrici,come la voce, la scrittura o l'impronta
digitale)
di ci che uno sa (un password, un PIN o una chiave cifrata)
di ci che uno ha (una smart cart, un gettone, o una carta di credito)

14

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Una volta stabilita la politica di sicurezza e i privilegi da assegnare a singoli utenti o a


categorie di utenti (sia persone, sia server, sia processi) bisogna fare in modo che l'accesso
alle risorse sia consentito in base ai privilegi assegnati.

4) Disponibilit:
la capacit di fornire agli utenti in ogni momento utile le informazioni inserite in
un sistema informatico, elaborate e custodite nel formato adatto allo scopo per il quale esse
sono state memorizzate.
Esse devono essere accedute nei tempi e nei modi previsti.
anche la capacit di un sistema di soddisfare i requisiti di sicurezza nonostante il
malfunzionamento di un componente o la violazione accidentale e non - di uno dei requisiti
(robustezza dei componenti).
La disponibilit riguarda anche servizi (telematici) erogati.

In una sola parola la necessit di avere ridondanza definit in ambito tecnologico (e non)
come laggiunta di parti, software & hardware, duplicate e sovrabbondanti per aumentare
l'affidabilit.

Segnaletica ridondante (Protezione Fisica)


Web Server Redundancy (Disponibilit del Cnr Pisa Piano Terra, Edificio 4,
servizio) Vicinanze aula corsi Master in Tecnologie
in caso di attacco di tipo "denial of service Internet

15

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Schema logico di un array di HD ridondanti in


configurazione RAID 5 con controllo di parit
esteso su 4 dischi
(Integrit dei dati e recovery dopo un
hardware fault, lo spostamento\rimozione di Network Rendundancy (Nodi & Link)
un disco dallarray per la turnazione dei nel Hierarchical Network Model
dischi o lavvicinamento al 'MTBF) (Cisco Guidelines & Best Practices )

16

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Nel caso specifico di una VPN, per una comunicazione TCP\IP, si possono garantire i
parametri di:

1. Integrit
Garantire che i dati trasmessi da un end-point della vpn arrivino a destinazione
completi e non compromessi

2. riservatezza o confidenzialit dei dati mediante encryption del traffico di rete


per evitare lo sniffing e snooping dei dati in transito (comprese eventuali
password) e la successiva divulgazione non autorizzata da parte di individui
maleintenzionati.
Questo particolarmente importante quando la comunicazione attraversa la rete
Internet pubblica.

3. autententicazione
garantire che entrambi gli end-point della VPN effettuino una mutua
autenticazione prima di instaurare una VPN sicura e quindi iniziare il trasferimento
dei dati sensibili.

4. Disponibilit:
99,99% Uptime dichiato nello SLA (Service Level Agreement) come garanzia di un
servizio sempre online e quindi disponibile 365 giorni allanno con un downtime
dichiarato nel peggiore dei casi inferiore ad un determinate intervallo di tempo
(minuti, ore, giorni).

17

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Algoritmi di Encryption per una VPN

Immagine con Copyright Cisco

1) Algoritmo Simmetrico: una sola chiave privata (shared Key\secret) da scambiare tra i
due end point della VPN attraverso un canale sicuro ssh per mezzo dellapplicazione
scp
scp (Secure Copy) protocollo implementato da una applicazione per spostare la
chiave
ssh (Secure Shell) protocollo per stabilire una sessione remota cifrata ad interfaccia
a riga di commando
2) Algoritmo Asimmetrico: due chiavi pubblica e private: Ad esempio in IPSec la chiave
asimmetrica viene utilizzata per negoziare una chiave simmetrica, con cui i dati in transito
vengono effettivamente cifrati.
La chiave asimmetrica garantisce la possibilit di creare una connessione cifrata
su un canale insicuro (rete internet pubblica), e consentire quindi il successivo
scambio di una chiave simmetrica.
Questultima pi efficace per una cifratura continua, e la chiave viene
rinegoziata ogni tot secondi di funzionamento (o tot dati transitati nel tunnel); in tal
modo si evita la possibilit che qualcuno, analizzando il traffico, cerchi di calcolarne
la chiave in tempo utile.
18

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

19

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Una VPN nella pratica:

Una VPN una rete privata creata sfruttando le potenzialit della rete pubblica,
permette di connettere fra di loro diverse sedi aziendali senza cavi, si parla
soprattutto di Reti Private Virtuali su Internet. La realizzazione di una VPN consente
alle imprese di rivoluzionare il modo in cui operano. Possono rendere pi efficienti le
attuali procedure aziendali e facilitare nuove modalit di lavoro.

Le reti VPN possono migliorare la competitivit , il successo commerciale e


ridurre sensibilmente i costi. Quando si adotta una tecnologia innovativa necessario
essere adeguatamente informati per poter prendere le decisioni pi appropriate.

Le Reti Private Virtuali (VPN) permettono alle organizzazioni di estendere in


sicurezza le proprie LAN attraverso Internet, criptando il traffico dei dati.

Attraverso la progettazione di una VPN si crea una infrastruttura ideale e si


fornisce un metodo sicuro per lo scambio di dati e risorse di rete tra impiegati, partner,
fornitori e associati. In funzione alla tecnologia disponibile in loco, possibile utilizzare
per questo tipo di collegamento linee ISDN, ADSL, Frame Relay ecc...

20

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

I due principali tipi di VPN

1) Site-to-site VPNs:

In questa topologia si collegano tra di loro due reti locali remote (sites), ad
esempio, si pu collegare la rete di una filiale alla rete della sede centrale di una
societ.
Oppure due sedi remote di due filiali o semplici uffici (Office 1 e Office 2)

Vantaggi
Economicit
Buon livello di crittografia dei dati

Svantaggi

Numero di limitato di sites remoti


Overhead del link dovuto alla crittografia dei dati che ne impedisce la completa
utilizzazione per il trasporto dei dati utente
La perdit di conettivit su un site fa cadare lintera VPN

2) Remote Access VPN

In questa topologia lutente remoto ha accesso alla vpn da qualsiasi punto della rete
pubblica Internet verso il site central (office). Diversamente dalla precedente sono
supportati utenti multipli (clients della vpn) i quali accedono anche contemporaneamente
alle risorse del site centrale.
Su ogni macchina dellutente remoto presente un software che si occupa di creare il
tunnel e fornire un metodo per autenticare i singoli utenti.

Vantaggi
21

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Economicit
Alto livello di crittografia dei dati
Diversi meccanismi per autenticare gli utenti (OS Login, web-based login, ecc..)

Svantaggi
Perdita del controllo sui dati

22

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Scenario attuale e futuro

Nel case-study che questo progetto vuole illustrare la protagonista lazienda Anonimo
SRL che possiede attualmente un accesso ad internet per mezzo di un provider che, per
accordo contrattuale, non ha fornito un indirizzo IPv4 pubblico allazienda.

Tale contratto fornisce attualmente

un collegamento in fibra ottica dalla sede della Anonimo SRL verso internet
3 indirizzi IPv4 privati di Classe A (30.X.X.1 30.X.X.3) allinterno della rete del
provider
I 3 indirizzi IP (30.X.X.1 30.X.X.3) sono quindi nattati (Address Traslation o
Nat) allinterno della rete del provider e non visibili (accedibili) dal resto della rete
internet

23

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

La Anonimo SRL ha invece la necessit di permettere laccesso alle sue risorse IT anche
dallesterno della rete privata del provider e a tal proposito ha vagliato le seguenti
ipotesi:

1) Acquisto di un indirizzo IPv4 pubblico dal provider


2) Cambio del provider
3) Installazione di una VPN utilizzando un IPv4 Pubblico fornito da un collaboratore esterno
della Anonimo SRL

Dopo aver scartato la prima ipotesi per ragioni economiche e la seconda ipotesi per
ragioni burrocratiche ha considerato pi ragionevole e immediata la terza
soluzione.

La topologia della rete che ver utilizzata in futuro sar quindi cosi mutata:

24

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Requisiti e scelte di progetto

La Anonimo SRL ha individuato i seguenti requisiti per permettere laccesso alle sue
risorse interne da un utente remoto:

1) Velocit e semplicit di installazione della VPN


LAnonimo Srl ha cosiderato diverse topologie di VPN e vari livelli di sicurezza che
le diverse topologie possono offrire.

In base a questa analisi ha considerato di manterenere un BASSO LIVELLO di


Sicurezza per permettere allamministratore di rete di installare il pi
velocemente possibile la VPN.

2) Economicit
LAnonimo SRL ha considerato lutilizzo di una VPN implementata via software e
senza supporti hardware in modo tale da escludere lacquisto di ulteriori
device di rete e di acquistare supporto esterno per linstallazione e la
configurazione di tali device.

La soluzione software scelta stata quella di OPENVPN in quanto software


opensource di ottimo livello con molteplici possibilit di configurazioni.

3) Riutilizzo di risorse presistenti e competenze presenti nel gruppo di lavoro della Anonimo
SRL
LAnonimo SRL in base alle scelte precedenti ha deciso di installare il software
OPENVPN sulla macchina server gi in possesso per i seguenti motivi:

OPENVPN un software multipiattaforma e quindi pu funzionare sul sistema


operativo DEBIAN (GNU\LINUX) preinstallato sul server generico.

Oltre al sistema operativo, OPENVPN potr funzionare con il firewall


preinstallato sul server generico quale SHOREWALL.

Lamministratore di rete possiede gi competenze di base in grado di


realizzare il progetto e pu utilizzare la documentazione gratuita presente
sul sito del software OPENVPN senza richiedere allAnonimo SRL lacquisto
di ulteriore manualistica o di frequentare corsi di formazione o
certificazioni per lutilizzo di device di rete con sistemi operativi
proprietari.

25

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

SSL/TSL OPENVPN

SSL/TSL la soluzione su cui basato OpenVPN, un software completamente


opensource che ci permette in maniera molto semplice di creare una VPN con tipologia
client-to-client, gateway-to-client o gateway-to-gateway.

La peculiarit di OpenVPN che esso non va a incidere sul funzionamento del


sistema operativo. Infatti OpenVPN fa uso delle diverse soluzioni per il networking messe
a disposizione dal sistema operativo stesso. OpenVPN esiste per quasi tutte le
piattaforme esistenti e si integra perfettamente col sistema.

Per poterlo utilizzare sotto Windows, e sufficiente scaricare e installare il


pacchetto applicativo munito dellapposito installer il quale crea una scheda di rete
virtuale e installa tutti i pacchetti virtuali per il corretto funzionamento del software.

Su sistemi operativi GNU\Linux necessario che siano presenti i moduli per le


periferiche Tun/Tap e i moduli per il bridging se si vuole optare per una configurazione
che fa uso dellEthernet Bridging.

Lo stesso pacchetto applicativo pu funzionare sia da Server che da Client.

La differenza risiede nella configurazione che a seconda di come fatta fa


funzionare OpenVPN da server o da client. OpenVPN usa i device TUN/TAP che sono
interfacce virtuali che permettono ai programmi in user-space di scambiarsi pacchetti,
tale pacchetti vengono per prima criptati.

La scelta del tipo di device (TUN o TAP) da utilizzare dipenda da che tipo di infrastruttura
si vuole realizzare.

26

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Con il device Tun si crea una connessione punto-punto fra il client ed il


server, e come se i due fossero connessi attraverso uninterfaccia ppp, in questo caso
OpenVPN interviene a livello IP.

Con il device TAP viene creata uninterfaccia di rete virtuale simile ad una
interfaccia ethernet che trasporta frame ethernet e quindi in questo caso OpenVPN
interverr a livello 2, sui frame.

27

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Netfilter, iptables e Shoreline Firewall: Shorewall

netfilter un componente del kernel del sistema operativo Linux, che permette
l'intercettazione e la manipolazione dei pacchetti che attraversano il computer. Netfilter
permette di realizzare alcune funzionalit di rete avanzate come la realizzazione di
firewall basata sul filtraggio stateful
(filtraggio dei pacchetti con status) dei
pacchetti o configurazioni anche
complesse di NAT, un sistema di
traduzione automatica degli indirizzi IP, tra
cui la condivisione di un'unica
connessione Internet tra diversi
computer di una rete locale, o ancora la
manipolazione dei pacchetti in transito.

Per configurare netfilter si usa il


programma iptables, che permette di definire le regole per i filtri di rete e il
reindirizzamento NAT.

Netfilter Packet filtering


process (Copyright IBM)

Spesso con il termine iptables ci si riferisce all'intera infrastruttura, incluso


netfilter.

netfilter un componente standard di tutte le moderne distribuzioni di Linux. Esso


fu introdotto nella versione principale del sistema operativo nel marzo del 2000,
durante lo sviluppo della versione 2.4. Nella versione 2.2 si usava un sistema alternativo
denominato ipchains, che a sua volta sostitu il sistema ipfwadm, usato nella versione
2.0.
netfilter permette di realizzare dei veri e propri router basati su Linux, ma
trova anche applicazione in comuni calcolatori che hanno due interfaccie di rete e
inoltrano pacchetti da un'interfaccia ad un'altra.

In questo secondo caso viene utilizzato soprattutto come gateway di reti di piccole e
medie dimensioni

Shorewall (Shoreline Firewall) un firewall software con licenza open source


creato sopra il sistema Netfilter (iptables/ipchains) del kernel di Linux, per
semplificare la gestione di complesse configurazioni di rete.

28

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Usando un'analogia comprensibile ai programmatori:

Shorewall sta a iptables, come il linguaggio C sta all'assembly.

Questo tipo di strumenti permette di specificare regole di firewalling ad un livello


d'astrazione pi elevato di quello offerto da un semplice shell script iptables,
utilizzando un linguaggio spesso vicino al modo in cui si definisce la politica di
firewalling.

Shorewall viene configurato attraverso un insieme di file di configurazione di


testo semplice e non possiede un'interfaccia grafica mentre un'utilit di
monitoraggio della rete, compresa nel pacchetto di Shorewall, pu essere usata per
controllare lo stato del sistema in funzione o aiutare durante la fase di collaudo.

Shorewall viene usato principalmente nelle installazioni di reti (piuttosto che


nell'uso come firewall personale), dato che le sue caratteristiche peculiari lo rendono
molto potente nella gestione delle "zone", come quelle presenti nelle DMZ o nelle reti
complesse.

Ogni zona possiede regole differenti che possono essere, per esempio, pi lasche
per il traffico all'interno della intranet aziendale, e contemporaneamente pi
stringenti per il traffico proveniente da Internet, ottenendo una maggiore
sicurezza senza avere penalit nel funzionamento dei nodi.

I file di configurazione in formato testo sono, di norma, ben commentati e


semplici da usare, malgrado Shorewall sia relativamente pi complesso da utilizzare
per i nuovi utenti di altri sistemi di firewall dotati di interfaccia utente grafica.

29

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Implementazione della soluzione scelta

In base alle scelte di progetto si deciso di seguire la configurazione suggerita dallo

Static Key Mini-HOWTO

presente nella documentazione gratuita del sito http://openvpn.net ampliando e


modificando le configurazioni suggerite per soddisfare le necessit della Anonimo SRL
e risolvere alcuni limiti di questo tipo di configurazione.

http://openvpn.net/index.php/open-source/documentation/miscellaneous/78-static-key-
mini-howto.html

Static key configurations offer the simplest setup, and are ideal for point-to-point VPNs or proof-of-
concept testing.

Static Key advantages

Simple Setup
No X509 PKI (Public Key Infrastructure) to maintain

Static Key disadvantages

Limited scalability -- one client, one server


Lack of perfect forward secrecy -- key compromise results in total disclosure of previous sessions
Secret key must exist in plaintext form on each VPN peer
Secret key must be exchanged using a pre-existing secure channel

Scenario:

Server VPN: GW_PUBB con


o IpV4 pubbblico statico: 193.X.X.X
o IP Server VPN: 10.8.0.2
Client VPN: GW_ANON
o con Ipv4 locale statico privato: 30.X.X.X
o IP Client VPN: 10.8.0.1
Lamministratore di sistema si trova sulla macchina client ed effettua la configurazione
via SSH sul GW_PUBB

30

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Sul Server:

# apt-get install openvpn


# cd /etc/openvpn/
# mkdir GW_PUB-GW_ANON
# cd GW_PUB-GW_ANON /
# touch GW_PUB-GW_ANON_server.conf
# ln -s GW_PUB-GW_ANON_server.conf /etc/openvpn/serverGW_PUB-GW_ANON.conf
Questo ultimo passaggio stato effettuato perch di default openvpn fa partire le .conf
presenti in /etc/openvpn

Sul Client

# apt-get install openvpn


# cd /etc/openvpn/
# mkdir GW_PUB-GW_ANON
# cd GW_PUB-GW_ANON /
# touch GW_PUB-GW_ANON_client.conf
# ln -s GW_PUB-GW_ANON_client.conf /etc/openvpn/clientGW_PUB-GW_ANON.conf
Questo ultimo passaggio stato effettuato perch di default openvpn fa partire le .conf
presenti in /etc/openvpn

Generare la chiave (segreto condiviso) sul client della VPN (GW_ANON)

# openvpn --genkey --secret static.key


Inviare tramite scp la chiave al server con ip pubblico statico

# scp -P 2828 static.key admin@193.204.186.18

e posizionarla nella stessa directory della conf ( /etc/openvpn/GW_PUB-GW_ANON)

Caricare il modulo tun sul client e sul server

# modprobe tun

e permette l'avvio automatico del modulo al boot

# echo 'tun' >> /etc/modules

31

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Scrivere la conf sul server della VPN (GW_PUB)

# nano GW_PUB-GW_ANON_server.conf

File: GW_PUB-GW_ANON_server.conf (CON STATIC KEY)


###############################################################################
dev tun
lport 1194
proto udp
ifconfig 10.8.0.1 10.8.0.2
secret /etc/openvpn/static.key
keepalive 10 60
comp-lzo
ping-timer-rem
persist-tun
persist-key
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 4
###############################################################################

Scrivere la conf sul client della VPN (GW_Anon)

# nano GW_PUB-GW_ANON_client.conf

File: GW_PUB-GW_ANON_client.conf (CON STATIC KEY)


###############################################################################
remote 193.204.186.18
dev tun
rport 1194
proto udp
ifconfig 10.8.0.2 10.8.0.1
secret /etc/openvpn/static.key
keepalive 10 60
comp-lzo
ping-timer-rem
persist-tun
persist-key
verb 4
###############################################################################

Disattivare temporaneamente il firewall shorewall sul client e sul server della


VPN
32

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

# shorewall clear

Clearing Shorewall...
IP Forwarding Enabled
done.

33

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Avviare il servizio prima sul server e poi sul client della VPN

# /etc/init.d/openvpn restart

Stopping virtual private network daemon:.


Starting virtual private network daemon: serverGW_PUB-GW_ANON_client (OK).

# /etc/init.d/openvpn restart

Stopping virtual private network daemon:.


Starting virtual private network daemon: clientGW_PUB-GW_ANON_client (OK).

Verificare la tun0 sul client

# ifconfig tun0

tun0 Link encap:UNSPEC


HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.2 P-t-P:10.8.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

e sul server

# ifconfig tun0

tun0 Link encap:UNSPEC


HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Verificare la comunicazione attraverso


Server: 10.8.0.1
Client: 10.8.0.2

34

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Comunicazione Server -> CLient (Internet -> LAN)

# ping 10.8.0.2
PING 10.8.0.2 (10.8.0.2) 56(84) bytes of data.
64 bytes from 10.8.0.2: icmp_seq=1 ttl=64 time=29.2 ms

35

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Comunicazione Client -> Server (Rete locale -> LAN)

# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=30.2 ms

Avvio automatico insieme al sistema e refresh dello status file

# nano /etc/default/openvpn
# update-rc.d openvpn defaults

Per toglierlo dall'avvio automatico

# update-rc.d -f openvpn remove

Monitorizzazione stato vpn

Client VPN (GW_ANON):


# watch less /var/run/openvpn.clientUdutunGabriGw.status
Server VPN (GW_PUB):
# watch less /var/run/openvpn.serverUdutunGabriGw.status

Riattivare shorewall sul client e sul server

# shorewall restart

Compiling...
Initializing...
...
Activating Rules...
done.

36

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Modifiche al firewall

Di seguito sono riportate le modifiche al firewall (SHOREWALL) sia sul Server VPN che
sul Client VPN

Tali modifiche rendono possibile linteroperabilit tra il software OPENVPN e SHOREWALL


tramite la configurazione dei file
o masq
o zone
o interfaces
o policy
o tunnels

VPN, Netfilter and Shorewall The Basics


http://shorewall.net/VPNBasics.html

sul Client e sul Server

# nano /etc/shorewall/zones

#ZONE TYPE OPTIONS IN OUT


# OPTIONS OPTIONS
vpn1 ipv4

# nano /etc/shorewall/interfaces

#ZONE INTERFACE BROADCAST OPTIONS


vpn1 tun0

sul client vengono definite 3 zone:

firewall (Anonimo SRL Gateway): $FW


vpn1: (tunnel tra I due sites)
lan (di Anonimo SRL): loc

# nano /etc/shorewall/policy

#SOURCE DEST POLICY LOG LEVEL


$FW vpn1 ACCEPT info
vpn1 $FW ACCEPT info
loc vpn1 ACCEPT info
37

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

vpn1 loc ACCEPT info


all all REJECT info

38

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

sul server vegono definite 2 zone:

firewall (Gateway con IPv4 Pubblico)


vpn1 (tunnel tra I due sites)

# nano /etc/shorewall/policy

#SOURCE DEST POLICY LOG LEVEL


$FW vpn1 ACCEPT info
vpn1 $FW ACCEPT info

sempre sul server

# nano /etc/shorewall/tunnels

#TYPE ZONE GATEWAY GATEWAY ZONE


openvpnserver:1194 net 0.0.0.0/0

sul client

# nano /etc/shorewall/tunnels

#TYPE ZONE GATEWAY GATEWAY ZONE


openvpnclient:1194 net 0.0.0.0/0

sul client
# nano /etc/shorewall/tunnels

#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC


eth3 eth4
tun0:10.8.0.1 0.0.0.0/0

sul server

# nano /etc/shorewall/tunnels

#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC


tun0:10.8.0.2 0.0.0.0/0

39

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Configurazione conclusa

Riavviare shorewall e openvpn: prima sul server e poi sul client


Testare il funzionamento delle rotte

Sul client
# ip route ls

10.8.0.1 dev tun0 proto kernel scope link src 10.8.0.2


30.X.X.0/24 dev eth3 proto kernel scope link src 31.X.X.X
192.X.X.0/24 dev eth4 proto kernel scope link src 192.X.X.1
default via 30.X.X.1 dev eth3

Sul server

# ip route ls

10.8.0.4 dev tun1 proto kernel scope link src 10.8.0.3


10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
193.X.X.X/28 dev eth0 proto kernel scope link src 193.X.X.18
default via 193.X.X.17 dev eth0

40

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Files di Configurazioni finali sul Client

#File: masq (fondamentale per far tornare i pacchetti indietro sulla vpn)
###############################################################################
#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
eth1 eth0
tun0:10.8.0.1 0.0.0.0/0
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE

#File: zones
###############################################################################
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
loc ipv4
vpn1 ipv4
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE

File: interfaces
###############################################################################
net eth1 detect dhcp,tcpflags,routefilter,nosmurfs,logmartians
#routeback
loc eth0 detect tcpflags,detectnets,nosmurfs
# openvpn interfaces
vpn1 tun0
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

File: policy
###############################################################################
# permetti tutto il traffico da lan a internet
loc net ACCEPT
# permetti tutto il traffico da lan al server
loc $FW ACCEPT
# chiudi tutto il resto
loc all REJECT info
# permetti dal server a internet
$FW net ACCEPT
# permetti dal server alla lan
$FW loc ACCEPT
# chiudi tutto il resto
$FW all REJECT info

### Policies for traffic originating from the Internet zone (net)
#
net $FW DROP info
net loc DROP info
net all DROP info
41

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

#*** OpenVpn
$FW vpn1 ACCEPT info
vpn1 $FW ACCEPT info
loc vpn1 ACCEPT info
vpn1 loc ACCEPT info
# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE

42

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

File: tunnels
###############################################################################
#Apri tunnel openvpn su porta standard 1194/udp
openvpnclient:1194 net 0.0.0.0/0
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

File: rules
################################################################################
#*** SSH ***#
#*** Esempio macro su porta 22 standard
#SSH/ACCEPT net $FW
#SSH Anon_GW su porta non standard 3030
ACCEPT net $FW tcp 3030
ACCEPT net $FW udp 3030

#*** PING & ICMP permesso dalla rete locale definito nelle policy***#
#Ping/ACCEPT loc $FW
#*** PING & ICMP permesso dalla rete esterna ***#
Ping/ACCEPT net $FW
#Sftp (SSH File Transfer Protocol) GW_Anon su porta non standard 3131
ACCEPT net $FW tcp 3131
ACCEPT net $FW udp 3131

#SFTP\SSH su FILE SERVER INTERNO ALLA LAN della Anonimo SRL


# su porta non standard 3333 allesterno (standard 22 allinterno)
DNAT net loc:192.X.X.X:22 tcp 3333

#*** WEB ***#


#*** Web con macro su porta standard 80 su GW_ANON
HTTP/ACCEPT net $FW

#Permette laccesso dallesterno della VPN


# allinterno della lan di Anonimo SRL
DNAT vpn1 loc:192.X.X.133:83 tcp 183

#*** VNC(Virtual Network Computing) ***#


#*** Permette il controllo remoto del FILE SERVER su porta non standard 15903
# interno alla LAN della AnonimoSRL dallesterno della vpn
DNAT vpn1 loc:192.168.30.133:5900 tcp 15903
#
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

43

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

#File: shorewall.conf (client)


###############################################################################
STARTUP_ENABLED=Yes
VERBOSITY=1
LOGFILE=/var/log/messages
LOGFORMAT="Shorewall:%s:%s:"
LOGTAGONLY=No
LOGRATE=
LOGBURST=
LOGALLNEW=
BLACKLIST_LOGLEVEL=
MACLIST_LOG_LEVEL=info
TCP_FLAGS_LOG_LEVEL=info
RFC1918_LOG_LEVEL=info
SMURF_LOG_LEVEL=info
LOG_MARTIANS=No
IPTABLES=
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
SHOREWALL_SHELL=/bin/sh
SUBSYSLOCK=""
MODULESDIR=
CONFIG_PATH=/etc/shorewall:/usr/share/shorewall
RESTOREFILE=
IPSECFILE=zones
IP_FORWARDIN=On
ADD_IP_ALIASES=Yes
ADD_SNAT_ALIASES=No
RETAIN_ALIASES=No
TC_ENABLED=Internal
TC_EXPERT=No
CLEAR_TC=Yes
MARK_IN_FORWARD_CHAIN=No
CLAMPMSS=No
ROUTE_FILTER=Yes
DETECT_DNAT_IPADDRS=No
MUTEX_TIMEOUT=60
ADMINISABSENTMINDED=Yes
BLACKLISTNEWONLY=Yes
DELAYBLACKLISTLOAD=No
MODULE_SUFFIX=
DISABLE_IPV6=Yes
BRIDGING=No
DYNAMIC_ZONES=No
PKTTYPE=Yes
RFC1918_STRICT=No
MACLIST_TABLE=filter
MACLIST_TTL=
SAVE_IPSETS=No
MAPOLDACTIONS=No

44

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

FASTACCEPT=Yes
IMPLICIT_CONTINUE=Yes
HIGH_ROUTE_MARKS=No
BLACKLIST_DISPOSITION=DROP
MACLIST_DISPOSITION=REJECT
TCP_FLAGS_DISPOSITION=DROP
###############################################################################

45

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Files di Configurazioni finali sul Server

File: masq (fondamentale per far andare i pacchetti esterni sulla vpn)
###############################################################################
#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
tun0:10.8.0.2 0.0.0.0/0
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE

#File: zones
###############################################################################
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect routefilter,tcpflags,logmartians,nosmurfs
vpn1 tun0
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

File: interfaces
###############################################################################

Missing

#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

File: policy
###############################################################################
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
$FW net ACCEPT
net $FW DROP info
net all DROP info

$FW vpn1 ACCEPT info


vpn1 $FW ACCEPT info

# The FOLLOWING POLICY MUST BE LAST


all all REJECT info
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE

File: tunnels
###############################################################################
#TYPE ZONE GATEWAY GATEWAY
# ZONE
#Apri tunnel openvpn su porta standard 1194/udp
openvpnserver:1194 net 0.0.0.0/0
openvpnserver:1195 net 0.0.0.0/0
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

46

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

File: rules
#################################################################################
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL
RATE USER/
# PORT PORT(S) DEST LIMIT
GROUP

#*** PING & ICMP ***#


# Reject Ping from the "bad" net zone.. and prevent your log from being flooded..
Ping/ACCEPT net $FW
# Permit all ICMP traffic FROM the firewall TO the net zone
ACCEPT $FW net icmp

#*** SSH ***#


# Accesso ssh dall'esterno sulla 1414 non stndrd
ACCEPT net $FW tcp 1818
ACCEPT net $FW udp 1818

#*** FORWARD VPN TO LAN Anonimo SRL ***#


#*** SSH su porta non standard 3030 del client della VPN (GW_Anon)
# dall esterno (internet pubb.)
DNAT net vpn1:10.8.0.2:3030 tcp 13030

#*** VNC(Virtual Network Computing)***#


# Permette il controllo remoto del FILE SERVER su porta non standard 15903
# dalla rete internet pubblica allinterno della rete lan della Anonimo SRL
DNAT net vpn1:10.8.0.2:15903 tcp 15903

#*** WEB ***#


# Permette laccesso al web server dalla rete pubblica internet allinterno allinterno #
della rete lan della Anonimo SRL su porta standard allesterno 80 verso la porta non
# standard allinterno della vpn
DNAT net vpn1:10.8.0.2:183 tcp 80

#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

47

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

File: shorewall.conf (server)


###############################################################################
STARTUP_ENABLED=Yes
VERBOSITY=1
LOGFILE=/var/log/shorewall_log
LOGFORMAT="Shorewall:%s:%s:"
LOGTAGONLY=No
LOGRATE=
LOGBURST=
LOGALLNEW=
BLACKLIST_LOGLEVEL=
MACLIST_LOG_LEVEL=info
TCP_FLAGS_LOG_LEVEL=info
RFC1918_LOG_LEVEL=info
SMURF_LOG_LEVEL=info
LOG_MARTIANS=Yes
IPTABLES=
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
SHOREWALL_SHELL=/bin/sh
SUBSYSLOCK=""
MODULESDIR=
CONFIG_PATH=/etc/shorewall:/usr/share/shorewall
RESTOREFILE=
IPSECFILE=zones
IP_FORWARDING=On
ADD_IP_ALIASES=Yes
ADD_SNAT_ALIASES=No
RETAIN_ALIASES=No
TC_ENABLED=Internal
TC_EXPERT=No
CLEAR_TC=Yes
MARK_IN_FORWARD_CHAIN=No
CLAMPMSS=No
ROUTE_FILTER=Yes
DETECT_DNAT_IPADDRS=No
MUTEX_TIMEOUT=60
ADMINISABSENTMINDED=Yes
BLACKLISTNEWONLY=Yes
DELAYBLACKLISTLOAD=No
MODULE_SUFFIX=
DISABLE_IPV6=Yes
BRIDGING=No
DYNAMIC_ZONES=No
PKTTYPE=Yes
RFC1918_STRICT=No
MACLIST_TABLE=filter
MACLIST_TTL=
SAVE_IPSETS=No
MAPOLDACTIONS=No

48

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

FASTACCEPT=No
IMPLICIT_CONTINUE=Yes
HIGH_ROUTE_MARKS=No
BLACKLIST_DISPOSITION=DROP
MACLIST_DISPOSITION=REJECT
TCP_FLAGS_DISPOSITION=DROP
###############################################################################

49

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Shared Static Key\Segreto condiviso

La shared Key di OpenVPN facilit la configurazione della vpn rispetto alla modalit con
certificati digitali ma presenta i seguenti svantaggi:

Il segreto condiviso non viene rinnovato


Il segreto condiviso deve essere trasportato in maniera sicura tra lle due parti.
Il peer della VPN non sono autenticati.

La chiave di OpenVpn composta da caratteri hesadecimali ed divisa in quattro parti:

La prima parte usata come chiave per cifrare I dati

La seconda parte usata come chiave per lalgoritmo di hash. Di default si usa la stessa chiave
per cifrare e decifrare dati, applicando lo stesso principio alla base degli algoritmi di Hash

La terza e la quarta parte usata nel caso si desideri

una cifratura differente ottenuta con la chiave della prima parte


una decifratura differente ottenuta con la chiave della terza parte
una chiave differente per lhash sui dati in uscita
una chiave differente per lhash sui dati in entrata

Bisogna fare attenzione a non confondere la chiave di OPENVPN (composta da 512 caratteri in
esadecimale) con la chiave usata per lalgoritmo che effettua la fuzione di hash e cifratura per
proteggere il tunnel.

Questa seconda chiave sempre composta da caratteri in esadecimale ma interna alla stessa
chiave di OpenVPN

50

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

DI default viene utilizzato lalgoritmo di crittografia Blowfish con una chiave a 128 bits per cifrare e
decifrare e 160 bits sono usati per lalgorito di Hash sui dati in ingresso e uscita.

Ogni carattere in esadecimale rappresenta 4 bits del key meaning di cui 128 e 160 bits
rappresentano rispettivamente 32(128/4) e 40(160/4) caratteri esadecimali.

51

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Static.key file di Anonimo SRL- VPN

-----BEGIN RSA PRIVATE KEY-----


MIICXAIBAAKBgQC3fiiE6RgVdx5kiXS8DNootpBsCuOQ3ZfzWc8QFZB9SEHY+fzN
etH4zFwVF2iArO9/GEy2t4NaGzNG5Lu2dHtYFXMHG/sGRORjNYf07xNzTH0qoNL6
AjRTQGl76pPsL5cnCk3pWLTZalplCoi+AnFJUp5dz8yikP11G6rsQ6kSYwIDAQAB
AoGACtOz2lvSovmbXn1J2Qq9GKflD6r40IRywdYrxJwxIWNRF1dw1kMH/rE4QbpW
3TjXDN3HMQTVCE0Qkn9OoC5xVKCjlxhSBOYvOuYSZ98y02ZJrkCjzthHymycRJY2
cy3TxOCkl8TefdeeOOws08weTDZme3j3wlN0dncPxcZ1MYECQQDZHY4Xptu1oD1Z
0XuGeSapugRVOxija9Vh3LBnkkPtjvn9UIlVCYXFS43yK+iBOn1joaWAB7f050GG
hn9vQQJBAkEA2FsNHWlWClNeX8OV9677EYL3AaR+IPmy3rPoJSF5XoB7q6SSbda1
Jt/NNHLQixJdMu4IHtTJCBMpWlcDfQXjowJAHGGfrHnUaLasrmwS4K4/nppBbL7P
5rT27NcDfFaDaK9zAGkhuqsHAJZy1MBmoVX7BCYiU00u/+WnDCXSzMFLwQJBAJzN
0MGCOHOfXIS3chdi4GAetPqhxzALCNJTPWq7ygTtxbPuwJmOxRf5l/XtSKuikZ15
2rTNry2FBbGN4t9Xx1UCQGSbE//qE6rQzujUj5DX+kiethi9IyVXUi42U9T36PHT
LRnPYYxPvjQwlTk1c+FHNb78QfQrGqOtMCR1yGUpJNQ=
-----END RSA PRIVATE KEY-----

52

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Sviluppi futuri:hardening e certificati

Effettuare un hardening" della sicurezza dellattuale VPN

http://openvpn.net/index.php/open-source/documentation/howto.html#security

Una delle massime molto ripetute nella sicurezza delle reti che non si dovrebbe mai
porre tanta fiducia in un componente di sicurezza unico (shared Key) perch il suo
fallimento potrebbe provocare una violazione nella sicurezza alle volte anche catastrofica.

OpenVPN prevede diversi meccanismi per aggiungere ulteriori livelli di sicurezza per
proteggersi da tale rischio, ad esempio tls-auth

La direttiva tls-auth aggiunge una firma HMAC (keyed-hash message authentication


code) supplementare per tutti i pacchetti SSL/TLS di handshake per la verifica
dellintegrit.

Ogni pacchetto UDP che non recano la corretta firma HMAC vengono droppati senza
ulteriore carico di lavoro. La firma tls-auth HMAC fornisce un ulteriore livello di
sicurezza oltre quella fornita da SSL / TLS.

Questo ulteriore livello pu proteggere contro:

Attacco DoS (Denial Of Service) o flooding sulle porte UDP di OPENVPN


Port scanning per determinare quali sono le porte UDP di OPENVPN in stato di
listening
Vulnerabilit da buffer overflow nellimplementazione di SSL/TLS
Linizializzazione del SSL/TLS handshake da parte di macchine non autorizzate

Nella pratica usare tls-auth richieder una nuova shared-secret key usata insieme ai
certificati digitali definiti dallo standard RSA e quindi la modifica dei file di
configurazione sugli end point della VPN

53

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Bibliografia, Sitografia, Filmografia (Usata e non , da leggere in futuro):

Slides dei docenti: Vaccarelli & Bechelli

Christof Paar Jan Pelzl : Understanding Cryptography, A Textbook for Students and
Practitioners, Springer, 2010
Kenneth H. Rosen, Ph.D. : Codes The Guide to Secrecy from Ancient to Modern
Times, Chapman & Hall/CRC, 2005
Steve Burnett and Stephen Paine , RSA Security Official Guide to Cryptography,
McGraw-Hill, - 2001

Star Trek Re-Watch: The Return of the Archons


http://www.theviewscreen.com/the-return-of-the-archons/
Open Web Application Security Project (OWASP)
http://www.owasp.org/index.php/Main_Page
http://www.owasp.org/index.php/Italy
http://www.learncomputer.com/owasp/

Costruire Software Sicuro dalle Fondamenta, Antonio Parata


http://www.sikurezza.org/wiki/Risorse/I08Parata
The Hacker Highschool project
http://www.hackerhighschool.org/
Africa: The 2nd Safest Continent to Surf the Web
http://whiteafrican.com/2010/08/23/africa-the-2nd-safest-continent-to-surf-the-web/
Geographic Distribution of Malware
https://threatstop.wordpress.com/2010/11/17/geographic-distribution-of-malware/
Online reputation management
http://en.wikipedia.org/wiki/Online_reputation_management
ReputationDefender: una suite per migliorare la propria immagine su Internet
http://blog.pmi.it/30/06/2010/reputationdefender-migliora-limmagine-su-internet/
Il sito delle Poste sotto attacco gli hacker(vandali) oscurano la home page
http://tinyurl.com/2ckbkpd
La Bp, i gabbiani della Louisiana e i motori di ricerca: pecunia non olet, anzi
'non oil'
http://tinyurl.com/33hans7
Zombie computer
http://en.wikipedia.org/wiki/Zombie_computer
Botnet
http://en.wikipedia.org/wiki/Botnet
Ingegneria sociale
http://it.wikipedia.org/wiki/Ingegneria_sociale
Freedom Downtime (2001)
http://www.imdb.com/title/tt0309614/
Takedown (2000)
54

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

http://www.imdb.com/title/tt0159784/
I signori della truffa (1992) Sneakers (original title)
http://www.imdb.com/title/tt0105435/
Die Hard - Vivere o morire
http://www.imdb.com/title/tt0337978/
Gli acciacchi del web 2.0
http://www.yootoo.it/wordpress/2009/02/12/gli-acciacchi-del-web-2-0/
Italia, sequestrati 364 siti
http://punto-informatico.it/1489815/PI/News/italia-sequestrati-364-siti.aspx

55

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Progetto Oilproject (be free to learn)


http://www.oilproject.org/

OilProject Canale Youtube


http://www.youtube.com/user/oilproject

ll "peer to peer feeling" alla base di Oilproject, il progetto di e-learning


2.0 di Marco De Rossi.
http://www.youtube.com/watch?v=uSxIf8nYMNo

Oilproject: presentazione di "Internet per il progresso"


http://www.youtube.com/watch?v=MI0qPjQtX04

CISCO CCNA v4.1 Modulo 4/4: Chapter 6 Teleworker Services


http://tinyurl.com/2vrmcfq
National Institute of Standards and Technology (NIST)
http://www.nist.gov
CERT mondiale
http://www.cert.org
CERT-IT
http://security.dsi.unimi.it/
RSA, The Security Division of EMC
http://www.rsa.com
Interlex: Diritto, Tecnologia, Informazione
http://www.interlex.it/
Centro Nazionale per l'Informatica nella Pubblica Amministrazione
http://www.cnipa.gov.it/ oppure
Digit@PA
http://www.digitpa.gov.it
Redundancy
http://en.wikipedia.org/wiki/Redundancy
RAID 5
http://it.wikipedia.org/wiki/RAID#RAID_5
Why RAID 5 stops working in 2009
http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162
Cisco Medical-Grade Network (MGN) 2.0Campus Architecture
http://www.cisco.com/en/US/docs/solutions/Verticals/Healthcare/MGN_Campus.html
Realizzazione di una VPN con OpenVPN
http://www.areanetworking.it/realizzazione-di-una-vpn-con-openvpn.html
Utilizzare protocolli di comunicazione sicuri per evitare di essere spiati
http://www.ilsoftware.it/articoli.asp?id=3796
Uptime e SLA, quali differenze?
http://blog.hostingsolutions.it/217.php
Lab su VPN IPSec
http://www.areanetworking.it/lab-su-vpn-ipsec-2.html
56

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

[SANS] A Multi-Level Defense Against Social Engineering


http://tinyurl.com/25wqa4x
TSCM - Eavesdropping Detection (Controllo del furto delle informazioni su una
comunicazione rubata)
www.spybusters.com
Directory Traversal Attacks (MS IIS Example)
http://www.acunetix.com/websitesecurity/directory-traversal.htm
Multilevel security
http://en.wikipedia.org/wiki/Multilevel_security

Zero-day exploit (Definition)


http://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci955554,00.html
Too many secrets
http://www.ictlex.net/?p=282
Arbitrary code execution
http://en.wikipedia.org/wiki/Arbitrary_code_execution
Shellcode
http://en.wikipedia.org/wiki/Shellcode
Buffer overflow
http://it.wikipedia.org/wiki/Buffer_overflow
Efficient and Effective Buffer Overflow Protection on ARM Processors
https://lirias.kuleuven.be/bitstream/123456789/266377/1/paper.pdf
Google Public DNS Performance and Security
http://tinyurl.com/2uzh2qw
Secure Your Database
http://www.learncomputer.com/secure-your-database/
Undetectable fake ATM keyboard steals PINs in real time
http://www.net-security.org/secworld.php?id=10402
Intrusion detection system
http://it.wikipedia.org/wiki/Intrusion_detection_system
Key-agreement protocol
http://en.wikipedia.org/wiki/Key-agreement_protocol
Cryptographic key types
http://en.wikipedia.org/wiki/Cryptographic_key_types
X.509
http://en.wikipedia.org/wiki/X.509
ITU-T
http://en.wikipedia.org/wiki/ITU-T
Public key infrastructure
http://en.wikipedia.org/wiki/Public_key_infrastructure
Licenza Creative Commons
http://www.creativecommons.it/
Generatore logo licenze:
http://creativecommons.org/choose/
Licenza (informatica)
57

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

http://it.wikipedia.org/wiki/Licenza_%28informatica%29
QR CODE (simbolo in frontespizio)
http://programmazione.it/index.php?entity=eitem&idItem=44826
Gereratori
http://qrcode.kaywa.com/
http://zxing.appspot.com/generator/
Barcode Scanner per Android
http://www.androidzoom.com/android_applications/shopping/barcode-
scanner_clh.html
Libreria: ZXing Barcode Library
http://code.google.com/p/zxing/

58

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Soggetti autorevoli (statistiche e rapporti annuali sulla sicurezza)


ERNST & YOUNG [Rapporto annuale sulla sicurezza]
http://www.ey.com/
SANS (System Administration, Networking and Security)
www.sans.org
Cert.org (Computer Emergency Response Team)
http://www.cert.org/stats/
Computer World
http://www.computerworld.com/
F-Secure
http://www.fsecure.com/en_EMEA/security/worldmap/
Symantec
www.symantec.com
SCP (Secure Copy)
http://it.wikipedia.org/wiki/Secure_copy
25 Even More Sick Linux Commands
http://blog.urfix.com/25-%25E2%2580%2593-sick-linux-commands/
SSH (Secure Shell)
http://it.wikipedia.org/wiki/Secure_shell
Virtual Private Network (VPN)
http://www.onemetric.com.au/vpn.php
Network address translation
http://it.wikipedia.org/wiki/Network_address_translation
Netfilter (componente del kernel GNU\Linux) e iptables (programma per configurare
iptables)
http://it.wikipedia.org/wiki/Netfilter
(SSL\TLS) Secure Sockets Layer\ Transport Layer Security
http://it.wikipedia.org/wiki/Transport_Layer_Security
(SSL) SSL Web Site Basics
http://www.crazy8s.info/wiki/index.php/SSL_Web_Site_Basics
Risorse su SSL (verisign)
https://www.verisign.it/ssl/ssl-information-center/ssl-resources/index.html

Shorewall
http://it.wikipedia.org/wiki/Shorewall
VPN, Netfilter and Shorewall The Basics
http://shorewall.net/VPNBasics.html

/etc/shorewall/tunnels
/usr/share/doc/shorewall/default-config/tunnels
http://shorewall.net/Documentation.htm#Tunnels
Shorewall & OpenVpn
59

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

http://shorewall.net/VPNBasics.html#id2457628
Shorewall 3.x Reference
http://shorewall.net/Documentation.htm
Standalone Firewall
http://shorewall.net/standalone.htm
Shorewall FAQs
http://shorewall.net/FAQ.htm
Shorewall Troubleshooting Guide
http://shorewall.net/troubleshoot.htm

60

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

OpenVpn

/usr/share/doc/openvpn/README.Debian

Examples
http://openvpn.net/examples.html

OpenVPNTM Static Key Mini-HOWTO


http://openvpn.net/static.html

OpenVPN Static Key


http://openmaniak.com/openvpn_static.php
Openvpn generica\avanzata

OpenVPNTM 2.0 HOWTO


http://openvpn.net/howto.html

Introduzione a Metasploit
http://www.pillolhacking.net/2008/11/24/introduzione-a-metasploit/

61

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

Glossario & Acronimi (solo alcuni):

Vulnerabilit (Vulnerability): debolezza di un sistema di sicurezza che pu essere utilizzata


per causare danni
Attacco (Attack): sfruttamento di una vulnerabilit di un sistema
Minaccia (Threat): circostanza che pu causare danni (attacco, disastro naturale, errore
umano, buco software o hardware)
Rischio (Risk): livello di pericolo che si puo ridurre o abbattere ma non annullare del tutto
Difese (Counter-measure):Tecniche o altri strumenti per ridurre le vulnerabilit e resistere
agli attacchi
o autenticazione, controllo accessi, backup, firewall, antivirus
Identificazione/Autenticazione: Identificare I soggetti e verificare le loro affermazioni
Controllo accessi (Access Control): Stabilire a priori lesito di richieste di accesso (si/no) a
risorse sulla base di regole di accesso stabilite (policy)
Controllo (Audit): Tracciare le richieste e gli accessi per determinare a posteriori vere o
tentate intrusioni
Crittografia (Cryptography): Strumenti matematici per implementare alcuni dei servizi di
sicurezza
Snooping (ficcanasare e curiosare): accedere ai dati in transito anche se destinati ad altra
stazione;
Spoofing (beffare): introdurre dati come se provenissero da un'altra stazione;
Sniffing (fiutare): leggere i dati trasmessi dalle altre, incluse le password;
Impostors (impostori): provano a fingersi utenti legittimi;
Shadowing (mettere in ombra) falsificare comunicazioni, ponendosi come un client o un
server falso;
Eavesdropping (ascoltare): osservare i messaggi/le comunicazioni scambiate
Hijacking (dirottare): inserirsi in un protocollo dopo una eventuale fase di autenticazione di
uno dei partecipanti
Virus: un programma capace di "infettare" altri programmi modificandoli in modo da includere
in essi una copia, in alcuni casi evoluta, di se stesso" Fred Cohen (1984)
Macro-Virus: virus che si inseriscono nel codice nei documenti prodotti con i pacchetti di
office-automation microsoft
Malware (malicious software):
o trojan horse (cavallo di Troia)
o worm (verme) e internet worm (backdoor)
o backdoor (uscita di servizio)
Bombe Logiche: Installazione di trojan horse a tempo
Vulnerabilit: Assenza di protezioni standard (firewall,antivirus a livello gateway) o difetti del
software installato o del sistema operativo.
Web Folder Trasversal Vulnerability: With a system vulnerable to Directory Traversal, an
attacker can make use of this vulnerability to step out of the root directory and access other
parts of the file system.
Exploit (Verbo\Azione): Attacco ad un sistema informatico (un server od una serie di server)
approfittando delle carenze di sicurezza del sistema operativo o del software che gestisce i
server o loro funzionalit.

62

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Zero-day exploit/ vulnerability: A zero-day exploit is one that takes advantage of a security
vulnerability on the same day that the vulnerability becomes generally known. There are zero
days between the time the vulnerability is discovered and the first attack.
Arbitrary code execution: In computer security, arbitrary code execution is used to describe
an attacker's ability to execute any commands of the attacker's choice on a target
machine or in a target process. It is commonly used in arbitrary code execution
vulnerability to describe a software bug that gives an attacker a way to execute arbitrary
code. A program that is designed to exploit such a vulnerability is called an arbitrary code
execution exploit. Most of these vulnerabilities allow the execution of machine code and
most exploits therefore inject and execute shellcode to give an attacker an easy way to
manually run arbitrary commands.
Remote code execution: the ability to trigger (innescare) arbitrary code execution from one
machine on another (especially via a wide-area network such as the Internet) is often
referred to as remote code execution.
Payload: Material transmitted over a network (either computer or telecommunications
network) includes both data and information that identifies the source and destination of the
material. The payload is the actual data, or the cargo, carried by the headers. When
referring to a computer exploit, the payload is the effect caused by a virus or other malicious
code executed by the exploit on the target computer.
Malicious payload: is a payload by a delivered by a mechanism, such as a Trojan horse, that
is generally intended to do harm to a computer system. The payload of a virus may include
moving, altering, overwriting, and deleting files, or other destructive activity. Penetration
testing tools such as the Metasploit Project enable hackers to choose payloads that give
them shell, file, or screen access.
Reverse connection: A reverse connection is usually used to bypass firewall restrictions
on open ports. A firewall usually blocks open ports, but does not block outgoing traffic. In a
normal forward connection, a client connects to a server through the server's open port, but in
the case of a reverse connection, the client opens the port that the server connects to. The
most common way a reverse connection is used is to bypass firewall and Router security
restrictions.
Multilevel security: or Multiple Levels of Security (abbreviated as MLS) is the application of a
computer system to process information with different sensitivities (i.e., at different
security levels), permit simultaneous access by users with different security clearances and
needs-to-know, and prevent users from obtaining access to information for which they lack
authorization.
Intrusion detection system: un dispositivo software o hardware (o a volte la combinazione
di entrambi, sotto forma di sistemi stand-alone pre-installati e pre-configurati) utilizzato per
identificare accessi non autorizzati ai computer o alle reti locali. Le intrusioni rilevate possono
essere quelle prodotte da cracker esperti, da tool automatici o da utenti inesperti che utilizzano
programmi semiautomatici.
Shellcode: In computer security, a shellcode is a small piece of code used as the payload
in the exploitation of a software vulnerability. It is called "shellcode" because it typically
starts a command shell from which the attacker can control the compromised
machine. Shellcode is commonly written in machine code, but any piece of code that
performs a similar task can be called shellcode.
Buffer Overflow: Il buffer overflow una vulnerabilit di sicurezza che pu affliggere un
programma software. Consiste nel fatto che tale programma non controlla in anticipo la
lunghezza dei dati in arrivo, ma si limita a scrivere il loro valore in un buffer di lunghezza
63

Master.it 2010
Antonio Progetto di un VPN gateway
Lepore

prestabilita, confidando che l'utente (o il mittente) non immetta pi dati di quanti esso ne
possa contenere: questo pu accadere se il programma stato scritto usando funzioni di
libreria di input/output che non fanno controlli sulle dimensioni dei dati trasferiti.
DEA (Data Encryption Algorithm)
FIPS (Federal Information Processing Standard): n.46-1 descrive il DEA di DES
Algoritmi di Crittografia)a chiave simmetrica:
o DES (Data Encryption Standard)
o IDEA (International Data Encryption Algorithm)
o RC5 (Rons Code o Rivests Cipher [RSA Security])
o AES (Advanced Encryption Standard)
Algoritmi di Crittografia (DEA, Data Encryption Algorithm)a chiave asimmetrica:
o Diffie-Hellman (Key agreement protocol)
o RSA (Rivest Shamir Adelman)
o DSS (Digital Signature Standard, versione modificata del Diffie-Hellmann)
o DSA (Digital Signature Algorithm): Standard di autenticazione digitale per il governo
americano
o Curve ellittiche
o El Gamal
Key agreement protocol: protocollo che consente lo scambio di una chiave segreta
attraverso un mezzo non sicuro (non cifrato) senza il pre-scambio di un segreto (chiave
privata). Ad esempio per scambiare un per essere cifrato con un algoritmo a chiave pubblica si
ricorre agli algoritmi simmetrici Si deve concordare un protocollo per lo scambio della chiave
segreta (key agreement protocol). Il primo key agreement protocol fu inventato da Diffie e
Hellman nel 1976. Un esempio di protocollo diffuso di key agreement la "busta digitale"
(digital envelope), con cui ci si scambia la chiave segreta usando un algoritmo a chiave
pubblica, cio la chiave segreta viaggia criptata con la chiave pubblica di uno degli
interlocutori.
Funzioni Hash (pi note)
o MD4 e MD5 (Message Digest)
o SHA (Secure HAsh Algorithm)
X.509: In crittografia, X.509 uno standard ITU-T per le infrastrutture a chiave pubblica (PKI).
X.509 definisce, fra le altre cose, formati standard per i certificati a chiave pubblica ed un
certification path validation algorithm.
ITU-T (International Telecommunication Union - Telecommunication Standardization Bureau): il
settore della Unione Internazionale delle Telecomunicazioni che si occupa di regolare le
telecomunicazioni telefoniche e telegrafiche. L'ITU-T fornisce delle specifiche standard (o
raccomandazioni) riconosciute a livello internazionale. Le varie aree di lavoro corrispondono
ad altrettante serie, rappresentate da una lettera maiuscola, mentre le singole specifiche
interne a ciascuna serie sono rappresentate da un numero
PKI (Public key infrastructure): In crittografia una infrastruttura a chiave pubblica in inglese
public key infrastructure (PKI) una serie di accordi che consentono a terze parti fidate di
verificare e/o farsi garanti dell'identit di un utente, oltre che di associare una chiave pubblica
a un utente, normalmente per mezzo di software distribuito in modo coordinato su diversi
sistemi. Le chiavi pubbliche tipicamente assumono la forma di certificati digitali.

64

Master.it 2010
Progetto di un VPN gateway Antonio
Lepore

Licenza copyleft:

65

Master.it 2010

Potrebbero piacerti anche