User Tag List

Gracias Gracias:  0
Me agrada Me agrada:  0
Me desagrada Me desagrada:  0
Resultados 1 al 1 de 1

Tema: Configuración MikroTik PPPoE Server con freeRADIUS Server

  1. #1

    Fecha de ingreso
    07 Sep, 20
    Mensajes
    13
    Reconocimientos
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Configuración MikroTik PPPoE Server con freeRADIUS Server

    En este manual, te guiaré a través del proceso de utilizar FreeRadius como servidor RADIUS y MikroTik como servidor PPPoE para establecer una autenticación y autorización robusta en tu red. A lo largo de los siguientes pasos, aprenderás cómo crear usuarios con asignaciones de IP estáticas y dinámicas, así como cómo limitar el ancho de banda para estos usuarios, todo administrado directamente desde FreeRadius.


    Nota

    Antes de comenzar, es importante asegurarse de que ya tengas instalado y configurado correctamente el servidor RADIUS. Si aún no has completado esta parte, te recomiendo seguir las instrucciones detalladas en el manual de instalación y configuración del servidor FreeRADIUS.
    Puedes acceder a ese manual aquí: http://foroisp.com/threads/1983-Inst...s-con-Mikrotik


    De igual forma es importante que tengas configurado y funcionando un servidor PPPoE en tu Router Mikrotik, si aun no lo tienes puedes seguir los pasos de este manual aquí: http://foroisp.com/threads/1606-Como...oE-en-Mikrotik

    Una vez hayas configurado exitosamente el servidor RADIUS, estarás listo para comenzar con los pasos que se describen en este manual. Descubrirás cómo crear usuarios con asignaciones de IP estáticas y dinámicas y cómo aplicar restricciones de ancho de banda a través del servidor FreeRadius. Sigue cada paso cuidadosamente para lograr una autenticación segura y un control eficiente del acceso a tu red.

    Partiendo de la siguiente topologia de red.
    Nombre:  topogia-red-freeradius-con-mikrotik.jpeg
Visitas: 1530
Tamaño: 18.2 KB

    1 Agregar el servidor FreeRadius al Router Mikrotik
    Acceder al Router mikrotik ir la sección Radius y agregar nuevo registro [+]

    Nombre:  conectar-freeradius-al-router-mikrotik-con-pppoe-server.png
Visitas: 1502
Tamaño: 26.2 KB

    Donde:


    • Service: Aquí debes seleccionar PPP para protocolo de autenticación Point-to-Point Protocol.
    • Address: Debes ingresar la dirección IP del servidor FreeRadius. Esta dirección indica dónde se encuentra el servidor RADIUS que procesará las solicitudes de autenticación y autorización.
    • Protocol: Por defecto, el protocolo utilizado para las comunicaciones RADIUS es UDP (User Datagram Protocol), que es un protocolo de transporte liviano y eficiente.
    • Secret: La clave secreta es un código compartido entre el router MikroTik y el servidor RADIUS. Sirve para autenticar y encriptar las comunicaciones entre ambos.
    • Authentication Port: El puerto de autenticación (por defecto 1812) es el punto de entrada en el servidor RADIUS donde el router MikroTik enviará las solicitudes de autenticación de usuarios para su procesamiento.
    • Accounting Port: El puerto de contabilidad (por defecto 1813) es el puerto en el servidor RADIUS donde se registrarán las actividades de los usuarios, como la duración de la sesión y el uso de ancho de banda.


    2 Activar Autorización Radius en el protocolo PPP

    En Mikrotik acceder a PPP > Secrets > PPP Authentication&Accounting y activar: Use Radius.
    Nombre:  activar-radius-en-pppoe-server.png
