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.
- Verifica chiase ISA
- Instaurare tunnel IPSEC
- Crittografia del traffico attraverso il tunnel
- Autenticazione L2TP
- Creazione device ppp0
- 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-controlifconfig ppp0
e dovreste vedere il vostro ip assegnato all’interfaccia….
Per disconnettersi:
echo “d CONNESSIONE” > /var/run/xl2tpd/l2tp-control