Come far funzionare un client L2TP-IPSEC su Linux L2TP+IPSEC

Necessit√†: Collegarmi con un tunnel L2TP-IPSEC ad un server (nel mio caso un Router Cisco)…..

Dopo aver provato da Windows ( 4 click ) e da Android ( 3 click), ho deciso che doveva andare anche da Linux…

….ovviamente mi sbagliavo….

ho passato praticamente tutte le guide che ho trovato on-line, passando per vari tool (grafici e non) col risultato che non funzionava nulla….

Alla fine, documentazione e debug alla mano, mi sono riconfigurato i vari demoni e funziona ūüėÄ

La configurazione finale √® indipendente dall’ip privato da cui mi collego (cosa per me essenziale…)

Allora, un minimo di teoria sui passi di funzionamento.

  1. Verifica chiase ISA
  2. Instaurare tunnel IPSEC
  3. Crittografia del traffico attraverso il tunnel
  4. Autenticazione L2TP
  5. Creazione device ppp0
  6. routing

I passi 1-2 vengono delegati al demone ipsec, il passo 3 lo si delega (passo estremamente rognoso), i passi 4-5 al demone l2tp e il passo 6 all’utente (aka: ti fai le tabelle di routing a mano ūüėõ )

Pacchetti necessari  (su debian):

  • openswan¬†¬†¬† => demone IPSEC
  • xl2tpd¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† => demone L2TP

 

apt-get install openswan xl2tpd

Configurazioni:

(per ovvi motivi ho modificato le chiavi e gli ip… come sempre funziona la solita regola: a IP inventato uguale, corrisponde IP reale uguale)

 

(configurazione principale demone ipsec)

/etc/ipsec.conf

version 2.0

config setup
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
nat_traversal=yes
protostack=netkey
oe=no
plutoopts=”–interface=eth0″

conn L2TP-PSK
authby=secret
pfs=no
auto=add
keyingtries=3
dpddelay=30
dpdtimeout=120
dpdaction=clear
rekey=yes
ikelifetime=8h
keylife=1h
type=transport
left=%defaultroute
leftnexthop=%defaultroute
leftprotoport=17/1701
right=1.2.3.4  # IP END-POINT
rightprotoport=17/1701
ike=3des-sha1;modp1024
phase2=esp
phase2alg=3des,3des-sha1

(configurazione sezione ISA)

/etc/ipsec.secrets

%any 1.2.3.4 : PSK “CHIAVE_ISA”

(configurazione sezione L2TP )

/etc/xl2tpd/xl2tpd.conf

[lac CONNESSIONE]
lns=1.2.3.4 # IP END-POINT
ppp debug = yes
pppoptfile=/etc/ppp/options.l2tp.client
length bit = yes

 

(configurazioni opzioni PPP)

/etc/ppp/options.l2tp.client

ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-mschap-v2
noccp
noauth
idle 1800
mtu 1410
mru 1410
defaultroute
usepeerdns
debug
lock
connect-delay 5000
name NOME_UTENTE
password PASSWORD

 

Per iniziare la connessione :

service ipsec restart
service xl2tpd restart
ipsec auto –up L2TP-PSK
sleep 2;
echo “c CONNESSIONE” > /var/run/xl2tpd/l2tp-control

ifconfig ppp0

e dovreste vedere il vostro ip assegnato all’interfaccia….

Per disconnettersi:

echo “d CONNESSIONE” > /var/run/xl2tpd/l2tp-control