CREAR PORTAL CAUTIVO CON PHP Y RADIUS
En este post se muestra un ejemplo de como crear un portal cautivo en PHP con RADIUS, para autenticar usuarios y permitir el acceso a una red Wi-Fi. Este ejemplo se asume que tienes un servidor RADIUS (como FreeRADIUS) configurado y un router o punto de acceso (como MikroTik o UniFi) que soporta portales cautivos y se comunica con RADIUSh2 style="color:#333; border-bottom:2px solid #0a5; padding-bottom:8px; margin:40px 0 20px;">Requisitos previos- Servidor web: Apache o Nginx con PHP instalado.
- Servidor RADIUS: FreeRADIUS u otro, configurado con usuarios (por ejemplo, en una base de datos o archivo plano).
- Librería PHP-RADIUS: Usa una librería como php-radius para comunicarte con el servidor RADIUS.
- Router compatible: Configurado para redirigir tráfico no autenticado al portal (por ejemplo, MikroTik Hotspot o UniFi).
- Conocimiento básico: Dirección IP del servidor RADIUS, secreto compartido (shared secret), y puertos (1812 para autenticación, 1813 para contabilidad).
setPort($radius_port);
// Enviar solicitud de autenticación
if ($radius->AccessRequest($username, $password)) {
$_SESSION['authenticated'] = true;
$_SESSION['username'] = $username;
$_SESSION['client_ip'] = $client_ip;
$_SESSION['client_mac'] = $client_mac;
// Opcional: Enviar señal al router para autorizar (por ejemplo, MikroTik API)
// Esto depende del router. Ejemplo con MikroTik:
// $mikrotik_api->authorize($client_ip, $client_mac);
header("Location: welcome.php");
exit;
} else {
header("Location: index.php?error=Credenciales incorrectas o error en RADIUS");
exit;
}
} else {
header("Location: index.php");
exit;
}
Solo he puesto el fichero que procesa el formulario con login y password.