V
e
r

l
i
s
t
a
d
o

tractatus@lapipaplena:/# _

 

opennds

[Open Network Demarcation Service]. Controla el acceso a una conexión pública a internet y ofrece una forma sencilla de abrir un punto de acceso para redes inalámbricas. Proporciona un portal cautivo para informar a los usuarios sobre los servicios y, opcionalmente, para que acepten los términos y condiciones de uso. El cliente reciba automáticamente una página web la primera vez que intente navegar, no pueda salir a Internet hasta que "valide" el acceso de alguna de las formas que se hayamo configurado: pulsar "Acepto", rellenar un formulario, ver un vídeo, pagar, introducir un token, etc y una vez validado, opennds le da de alta en la "lista blanca" durante el tiempo que se configure y le permite navegar.

# systemctl enable opennds
arrancar el servicio al iniciar el sistema si no se ha realizado durante la instalación

1.-

Proceso en que el cliente ha de pulsar el botón "aceptar"

Ejemplo mínimo de configuración

# nano /etc/opennds/opennds.conf

# Interfaz donde está el AP

GatewayInterface wlan0

# Puerto interno (opcional)

GatewayPort 2050

# Página que mostraremos (puede ser remota)

FasRemoteIP 192.168.1.1

FasPath /nds/splash.html

FasSecureEnabled 0 # no HTTPS para el ejemplo

# Duración del paso

SessionTimeout 14400 # 4 h

# Script que decide: cualquier petición con ?tok=accept

BinAuth /usr/lib/opennds/binauth_log.sh

Página splash.html

# nano /var/www/nds/splash.html
<!doctype html>
<html>
<head><meta charset="utf-8"><title>Bienvenido</title></head>

<body>

<h1>Wi-Fi Gratuito</h1>

<p>Pulse el botón para navegar 4 h.</p>

<form method="GET" action="http://192.168.1.1:2050/opennds_preauth/">

<input type="hidden" name="tok" value="accept">

<button type="submit">Acepto</button>

</form>

</body>

</html>

Ejemplo orientativo de script binauth_log.sh

# nano /usr/lib/opennds/binauth_log.sh

#!/bin/sh

# $1=method (auth), $2=clientip, $3=clientmac, $4=tok, $5=redir

[ "$4" = "accept" ] && exit 0 # autorizado

exit 1 # rechazado

# chmod 755 /usr/lib/opennds/binauth_log.sh
hacerlo ejecutable
# systemctl restart opennds
reiniciar el demonio

Para probar, conectarse al SSID "Wi-Fi Gratuito", abrir el navegador y aparece la splash, pulsar "Acepto" y pennds te da de alta y redirige a la página que querías.

# ndsctl status
muestra la lista de clientes autorizados
# opennds -f -d 7 # nivel debug 7
depurar en primer plano
Navegando por staredsi.eu aceptas las cookies que utilizamos en esta web. Más información: Ver política de cookies
[0] 0:bash*
4442 entradas - Acerca del Tractatus
La Pipa Plena 2025