• Home
  • Forum
  • My Publications
  • Secure Storage Service
  • SeMoS
  • VPN

Giordano Scuderi

find / -name brain - print | xargs fgrep “something”

Feed on
Posts
Comments

VPN

Dic 19th, 2006 by Giordano

Introduzione

Vorrei cominciare l’articolo dandovi delle nozioni per capire un pò cosa è una VPN e a cosa serve, chiaramente non approfondirò molto l’argomento in quanto risulterebbe essere davvero troppo complesso.

Cosa è una VPN?

Una VPN (Virtual Private Network) è un sistema che consente di collegare due network remoti attraverso un tunneling su una rete esistente (in questo caso Internet), e garantisce la sicurezza e l’integrità della comunicazione.

Tipologie di connessione di un sistema VPN:

  1. Connessione tra network separati: quando si vogliono connettere in modo diretto, ma sicuro, due network separati dalla rete internet. In questo modo la connessione avviene tra due nodi (VPN Gateway) che permettono alle due reti di agire come se fossero collegate fisicamente.
  2. Connessione diretta tra sistemi: spesso si può utilizzare anche una connessione in VPN del tipo point-to-point per connettersi ad un’altro host in modo sicuro, attraverso un canale non sicuro come la rete internet.
  3. Connessione client VPN ad un VPN Gateway: quando si connettono uno o più client ad un gateway in grado di gestire simultaneamente più tunnel. In questo caso si parla di connessioni Road Warrior, connessione tipica di client o notebook che si collegano da una rete esterna insicura (come internet ad esempio).

Esistono diverse tecnologie per realizzare un sistema VPN, ho scelto di utilizzare IPsec in quanto è supportato dalla quasi totalità dei sistemi operativi e dagli apparati di rete.

IPsec

IPsec è l’abbreviazione di IP Security ed è uno standard per ottenere connessioni sicure utilizzando il protocollo IP.La sicurezza viene raggiunta attraverso la cifratura e l’autenticazione dei pacchetti IP, la capacità di fornire protezione a livello di rete rende questo protocollo trasparente al livello delle applicazioni che quindi non devono essere modificate per poterlo utilizzare.

I protocolli di IPsec

IPsec è una collezione di protocolli formata da:

    • Protocolli che forniscono la cifratura del flusso di dati.• Protocolli che implementano lo scambio delle chiavi per realizzare il flusso crittografato.

Vi sono 3 protocolli:

    • IKE (Internet Key Exchange): serve per autenticare l’interlocutore e per negoziare ed aggiornare gli algoritmi e le chiavi di crittografia/autenticazione da utilizzare nei dati da trasmettere in VPN.• AH (Authentication Header): fornisce l’autenticazione dei pacchetti trasmessi in VPN garantendo l’integrità ed autenticità dei dati, ed anche l’dentità del mittente.• ESP (Encapsulating Security Payload): oltre a fornire autenticazione come in AH, garantisce anche la riservatezza delle informazioni tramite crittografia.

Scenario

Il sistema VPN, come si evince dallo schema, e’ rappresentato fondamentalmente da due entita’, left e right:

Scenario VPN Image

Left rappresenta nel nostro caso la rete aziendale, nello schema si trova infatti alla sinistra di chi legge (Left tradotto vuol dire sinistra, almeno in questo caso).Right rappresenta tutti i client RoadWarrior che si collegano alla lan aziendale tramite VPN, nello schema si trova a destra (Right tradotto vuol dire destra, almeno in questo caso).I client RoadWarrior si collegano all’interfaccia di rete pubblica del VPN Gateway (esso deve avere IP pubblico, o se e’ presente un router le richieste su alcune porte devono essere rigirate a una sua interfaccia di rete interna, in questo caso e’ necessario utilizzare NAT-Traversal).Durante la connessione verra’ stabilito un tunnel IPSEC utilizzando i certificati x509, successivamente il client RoadWarrior verra’ autenticato tramite password dal Daemon L2TP e ad esso verra’ assegnato un indirizzo IP interno, nel nostro caso ho assegnato un range di indirizzi IP che il daemon L2TP potra’ assegnare ai client che si collegano (da 10.0.0.3 a 10.0.0.100).In questo modo e’ come se il client RoadWarrior si trovasse fisicamente in azienda, esso potra’ usufruire di tutti i servizi interni alla lan (posta, server web interno, stampanti, condivisioni di rete), e la connessione sara’ sicura e sara’ garantita l’autenticita’.

Dettagli Tecnici su IPsec

IPsec supporta due modalità di funzionamento:

    • Tunnel mode• Transport mode

A seconda della modalità scelta, vengono protetti solo i protocolli di livello superiore o l’intero pacchetto IP.In Transport mode, viene coperto da IPsec solo il payload del pacchetto IP originale, in quanto l’header IPsec viene inserito dopo l’header del pacchetto IP.In Tunnel mode, IPsec incapsula il pacchetto IP originale in un nuovo pacchetto IP.Le due modalità sono supportate sia da AH che da ESP.

Security Association e Security Policy

Il concetto di Security Association (in breve SA) è alla base del funzionamento di IPsec. Una SA è un “contratto” fra le due entità coinvolte nella comunicazione; in essa vengono stabiliti i meccanismi di protezione e le chiavi da utilizzare durante il successivo trasferimento dei dati.Adesso che vi ho presentato l’argomento, vi spiegherò abbastanza in dettaglio come mettere sù una VPN vera e propria; in particolare come installare e configurare un VPN Gateway con Linux, e come configurare dei client Windows che si collegano a questo Gateway utilizzando i certificati x509 (il metodo più sicuro assieme alle smartcard).

IPSEC su Linux – OpensWan

OpensWan è un progetto open-source derivante dal progetto FreeS/Wan, che contiene già la patch per il NAT Traversal e per l’autenticazione tramite certificati x509 (per l’interoperabilità con i client Windows).E’ costituito da due elementi principali:

    KLIPS : implementa i protocolli ESP ed AH a livello di kernel (Necessario per i kernel della serie 2.2.x e 2.4.x - Il kernel 2.6.x ha già il supporto nativo a IPsec)PLUTO : demone che implementa il protocollo IKE

Installazione OpensWan

Per installare OpensWan (nel mio caso la versione 2.4.2 DR1) è necessario avere installate le MATH library gmp (nel mio caso ho la versione 4.1.4).Esistono due possibilità per installare lo stack IPsec, si può utilizzare quello fornito assieme a OpensWan (KLIPS), oppure si può utilizzare lo stack presente nel kernel 2.6 (26sec); nel caso in cui si utilizzi il kernel 2.4 l’unica possibilità e’ utilizzare KLIPS.Nel mio caso, ho utilizzato il kernel 2.6.13.3 con lo stack nativo (26sec).Dopo aver compilato il kernel con il supporto per IPsec, è necessario compilare e installare openswan:

atomik@srvhp:~$ tar xvzf openswan-2.4.2dr1.tar.gzatomik@srvhp:~$ cd openswan-2.4.2dr1atomik@srvhp:~/openswan-2.4.2dr1$atomik@srvhp:~/openswan-2.4.2dr1$ make programs

da root eseguire:

root@srvhp:/home/atomik/openswan-2.4.2dr1# make install

Generare I Certificati x509

Dato che ho scelto di usare I certificati x509, esistono due possibilità per generarli, o richiederli a un’autorità di certificazione (Verisign ad esempio), oppure generarli da soli tramite OpenSSL.Io per diverse ragioni, ho scelto di generarli tramite OpenSSL, tramite uno script di shell che viene installato insieme ad esso, che si chiama CA.sh.Nella distribuzione che ho utilizzato, questo script si trova sotto:/etc/ssl/misc/CA.sh(Nella Red Hat si trova sotto /usr/share/ssl/misc)Si procede così per la creazione:Per prima cosa creiamo una directory che conterrà tutto quello che andremo a creare:

atomik@srvhp:~$ mkdir certsatomik@srvhp:~$ cd certsatomik@srvhp:~/certs$

Adesso creiamo una nuova autorità di certificazione:

atomik@srvhp:~/certs$ /etc/ssl/misc/CA.sh –newcaCA certificate filename (or enter to create)

A questo punto premete ENTER senza scrivere nulla…OpenSSL inizierà a creare l’autorità di certificazione:

Making CA certificate ...Generating a 1024 bit RSA private key...........++++++....++++++writing new private key to './demoCA/private/./cakey.pem'Enter PEM pass phrase: Password per la CAVerifying - Enter PEM pass phrase: ridigitarla per conferma

Adesso verranno richieste delle altre informazioni:

-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [AU]: ITState or Province Name (full name) [Some-State]: ItalyLocality Name (eg, city) []: CataniaOrganization Name (eg, company) [Internet Widgits Pty Ltd]: NomeSocieta’Organizational Unit Name (eg, section) []: Nome della divisione ad esempioCommon Name (eg, YOUR name) []: Giordano ScuderiEmail Address []: Indirizzo di posta elettronicaatomik@srvhp:~/certs$

Il certificato cosi’ generato, e’ valido per 1 anno, nel caso in cui si sia interessati ad aumentare la sua durata:

atomik@srvhp:~/certs$ cd demoCA/atomik@srvhp:~/certs/demoCA$ openssl x509 –in cacert.pem –days 3650 –out cacert.pem –signkey ./private/cakey.pemGetting Private keyEnter PEM pass phrase: password che avete scelto in fase di creazione della CAatomik@srvhp:~/certs/demoCA$

Adesso l’autorita’ di certificazione e’ creata, bisogna creare un certificate signing request:

atomik@srvhp:~/certs$ /etc/ssl/misc/CA.sh -newreqGenerating a 1024 bit RSA private key………………………….++++++……………………………..++++++writing new private key to ‘newreq.pem’Enter PEM pass phrase: Password per il certificatoVerifying password - Enter PEM pass phrase: Password per il certificato—–You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter ‘.’, the field will be left blank.—–Country Name (2 letter code) [AU]: ITState or Province Name (full name) [Some-State]]: ItalyLocality Name (eg, city) []: CataniaOrganization Name (eg, company) []: NomeSocieta’Organizational Unit Name (eg, section) []:Common Name (eg, your name or your server’s hostname) []: VPN-GatewayEmail Address []: Indirizzo di posta elettronicaPlease enter the following ‘extra’ attributesto be sent with your certificate requestA challenge password []: EnterAn optional company name []: EnterRequest (and private key) is in newreq.pem

Il file newreq.pem contiene il certificato di richiesta e la chiave private.Adesso che il certificato e’ creato, facciamo il sign dello stesso tramite la Certification Authority creata prima:

atomik@srvhp:~/certs/demoCA$ /etc/ssl/misc/CA.sh -signUsing configuration from /etc/ssl/openssl.cnfEnter pass phrase for ./demoCA/private/cakey.pem: passwordCheck that the request matches the signatureSignature okCertificate Details:Serial Number: 1 (0×1)ValidityNot Before: Oct 27 14:25:20 2005 GMTNot After : Oct 27 14:25:20 2006 GMTSubject:countryName = ITstateOrProvinceName = ItalylocalityName = CataniaorganizationName = Societa’commonName = Giordano ScuderiemailAddress = giordano.scuderi@omissisX509v3 extensions:X509v3 Basic Constraints:CA:FALSENetscape Comment:OpenSSL Generated CertificateX509v3 Subject Key Identifier:DF:C5:29:07:D5:E9:03:AA:8A:00:BC:BE:A3:A5:04:DE:E0:2A:7F:FCX509v3 Authority Key Identifier:keyid:AD:A5:79:C8:8C:12:18:59:02:7F:B2:B8:6F:A7:CB:E1:1A:C1:58:9CDirName:/C=IT/ST=Italy/L=Catania/O=Societa’/CN=Giordano Scuderi/emailAddress=giordano.scuderi@omississerial:A6:5A:4A:7D:DE:26:73:3ECertificate is to be certified until Oct 27 14:25:20 2006 GMT (365 days)Sign the certificate? [y/n]: Y1 out of 1 certificate requests certified, commit? [y/n] YWrite out database with 1 new entriesData Base UpdatedCertificate:

Si vedranno I dettagli del certificato appena creato, che ho omesso per questioni di spazio, che sara’ salvato nel file newcert.pem.Adesso si puo’ cambiare nome ai file che abbiamo ottenuto:

atomik@srvhp:~/certs/demoCA$ mv newcert.pem vpnGateway_cert.pematomik@srvhp:~/certs/demoCA$ mv newreq.pem vpnGateway_key.pem

Adesso e’ necessario creare il CRL (Certificate Revocation List), in modo che nel caso in cui una chiave private fosse compromessa, sia possibile revocarla:

atomik@srvhp:~/certs/demoCA$ openssl ca –gencrl –out crl.pemUsing configuration from /etc/ssl/openssl.cnfEnter pass phrase for ./demoCA/private/cakey.pem: Password dell’autorita’ di certificazioneatomik@srvhp:~/certs$

Per revocare un certificato, e’ necessario avere il file ottenuto durante la sua creazione (il file .pem per intenderci), essi vengono salvati sotto demoCA/newcerts.Per revocarne uno compromesso:

atomik@srvhp:~/certs/demoCA$ openssl ca –revoke cert_compromesso.pemUsing configuration from /etc/ssl/openssl.cnfEnter pass phrase for ./demoCA/private/cakey.pem: : Password dell’autorita’ di certificazioneRevoking certificate 01.Data Base Updated

Una volta che un certificato e’ stato revocato, e’ necessario ricreare il certificate revocation list (CRL), si utilizza la stessa procedura che ho già fatto vedere prima.Se si sta’ generando un certificato da usare su un client Windows, dopo averlo generato, e’ necessario esportarlo in un formato opportuno.Si puo’ utilizzare ad esempio il formato PKCS#12; OpenSSL consente di esportare i certificati creati in questo formato con il comando:

atomik@srvhp:~/certs/demoCA$ openssl pkcs12 –export –inkey ket.pem –in cert.pem –certfile cacert.pem –out export.p12 –name “Certificato per Client Windows”

Verra’ chiesta una export password, da inserire poi quando il certificato verra’ importato su Windows.

Configurazione OpensWan

Il file di configurazione di OpensWan è /etc/ipsec.conf, esso è composto da due parti fondamentali, la prima parte è quella di configurazione generale:

# basic configurationconfig setupinterfaces=%defaultroutenat_traversal=yesvirtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12

Nella seconda parte si inseriscono le configurazioni per le singole connessioni:

#single connection configurationconn roadwarriorleft=ipaddress dell’interfaccia di rete del VPN Gatewayleftcert=openswan-cert.pemright=%anyrightid="C=IT, ST=Italy, L=Catania, O=Omissis, OU=Omissis, CN=Windows certs, emailAddress=gscuderi@omissis.com"leftprotoport=17/1701rightprotoport=17/1701auto=addpfs=no

Configurazione

Per avere una configurazione di tipo Road-Warrior, è necessario avere:• Indirizzo IP statico del VPN Gateway• Il range di indirizzi IP della subnet dietro il VPN Gateway• ID del certificato con cui il client tenta di stabilire la connessione (leftid)Per ottenere l’ID del certificato si puo’ utilizzare il seguente comando:

atomik@srvhp:~/certs/demoCA$ openssl x509 –in certificato.pem –noout –subject

Nel file di configurazione /etc/ipsec.conf, la configurazione sarà:

config setupinterfaces=%defaultroutenat_traversal=yesvirtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12conn roadwarriorleft=ipaddress dell’interfaccia di rete del VPN Gatewayleftcert=openswan-cert.pemright=%anyrightid=”C=IT, ST=Italy, L=Catania, O=Omissis, OU=Omissis, CN=Windows certs, emailAddress=gscuderi@omissis.com”leftprotoport=17/1701rightprotoport=17/1701auto=addpfs=no

Ho abilitato il nat-traversal, che è utile nel caso in cui il VPN gateway abbia assegnato un’indirizzo ip privato, perché magari si trova dietro un router.Nel caso in cui sia il VPN gateway che il client che si collega abbiano ip pubblici, non è necessario abilitare il nat-traversal.Come dallo schema visto precedentemente, left rappresenta il VPN gateway, leftcert è il certificato del VPN gateway che abbiamo generato precedentemente.Right rappresenta il client che si collega, %any consente a qualunque client di collegarsi, purché il suo certificato sia conforme a quanto riportato su rightid.Leftprotoport e rightprotoport servono per consentire ai client Windows di collegarsi.E’ necessario rispettare l’indentazione, il nome della connessione senza indentazione, e tutti i parametri rientrati di un tab.Bisogna poi configurare il file /etc/ipsec.secrets:

IPADDRESS VPN GATEWAY %any: RSA openswan-priv.pem “password”

Fatto questo, è possibile avviare il demone IPsec:

atomik@srvhp:/$ ipsec setup start

Per avere delle informazioni molto dettagliate su quello che succede:

atomik@srvhp:/$ ipsec barf

Configurazione Client Windows

E’ necessario che il client Windows abbia installate le patch per il NAT (KB818043 e KB818043), oppure che sia Windows XP con il Service Pack 2 installato.Per creare la connessione, basta andare su Network Connection, e selezionare Create a new connection:

Apparirà la seguente finestra, premere next:

Selezionare Connect to the network at my workplace:

Ovviamente selezionare Virtual Private Network connection:

Selezionare il nome della connessione:

Inserire l’indirizzo IP del computer a cui si ci vuole connettere:

Bisogna selezionare se questa connessione sarà creata solo per l’utente corrente, o per tutti gli utenti del PC:

Selezionare Finish:

A questo punto selezionare Properties:

Qui sarà necessario variare alcuni parametri:

Sarà necessario deselezionare require data encryption, dato che in ogni caso l’autenticazione avviene già in modo sicuro, poiché tutto il traffico sarà già cifrato da IPsec:

Selezionare L2TP IPSec VPN:

Dopo di che, selezionare Properties, e si aprirà la seguente finestra:

Selezionare Advanced, e rimuovere il segno di spunta su Use default gateway on remote network (se non è presente nessuna connessione locale, altrimenti è necessario lasciarlo):

Fatto questo, la configurazione della connessione VPN sul client Windows è terminata.

L2TP Daemon sul VPN Gateway

Poiché voglio che i client Windows effettuino un’autenticazione con password (oltre a quella che avviene tramite Certificati su IPsec), è necessario installare e configurare L2TP per effettuare l’autenticazione, e l’assegnazione dinamica di un’indirizzo IP dinamico della subnet del VPN Gateway al client che si connette.

Installazione L2TPD

Per installare il Daemon L2TPD sul nostro VPN Gateway, è necessario scaricare i sorgenti del software (l2tpd-0.69.tar.gz), e una patch (l2tpd-0.69.sysv.patch).Si deve estrarre il contenuto del tarball, e copiare la patch nella directory del software:

atomik@srvhp:~$ tar xvzf l2tpd-0.69.tar.gzatomik@srvhp:~$ mv l2tpd-0.69.sysv.patch l2tpd-0.69atomik@srvhp:~$ cd l2tpd-0.69

Si deve applicare la patch ai sorgenti prima della compilazione:

atomik@srvhp:~/l2tpd-0.69$ patch < l2tpd-0.69.sysv.patchpatching file aaa.cpatching file avp.cpatching file avp.hpatching file avpsend.cpatching file call.cpatching file call.hpatching file control.cpatching file control.hpatching file file.cpatching file file.hpatching file l2tpd.cpatching file l2tp.hpatching file Makefilepatching file misc.cpatching file misc.hpatching file network.cpatching file scheduler.c

Adesso si possono compilare I sorgenti:

atomik@srvhp:~/l2tpd-0.69$ make

Poiché non è possible fare il classico make install, è necessario installare manualmente i man del software:

atomik@srvhp:~/l2tpd-0.69$ cd docatomik@srvhp:~/l2tpd-0.69/doc$ gzip l2tp-secrets.5atomik@srvhp:~/l2tpd-0.69/doc$ gzip l2tpd.8atomik@srvhp:~/l2tpd-0.69/doc$ gzip l2tpd.conf.5atomik@srvhp:~/l2tpd-0.69/doc$ cp l2tp-secrets.5.gz /usr/share/man/man5atomik@srvhp:~/l2tpd-0.69/doc$ cp l2tpd.8.gz /usr/share/man/man8atomik@srvhp:~/l2tpd-0.69/doc$ cp l2tpd.conf.5.gz /usr/share/man/man5atomik@srvhp:~/l2tpd-0.69/doc$ cd ..

Dopo è necessario copiare l’eseguibile ottenuto dalla compilazione nella directory /usr/local/sbin:

atomik@srvhp:~/l2tpd-0.69$ cp l2tpd /usr/local/sbin/atomik@srvhp:~/l2tpd-0.69$ chmod 755 /usr/local/sbin/l2tpd

Adesso è necessario creare la directory che conterrà tutti I file di configurazione del Daemon L2TPD (io ho scelto di usare /etc/l2tp):

atomik@srvhp:~/l2tpd-0.69$ mkdir /etc/l2tp

Dentro questa directory, dovranno essere messi I seguenti file di configurazione:

l2tp-secrets

Contiene la password per la connessione, e gli hostname delle macchine gateway e client (l’asterisco stà a significare accetta tutti gli host):

#l2tpd-secretshostnameVPNGateway * password

l2tpd.conf

Contiene la configurazione vera e propria del Daemon L2TPD:

[global]port = 1701 La porta che viene usata dal demone[lns default]ip range = 10.0.10.3-10.0.10.100 Il range di IP da assegnare al clientlocal ip = 10.0.10.2 IP del VPN gatewayrequire chap = yesrefuse pap = yesrequire authentication = yesname = LinuxVPNppp debug = yespppoptfile = /etc/l2tp/options.l2tpd File che determina le opzioni da passare al demone PPPdlength bit = yes

options.l2tp

Vengono specificate alcune opzioni che vengono poi passate al demone PPPd, che viene richiamato dal Daemon L2TPD per la connessione dei client:

ipcp-accept-localipcp-accept-remotems-dns 10.0.10.1ms-wins 10.0.10.1noccpauthcrtsctsidle 1800mtu 1410mru 1410nodefaultroutedebuglockproxyarpconnect-delay 5000silent

Script per l’avvio del servizio

Nel mio caso, ho voluto creare anche uno script per avviare, fermare e riavviare il demone, che ho inserito nella directory /etc/rc.d/ (in slackware è la directory dove vengono messi gli script per l’avvio dei servizi).#!/bin/sh## l2tpd Questo script si occupa di avviare e fermare il demone l2tp.start() {if [ -x /usr/sbin/l2tpd ]; thenecho “Starting l2tp daemon”/usr/sbin/l2tpd –c /etc/l2tp/l2tp.conffi}stop() {echo “Stopping l2tp daemon”killall l2tpd}restart() {stopstart}case “$1″ instart)start;;stop)stop;;restart)restart;;*)echo “Usage: rc.l2tpd {start|stop|restart}”exit 1esac

Altre configurazioni…

E’ necessario verificare anche la configurazione di default del demone PPPd, il file di configurazione è /etc/ppp/options:

# /etc/ppp/options## $Id: options,v 1.4 1996/05/01 18:57:04 alvar Exp $#asyncmap 0authcrtsctslockmodempassive-pap+chap+mschap-v2domain omissis.comproxyarplcp-echo-interval 30lcp-echo-failure 4

chap-secrets

Dopo di che, è necessario inserire l’utente e la password che il client utilizzerà per autenticarsi, si inserisce nel file /etc/ppp/chap-secrets:

# Secrets for authentication using CHAP# client server secret IP addressesusername * password *

Avvio del demone

Fatto ciò, è possibile avviare il demone:

atomik@srvhp:~/l2tpd-0.69$ /etc/rc.d/rc.l2tpd startStarting l2tp daemon

Connessione

Adesso è possibile effettuare la connessione, inserendo username e password opportuni:Ecco I dettagli della connessione, come si vede, si stà utilizzando per l’autenticazione MS-CHAP V2, e IPsec utilizza il protocollo ESP con crittografia 3DES.Al client windows è stato assegnato l’indirizzo IP 10.0.10.3 della rete locale.

Firewall

Ecco alcune regole di iptables che si possono utilizzare quando si implementa una VPN, ovviamente queste sono solo le regole per la VPN, si dovrebbero inserire tutte quelle relative agli altri servizi che si vogliono utilizzare.Abilitare l’ip forwarding

echo 1 >/proc/sys/net/ipv4/ip_forward

Policy di default (tutto bloccato, come da buona norma!)

iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP

Regole per permettere l’accesso, la negoziazione e lo scambio dei dati della VPN:

iptables -A INPUT -p udp --dport 500 -j ACCEPTiptables -A INPUT -p udp --dport 4500 -j ACCEPTiptables -A INPUT -p ah -j ACCEPTiptables -A INPUT -p esp -j ACCEPT

Regole per permettere il traffico dagli host collegati alla VPN alla rete interna:

iptables -A FORWARD -i ppp+ -j ACCEPTiptables -A FORWARD -o ppp+ -j ACCEPT

Conclusione

Siamo arrivati alla fine!Non pretendevo certo di essere esauriente, l’argomento è davvero troppo vasto e complesso per essere trattato in questa sede.Come ultima cosa, dato che l’articolo mi è costato davvero tanto tempo e fatica, ho scelto di pubblicarlo riservandomi alcuni diritti (Licenza Creative Commons).In sintesi i diritti che mi riservo sono:Attribuzione: Devi riconoscere il contributo dell’autore originario.Non commerciale: Non puoi usare quest’opera per scopi commerciali.Non opere derivate: Non puoi alterare, trasformare o sviluppare quest’opera (ovviamente si intende in assenza di un consenso scritto da parte mia).

I diritti che ho scelto di riservarmi sono trattati in dettaglio al link sottostante.http://creativecommons.org/licenses/by-nc-nd/2.5/deed.it

Alcuni diritti riservati..Licenza Creative Commons:Attribuzione - Non commerciale - Non opere derivate 2.5 - Commons Deed

Comments are closed.

  • About

    Profile
    Giordano Scuderi
    find / -name brain - print | xargs fgrep “something”
    There are 47 Posts and 31 Comments so far.


  • Meta

    • Log in
    • Entries RSS
    • RSS dei commenti
    • WordPress.org
    • Realizzazioni siti web

      • Bed X Bed
      • DNA Shock
      • Isolterm.it
      • PGSalotti.it
      • SalvoCampo.com
      • Unico Srl
  • Pagine

    • Forum
    • My Publications
    • Secure Storage Service
    • SeMoS
    • VPN
  • Recent Posts

    • How to install Windows Vista in 2 minutes (Come installare Windows Vista in 2 minuti)
    • Secure Storage Service
    • Buongiorno amore.TI AMO!
    • SeMoS - Server Monitoring System
    • Subversion su un cluster RHEL 4
  • Recent Comments

    • Giordano su Buongiorno amore.TI AMO!
    • kyola su SeMoS - Server Monitoring System
    • erika su Collegarsi a reti WPA con il powerbook (Ubuntu 6.10)
    • Giordano su Parlamento Pulito!
    • Marco su Parlamento Pulito!
  • Archivi

    • Ottobre 2007
    • Maggio 2007
    • Marzo 2007
    • Febbraio 2007
    • Dicembre 2006
    • Giugno 2006
    • Maggio 2006
    • Febbraio 2006
    • Gennaio 2006
    • Novembre 2005
    • Ottobre 2005
    • Settembre 2005
    • Agosto 2005
    • Luglio 2005
    • Giugno 2005
    • Maggio 2005

Giordano Scuderi © 2008 All Rights Reserved.

GiordanoScuderi.com