Visitas: 1520
Tamaño: 17.4 KB

    3 Creación de usuarios con IP Estática.

    Para este ejemplo se creara un usuario para autenticación y autorización PPPoE con los siguientes datos:
    • User: user1
    • Password: 123456
    • IP: 192.168.90.2



    En nuestro servidor, acceder a la base de datos de FreeRADIUS

    mysql -u root -p
    USE radius;

    Y creamos el usuario con los siguientes sentencias de sql.

    INSERT INTO radcheck
    (username, `attribute`, op, value)
    VALUES('user1', 'Cleartext-Password', ':=', '123456');

    INSERT INTO radcheck
    (username, `attribute`, op, value)
    VALUES('user1', 'Framed-Protocol', ':=', 'PPP');

    INSERT INTO radcheck
    (username, `attribute`, op, value)
    VALUES('user1', 'Simultaneous-Use', ':=', '1');

    INSERT INTO radreply
    (username, `attribute`, op, value)
    VALUES('user1', 'Framed-IP-Address', '=', '192.168.90.2');


    Los registros que estás viendo en las tablas radcheck y radreply son parte de la configuración completa de un usuario para autenticación PPP en FreeRadius. Cada tabla almacena diferentes tipos de atributos relacionados con la autenticación y la autorización del usuario. A continuación, se explico el propósito de cada atributo y por qué se crearon varios registros para el mismo usuario:


    En la tabla radcheck:



    • Cleartext-Password: Este registro establece la contraseña en texto claro para el usuario. Cuando el usuario intenta autenticarse, el servidor FreeRadius verificará la contraseña ingresada con la almacenada en este registro. Es importante tener en cuenta que almacenar contraseñas en texto claro no es una práctica segura. En entornos de producción, se recomienda usar métodos de almacenamiento seguro, como hash y salting.
    • Framed-Protocol: Este registro establece el protocolo que se utilizará durante la sesión. En este caso, el valor 'PPP' indica que el protocolo será PPP, que es comúnmente utilizado para conexiones PPPoE y autenticación de acceso remoto.
    • Simultaneous-Use: Este registro controla la cantidad de sesiones simultáneas que el usuario puede tener activas. Establecerlo en 1 significa que solo se permitirá una única sesión activa al mismo tiempo para el usuario.



    En la tabla radreply:


    • Framed-IP-Address: Este registro especifica la dirección IP que se asignará al usuario durante la sesión. En este caso, la dirección IP '192.168.90.2' se asignará al usuario 'user1'.



    Ahora, respecto a por qué se crearon varios registros para el mismo usuario, esto se debe a que cada registro representa un atributo específico que se utiliza para configurar diferentes aspectos de la autenticación y la autorización. FreeRadius utiliza tablas separadas para almacenar atributos que tienen diferentes propósitos. Por ejemplo, radcheck almacena atributos relacionados con la autenticación, mientras que radreply almacena atributos de autorización que se enviarán al cliente durante la sesión.

    En resumen, la creación de múltiples registros con diferentes atributos en las tablas radcheck y radreply es una práctica común para configurar de manera completa y detallada la autenticación y la autorización de usuarios en un servidor FreeRadius. Cada atributo cumple una función específica en el proceso de autenticación y acceso a la red.

    Comprobamos conexión en una PC Windows
    Nombre:  conectar-cliente-freeradius1.jpeg
Visitas: 1498
Tamaño: 66.3 KB
    Nombre:  conectar-cliente-freeradius2.jpeg
Visitas: 1541
Tamaño: 12.3 KB

    Verificamos la conexión del usuario en nuestro Router.
    Nombre:  conexion-exitosa-cliente-freeradius.png
