Mise en place d'un serveur L2TP et d'une authentification RADIUS
Mise en place d'un LNS (L2TP Network Server) et d'une authentification Radius sur du matériel CISCO / Ubuntu sous GNS3.
Objectif : Mise en place d'un LNS (L2TP Network Server) et d'une authentification Radius sur du matériel CISCO / Ubuntu sous GNS3.
Nous verrons comment configurer un serveur LNS afin d'établir un tunnel L2TP et une session PPP depuis un routeur client, l'objectif étant pour le routeur client d'établir une session PPP depuis un réseau dont nous n'avons pas la gestion (ie. site étranger, 4G d'un autre opérateur etc.)
LNS
Un routeur client établie une session PPP sur un équipement d'extermité appelé LNS (L2TP Network Server).
Les différents sessions sont généralement agrégées en entrée par un LAC (L2TP Access Concentrator) de l'opérateur local, le LAC décide alors d'envoyer au bon serveur LNS la requête PPP. Le LNS authentifie alors l'utilisateur et commence la négotiation PPP, une fois terminée toutes les trames sont envoyées par le LAC au client et au LNS.
Schéma réalisé par l'association FAIMaison :
Sur le routeur qui aura le rôle de LNS, on active vpdn :
vpdn enable
On crée un groupe vpdn pour l'authentification des sessions L2TP :
vpdn-group TUNNELS-LNS accept-dialin protocol l2tp virtual-template 2 source-ip 192.168.1.1 local name lns l2tp tunnel hello 10 l2tp tunnel password 0 passwordclient
Dans ce groupe nous spécifions le virtual-template. Ce virtual-template permettra ensuite de créer les virtuals access des sessions PPP :
interface Virtual-Template2 description lns tunnel ip unnumbered Loopback0 ip mtu 1452 qos pre-classify no keepalive ppp mtu adaptive no ppp lcp fast-start ppp caller name LNS ppp authentication chap ppp ipcp dns 8.8.8.8
Configuration des paramètres RADIUS
Toujours sur le routeur LNS :
aaa group server radius RADIUS-AUTH server 192.168.1.3 auth-port 1812 acct-port 1813 ! aaa group server radius RADIUS-ACCT server 192.168.1.3 auth-port 1812 acct-port 1813 ! aaa authentication login default local-case aaa authentication ppp default group RADIUS-AUTH aaa authorization network default group RADIUS-AUTH aaa authorization network LOCALONLY local aaa accounting update periodic 5 aaa accounting network default action-type start-stop group RADIUS-ACCT ! aaa nas port extended
ip radius source-interface Ethernet1/0 radius-server host 192.168.1.3 auth-port 1812 acct-port 1813 key passwordl2tp radius-server vsa send authentication
SERVEUR RADIUS
Sur un Linux, ici ubuntu 14 :
sudo apt install freeradius
On autorise ensuite le serveur L2TP à s'authentifier sur le radius :
vi /etc/freeradius/clients.conf
clients CISCO
client 192.168.1.1 {
secret passwordl2tp
}
On crée un compte PPP avec différents paramètres pour le client :
vi /etc/freeradius/users
steve Cleartext-Password := "passwordradius"
Framed-Protocol = PPP,
Framed-IP-Address = 172.16.3.33,
Frame-IP-Netmask = 255.255.255.0,
On lance ensuite Radius en activant le debug :
freeradius -x
Il s'agit d'une configuration basique du serveur L2TP.
CLIENT (Cisco)
Voici sur le routeur client les paramètres permettant d'établir la session PPP.
l2tp-class L2TP-CONF authentication hello 10 password passwordclient
pseudowire-class L2TP-VPN encapsulation l2tpv2 protocol l2tpv2 L2TP-CONF ip local interface Vlan1 ip tos reflect
interface Virtual-PPP1 description Dial Home Device ip address negotiated ip mtu 1492 ip tcp adjust-mss 1420 keepalive 10 3 no cdp enable ppp authentication chap callin ppp chap hostname steve ppp chap password 0 passwordradius ppp direction callout pseudowire 192.168.1.1 1 pw-class L2TP-VPN
VERIFICATION
Depuis le LNS on peut vérifier l'établissement des tunnels L2TP :
lns-lab-1#show vpdn tunnel l2tp L2TP Tunnel Information Total tunnels 590 sessions 585 LocTunID RemTunID Remote Name State Remote Address Sessn L2TP Class/ Count VPDN Group 160 20381 routeur-client1 est 3.3.3.3 1 TUNNELS-LNS 164 43347 routeur-client2 est 1.1.1.1 1 TUNNELS-LNS 234 43551 routeur-client3 est 8.8.8.8 1 TUNNELS-LNS
Mais aussi des sessions PPP :
lns-lab-1#show users wide Line User 0 con 0 Interface User Mode Idle Peer Address Vi3 routeur-client1@l2tp Vi4 routeur-client2@l2tp Vi5 routeur-client3@l2tp Vi6 routeur-client4@l2tp
On peut aussi suivre l'établissement des sessions en affichant le debug depuis le routeur client ou le routeur LNS :
debug ppp authentication
Voici comment est établi la session PPP via l'interface Virtual-PPP1 :
Dans la réponse du Radius au serveur L2TP est indiqué les différents paramètres du client IP Address/ Routes etc. Il existe de nombreuses autres options utiles. (VRF, MTU etc.)
Puis le LNS fournit les mêmes informations au client sous la forme de PPP IPCP :