Esta práctica tiene como objetivo guiar en la creación de una red que utiliza autenticación mediante FreeRADIUS para clientes residenciales. El laboratorio cubre los aspectos fundamentales de la configuración de una red basada en PPPoE (Point-to-Point Protocol over Ethernet) y la integración de un servidor RADIUS para gestionar la autenticación de usuarios. La práctica incluye los siguientes pasos:
- Creación de la Red WAN (Salida a Internet): Configuración de la red externa que proporcionará acceso a internet para los clientes.
- Configuración de la Red LAN para el Servidor FreeRADIUS: Establecimiento de la red interna que alojará el servidor FreeRADIUS, responsable de autenticar a los usuarios.
- Creación del Servidor PPPoE con RADIUS: Implementación del servidor PPPoE que permitirá a los usuarios conectarse y autenticarse mediante el servidor RADIUS.
- Configuración del RADIUS en el Router Cisco: Configuración del router Cisco para que se comunique correctamente con el servidor RADIUS. Esto incluye los ajustes necesarios en el router para autenticar y autorizar a los usuarios utilizando FreeRADIUS, asegurando la conexión entre ambos.
Se adjunta un diagrama de lo que va en este laboratorio.
1- Creación de la Red WAN (Salida a Internet)
1.1 - Crear VLAN - Crear una VLAN en el switch o router mediante el comando vlan <ID>Configuración de VLAN y asignación de la VLAN a un puerto en modo de acceso
vlan 11
exit
1.2- Configuración de la Interfaz: Asignar una dirección IP a la interfaz VLAN y habilitar NAT
interface Vlan11
description WAN
ip address 172.25.1.151 255.255.255.0
ip nat outside
ip virtual-reassembly in
exit
1.3- Asignación de la VLAN a un puerto en modo acceso:
Configurar la interfaz física GE0 (como GigabitEthernet0) en modo acceso (switchport access) y asociarla a la VLAN recién creada. Este puerto estará en modo "access" porque conectará un solo dispositivo a esa VLAN (en este caso, la conexión WAN).
interface GigabitEthernet0
description WAN
switchport access vlan 11
no ip address
spanning-tree portfast
exit
1.4-Configuración de NAT y Ruta Predeterminada:
ip nat inside source list 50 interface Vlan11 overload
ip route 0.0.0.0 0.0.0.0 172.25.1.1
1.5-Configurar Lista de Acceso:
Definir las redes que se traducirán, en este caso la red de freeradius y de los clientes pppoe
access-list 50 permit 192.168.55.0 0.0.0.255
access-list 50 permit 192.168.66.0 0.0.0.255
2- Configuración del Puerto GigabitEthernet1 para VLAN 55 y VLAN 66
Para permitir que las VLAN 55 (FreeRADIUS) y VLAN 66 (PPPoE) puedan salir a través del puerto GigabitEthernet1, configuramos el puerto en modo trunk. Esto permitirá que ambas VLANs se transporten a través de este enlace.
interface GigabitEthernet1
switchport mode trunk
no ip address
spanning-tree portfast
exit
3- Creación de la Red del Servidor FreeRADIUS
2.1- Crear la VLAN 55: Definimos la VLAN 55, que será la red donde estará el servidor FreeRADIUS
vlan 55
exit
2.2- Configurar la Interfaz VLAN 55:
Asignamos una dirección IP a la interfaz VLAN 55. Esta IP debe estar en la misma subred que el servidor FreeRADIUS.
interface Vlan55
description Server FreeRADIUS
ip address 192.168.55.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
exit
3- Creación de la Red PPPoE Server para Clientes Finales Residenciales
3.1-Crear VLAN 66: Definimos la VLAN 66 que se utilizará para los clientes PPPoE.
vlan 66
exit
3.2-Crear el Grupo PPPoE: Configuramos el grupo PPPoE que será usado para los clientes finales.
bba-group pppoe clientes
virtual-template 1
exit
3.3 Crear el Pool de Direcciones IP para Clientes: Definimos el rango de direcciones IP que se asignarán dinámicamente a los clientes PPPoE.
ip local pool localpool 192.168.66.2 192.168.66.254
3.4-Configurar la Interfaz VLAN 66: Asignamos una dirección IP a la interfaz VLAN 66, habilitamos NAT y activamos PPPoE en el grupo de clientes.
interface Vlan66
ip address 192.168.66.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
pppoe enable group clientes
exit
3.5-Configurar la Interfaz Virtual-Template 1: Configuramos la interfaz virtual para los clientes PPPoE, incluyendo autenticación y asignación de direcciones IP desde el pool.
interface Virtual-Template1
mtu 1492
ip unnumbered Vlan66
ip nat inside
ip virtual-reassembly in
peer default ip address pool localpool
ppp authentication pap chap ms-chap ms-chap-v2 callin
ppp ipcp dns 8.8.8.8 8.8.4.4
exit
4- Configuración de Autenticación y RADIUS
4.1- Habilitar AAA y Configurar Autenticación:
Ejecutar los siguientes comandos para habilitar AAA y configurar los métodos de autenticación:
aaa new-model
aaa authentication login default group radius local
aaa authentication ppp default group radius
aaa authorization exec default group radius local
aaa authorization network default group radius
aaa session-id common
aaa policy interface-config allow-subinterface
4.2-Configurar Atributos del Servidor RADIUS:
Configurar los atributos necesarios para la integración con el servidor RADIUS:
radius-server attribute 6 on-for-login-auth
radius-server attribute 8 include-in-access-req
radius-server attribute nas-port format e UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
radius-server attribute 31 mac format unformatted
radius-server attribute nas-port-id include vendor-class-id plus remote-id plus circuit-id
radius-server configure-nas
radius-server authorization default Framed-Protocol ppp
radius-server vsa send cisco-nas-port
4.3-Configurar conexión al Servidor FreeRADIUS:
Definir el servidor RADIUS y sus puertos de autenticación y contabilidad:
radius server UbuntuServer
address ipv4 192.168.55.2 auth-port 1812 acct-port 1813
key temporal1
exit
4.4-Asignar la Fuente de la Interfaz para RADIUS
Configurar la interfaz fuente para el tráfico RADIUS:
ip radius source-interface Vlan55
5- En el Servidor FreeRADIUS.
Nota
Si aún no has configurado tu servidor FreeRADIUS para trabajar con una base de datos, te recomendamos seguir el manual adjunto del paso 1 al 6 para realizar la configuración necesaria. Usar una base de datos facilita el manejo de los usuarios y los routers NAS, permitiendo una administración más sencilla y eficiente. Una vez que el servidor esté listo para funcionar con una base de datos, puedes proceder con la creación de usuarios.
Instalación FreeRadius con MySQL:
http://foroisp.com/threads/1983-Inst...s-con-Mikrotik
5.1-Conexión hacia el NAS (Cisco)
En el paso 4.3 se realizó la conexión del router Cisco hacia el servidor FreeRADIUS. En este paso, se configurará la conexión del servidor FreeRADIUS hacia el router Cisco. Esto asegura que el servidor FreeRADIUS pueda autenticar las solicitudes que provienen del router Cisco, utilizando la IP y la clave compartida previamente configuradas.
Ingresamos al shell de mysql y accedemos a la bd de FreeRADIUS
mysql
use radius;
E ingresamos lo siguiente:
INSERT INTO nas (nasname, secret, description) VALUES ('192.168.55.1', 'temporal1', 'Cisco 891FW');
Donde:
- nasname: Es la dirección IP o el nombre DNS del enrutador. En este caso seria el ciso con ip: 192.168.55.1, de la red que se configuro en el paso 3
- secret: Es una clave compartida que se utiliza para autenticar y encriptar las comunicaciones entre el servidor RADIUS (FreeRadius) y el dispositivo NAS (Cisco). En este caso seria temporal1, tal cual como se agrego en el paso 4.3.
- description: Es una descripción opcional del enrutador.
Nota
Después de agregar el NAS en la base de datos de FreeRADIUS para que funcione la autenticación, es necesario reiniciar el servicio de FreeRADIUS. Esto se debe a que los cambios en la base de datos no se aplican automáticamente. Si no se reinicia el servicio, la autenticación no funcionará correctamente. El comando para reiniciar es: systemctl restart freeradius.service
5.2-Crear el usuario de conexión
A continuación se detallan los comandos SQL para crear un usuario en la base de datos de FreeRADIUS. Este usuario será utilizado para la autenticación PPPoE.
Ingresar de nuevo al shell de mysql
Usuario: miguelangel
Contraseña: 123456
Ingresar de nuevo al shell mysql
mysql
use radius;
Ingresamos lo siguiente:
INSERT INTO radcheck
(username, `attribute`, op, value)
VALUES('miguelangel', 'Cleartext-Password', ':=', '123456');
INSERT INTO radcheck
(username, `attribute`, op, value)
VALUES('miguelangel', 'Framed-Protocol', ':=', 'PPP');
INSERT INTO radcheck
(username, `attribute`, op, value)
VALUES('miguelangel', 'Simultaneous-Use', ':=', '1');
INSERT INTO radreply
(username, `attribute`, op, value)
VALUES('miguelangel', 'Framed-Pool', '=', 'localpool');
Paso Final: Probar la Conexión
En este último paso, verificaremos que la configuración del servidor FreeRADIUS y PPPoE esté funcionando correctamente. Utilizaremos un cliente TP-Link para realizar la conexión PPPoE.
Ingresar Credenciales del paso 5.2
Ver logs para revisar el estatus de la autenticación.
-En el servidor FreeRADIUS ingresamos los siguiente:
tail -f /var/log/freeradius/radius.log
-En el Router Cisco
En la consola de cisco ios activar lo siguiente:
debug ppp authentication
debug ppp negotiation
debug radius
debug pppoe events
debug pppoe errors
Cuando se realiza la conexión al TP-Link y se ingresan las credenciales PPPoE (usuario: miguelangel, contraseña: 123456), el router TP-Link intenta autenticarse contra el servidor FreeRADIUS. Si la autenticación es exitosa, el servidor FreeRADIUS valida las credenciales y autoriza la conexión. Como resultado, el foco del TP-Link cambia de color rojo (desconectado) a verde (conectado), indicando que la conexión PPPoE se ha establecido correctamente.
En el estado, podemos ver que se nos fue asignado la ip: 192.168.66.2, del pool que creamos en el paso 3.3
-Activar la red WIFI del TP-LINK, para que de este modo, todos los dispositivos que estén detrás de este equipo, tengan internet.
show running-config
Como paso final se muestra toda la configuración que ha sido aplicada al router, incluyendo interfaces, VLANs, NAT, AAA, y la configuración del servidor RADIUS, entre otros.
Current configuration : 3695 bytes
!
! Last configuration change at 23:55:42 UTC Fri Sep 6 2024
!
version 15.6
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname Router
!
boot-start-marker
boot-end-marker
!
!
!
aaa new-model
!
!
aaa authentication login default group radius local
aaa authentication ppp default group radius
aaa authorization exec default group radius local
aaa authorization network default group radius
!
!
!
!
!
aaa session-id common
aaa policy interface-config allow-subinterface
ethernet lmi ce
service-module wlan-ap 0 bootimage autonomous
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
multilink bundle-name authenticated
!
!
!
!
!
!
!
license udi pid C891FW-A-K9 sn FJC2112L1R2
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
bba-group pppoe clientes
virtual-template 1
!
!
interface BRI0
no ip address
encapsulation hdlc
shutdown
isdn termination multidrop
!
interface FastEthernet0
no ip address
shutdown
duplex auto
speed auto
!
interface GigabitEthernet0
description WAN
switchport access vlan 11
no ip address
spanning-tree portfast
!
interface GigabitEthernet1
switchport mode trunk
no ip address
spanning-tree portfast
!
interface GigabitEthernet2
no ip address
!
interface GigabitEthernet3
no ip address
!
interface GigabitEthernet4
no ip address
!
interface GigabitEthernet5
no ip address
!
interface GigabitEthernet6
no ip address
!
interface GigabitEthernet7
no ip address
!
interface GigabitEthernet8
no ip address
shutdown
duplex auto
speed auto
!
interface Virtual-Template1
mtu 1492
ip unnumbered Vlan66
ip nat inside
ip virtual-reassembly in
peer default ip address pool localpool
ppp authentication pap chap ms-chap ms-chap-v2 callin
ppp ipcp dns 8.8.8.8 8.8.4.4
!
interface Wlan-GigabitEthernet8
no ip address
!
interface wlan-ap0
no ip address
!
interface Vlan1
no ip address
!
interface Vlan11
description WAN
ip address 172.25.1.151 255.255.255.0
ip nat outside
ip virtual-reassembly in
!
interface Vlan55
description Server FreeRADIUS
ip address 192.168.55.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
!
interface Vlan66
ip address 192.168.66.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
pppoe enable group clientes
!
interface Async3
no ip address
encapsulation slip
!
ip local pool localpool 192.168.66.2 192.168.66.254
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
ip nat inside source list 50 interface Vlan11 overload
ip route 0.0.0.0 0.0.0.0 172.25.1.1
!
ip radius source-interface Vlan55
!
access-list 50 permit 192.168.55.0 0.0.0.255
access-list 50 permit 192.168.66.0 0.0.0.255
radius-server attribute 6 on-for-login-auth
radius-server attribute 8 include-in-access-req
radius-server attribute nas-port format e UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
radius-server attribute 31 mac format unformatted
radius-server attribute nas-port-id include vendor-class-id plus remote-id plus circuit-id
radius-server configure-nas
radius-server authorization default Framed-Protocol ppp
radius-server vsa send cisco-nas-port
!
radius server UbuntuServer
address ipv4 192.168.55.2 auth-port 1812 acct-port 1813
key temporal1
!
!
!
control-plane
!
!
!
mgcp behavior rsip-range tgcp-only
mgcp behavior comedia-role none
mgcp behavior comedia-check-media-src disable
mgcp behavior comedia-sdp-force disable
!
mgcp profile default
!
!
!
!
!
!
!
line con 0
no modem enable
line aux 0
line 2
no activation-character
no exec
transport preferred none
transport input all
stopbits 1
line 3
modem InOut
speed 115200
flowcontrol hardware
line vty 0 4
transport input none
!
scheduler allocate 20000 1000
!
end