Visitas: 1510
Tamaño: 11.9 KB

    4 Creación de usuarios con IP Dinámica

    Para este ejemplo se creara un usuario para autenticación y autorización PPPoE con los siguientes datos:


    • User: user2
    • Password: 123456
    • IP: Dinámica (Por medio de un Pool)



    Accedemos a la base de datos de nuestro servidor freeRadius, y ejecutamos las siguientes sentencias sql.


    INSERT INTO radcheck
    (username, `attribute`, op, value)
    VALUES('user2', 'Cleartext-Password', ':=', '123456');

    INSERT INTO radcheck
    (username, `attribute`, op, value)
    VALUES('user2', 'Framed-Protocol', ':=', 'PPP');

    INSERT INTO radcheck
    (username, `attribute`, op, value)
    VALUES('user2', 'Simultaneous-Use', ':=', '1');


    INSERT INTO radreply
    (username, `attribute`, op, value)
    VALUES('user2', 'Framed-Pool', '=', 'dhcp_pool1');



    Como se puede notar las sentencias son iguales a como se creo en el paso 2 al crear usuario con IP Estática, la única diferencia en estas consultas es tabla radreply

    INSERT INTO radreply
    (username, `attribute`, op, value)
    VALUES('user2', 'Framed-Pool', '=', 'dhcp_pool1');


    El atributo Framed-Pool en la tabla radreply es utilizado en FreeRadius para asignar un pool específico de direcciones IP a un usuario durante una sesión. Los pools de direcciones IP se utilizan comúnmente en entornos de acceso remoto, como conexiones PPP o PPPoE, para asignar direcciones IP dinámicas a los usuarios mientras se autentican en la red.


    Cuando se utiliza el atributo Framed-Pool, el servidor FreeRadius selecciona una dirección IP disponible del pool especificado y la asigna al usuario durante la sesión. Esta dirección IP se utilizará para la conexión del usuario y se liberará una vez que la sesión finalice.

    Nota


    Es importante que el nombre del pool que se ingresa en la tabla redreply para el usuario, también exista en el Router y en el profile default que este ligado al server PPPoE.
    En este ejemplo el nombre del pool es: dhcp_pool1


    Nombre:  pool.png
Visitas: 1522
Tamaño: 41.3 KB

    Cliente autenticado.

    Nombre:  usuario-ip-dinamica-freeradius.png
Visitas: 1517
Tamaño: 6.2 KB

    5 Control ancho de banda.
    Para este ejemplo se creará el siguiente cliente con los siguientes datos de configuración


    • User: user3
    • Password: 123456
    • IP: 192.168.90.90
    • Velocidad (ancho de banda): 5 Megas Download / 5 Megas Upload


    Acceder a base de datos free radius y crear el usuario usando las siguientes sentencias

    INSERT INTO radcheck
    (username, `attribute`, op, value)
    VALUES('user3', 'Cleartext-Password', ':=', '123456');


    INSERT INTO radcheck
    (username, `attribute`, op, value)
    VALUES('user3', 'Framed-Protocol', ':=', 'PPP');


    INSERT INTO radcheck
    (username, `attribute`, op, value)
    VALUES('user3', 'Simultaneous-Use', ':=', '1');


    INSERT INTO radreply
    (username, `attribute`, op, value)
    VALUES('user3', 'Framed-IP-Address', '=', '192.168.90.90');


    Para el control ancho de banda utilizaremos el atributo "Mikrotik-Rate-Limit" en la tabla radreply de la base de datos de FreeRadius es utilizado para controlar el ancho de banda de un usuario al conectarse a través de un router MikroTik. La sintaxis general del valor del atributo es la siguiente:


    Mikrotik-Rate-Limit = 'Upstream/Downstream Burst-Limit/Burst-Threshold Burst-Time/priority'


    En la base de datos ingresamos la regla para limitar 5M/5M al usuario: user3

    INSERT INTO radreply
    (username, `attribute`, op, value)
    VALUES('user3', 'Mikrotik-Rate-Limit', '=', '5M/5M 0/0 0/0 0/0 8 500K/500K');


    Ahora, desglosemos el valor 5M/5M 0/0 0/0 0/0 8 500K/500K en la sentencia SQL:
    Donde:


    • 5M/5M: Esto establece la velocidad de subida (upstream) y bajada (downstream) del usuario en 5 Mbps para ambas direcciones.
    • 0/0: Aquí, 0 se utiliza para indicar que no se establece ningún límite de ráfaga (burst) en las velocidades.
    • 0/0: Esto también indica la falta de límites de ráfaga para umbrales.
    • 0/0: Al igual que los dos casos anteriores, estos valores indican la falta de limitación de ráfaga.
    • 8: Este número representa la prioridad. En este caso, se establece una prioridad de 8 para el usuario.
    • 500K/500K: Finalmente, se establece una velocidad de subida (upstream) y bajada (downstream) de 500 Kbps para ambos.


    Una vez el servidor halla autenticado y autorizado al usuario mandara al mikrotk los parametros de velocidad por medio de un queue dinamico.

    Nombre:  control-ancho-banda-freeradius-mikrotik.png
Visitas: 1529
Tamaño: 24.9 KB
    Última edición por miguel20; 18/08/2023 a las 14:10

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •