===== Conexión a portales cautivos (HotSports / Puntos de acceso WiFi) =====
Los portales cautivos son esos HotSpots que una vez conectados, obligan a autenticarse o aceptar determinadas políticas mediante un formulario web antes de navegar. Para forzar a que el usuario se autentique, estos portales suelen usar direcciones DNS / HTTP. Son comunes en centros de ciudades, aeropuertos, servicios de transporte, supermercados, etc.
Los dispositivos móviles una vez conectan, suelen mostrar directamente la página donde se debe interactuar (autenticar el usuario, aceptar políticas, introducir correo, etc). Esto en sistemas operativos no es tan común y se exponen a continuación una serie de cosas a tener en cuenta para poder autenticarse con este tipos de puntos de acceso.
* DHCP debe estar activo para obtener una IP de la red del Punto de acceso.
* Se deben usar los DNS del punto de acceso, normalmente se obtienen mediante DHCP.
*Para conocer la URL del portal cautivo es necesario intentar una conexión http (NO HTTPS). Las conexiones HTTPS mostrarán un error de certificado o bien de conexión reinicializada. El uso de curl y cualquier petición http puede valer para visualizar la redirección http al panel web del portal cautivo. Los servidores web suelen avisar también con un mensaje del tipo "//You must log in to this network before you can access the internet.//" Pulsando sobre el botón "//Open network login page//" debería de abrirse la URL del portal cautivo.
NOTA: Si pese a estar conectados a la red WiFi y haber obtenido una IP no se obtiene respuesta sobre la URL del portal cautivo, en algunas ocasiones funciona introducir la IP de la puerta de enlace en el navegador.
===== Aportar el mínimo de información en portales cautivos WiFi usando DHCPCD =====
El uso de DHCP es obligado en este tipo de conexiones, por tanto, cuanto menos información se ofrezca mejor. Esta guía se basa en dhcpcd que es actualmente el mejor cliente en cuanto a posibilidades de personalización.
En las conexiones DHCP, la manera de identificar sesiones es mediante direcciones MAC u operaciones sobre las mismas. Las MAC como es sabido cuales son únicas e identifican interfaces de red concretos y fabricantes. Pero no solo se muestra información sobre la interfaz wireless, el DUID, que es el método actual más utilizado para sesiones DHCPCD, es en muchas ocasiones derivado de la primera interfaz del sistema, la cual suele ser ethernet. También los servidores dhcp pueden ofrecer el hostname como identificador a los puntos de acceso.
Dependiendo de como se generan los identificadores DUID y las opcines definidas, los códigos del vendedor del dispositivo también pueden estar presentes. Es decir, es factible obtener direcciones físicas de interfaces de red (includo no Wireless), del dispositivo (ej modelo de laptop) y el hostname del sistema operativo. No solo mediante identificadores derivados de esos números de serie, si no que DHCP también implementa opciones concretas con información del fabricante, URLs y campos informativos extra.
**Comandos y Ficheros para obtener información sobre identificadores en DHCPCD**.
/var/lib/dhcpcd/duid # De existir no dhcpcd no generará uno a la hora de conectar y usara el del sistema de ficheros.
# Se recomienda revisar por si ofrece información de direcciones MAC. De ser así puede ser eliminado o modificado.
journalctl -b | grep "IAID\|DUID" # Muestra valores IAID y DUID en uso.
/etc/machine-id # Identificador en el que GNU/Linux se basa el valor UUID que a su vez usa DUID en a mayoría de distribuciones.
Opciones que introducir en /etc/dhcpcd.conf. Se puede jugar con el orden de las opciones. Si la opción "anonymous" no se agrega al final del fichero, otras opciones pueden sobrescribir su comportamiento y enviar determinada información. Es útil si queremos falsear información, por ejemplo, un hostname concreto.
anonymous # Realiza la configuración DHCP usando el mínimo de información en el proceso.
randomise_hwaddr # Genera una MAC diferente y aleatoria en cada reinicio de la interfaz o conexión de red.
Controlar el contenido del fichero ///var/lib/dhcpcd/duid// para que no contenga información de MACs del sistema y comprobar su uso en base a las opciones definidas en /etc/dhcpcd.conf usando "journalctl" y filtrando por "DUID". Si el fichero es eliminado dhcpcd generará uno (pero no se creará el fichero, al menos mediante el demonio dhcpcd).
NOTA: Usando una configuración anónima para dhcp (o simplemente cambiando el DUID) fuerza que el punto de acceso nos asigne una IP diferente cada vez, esto puede ser molesto si el 99% del tiempo usamos la red de casa o la oficina. Se pueden tener dos configuraciones y cambiar de una a otra mediante un pequeño script. Todo depende con la frecuencia con que conectemos a este tipo de redes WiFi de portal cautivo.
**Opciones de dhcpcd.conf que permite especificar la información con la que se conecta**.
hostname # Envía el hostname "/etc/hostname".
clientid # Ofrece la MAC Interface como identificador
interface wlan0 # Ofrece los ultimos4 octetos de la MAC (es lo que se denomina como IAID (no es muy usado este método)
iaid wlan0
duid # El método predeterminado, depende de la versión y sistema se puede generar de varias maneras, por ejemplo:
# valor aleatorio basado en un hash de /etc/machine-id + timestamp + la MAC de la primera interfaz de red.
NOTA: En cuanto a intentar el máximo anonimato posible, hay que tener algunas cosas en mente a la hora de usar este tipo de portales. Por ejemplo el navegador puede ayudar a identificarnos ya que el portal cautivo implica uso de navegador para acceder a la red. Por lo que tal vez sea recomendado usar un Browser agent alternativo y vigilar algunas otras opciones del navegador. También habría que mirar el uso de DNS a usar una vez tengamos acceso a internet y qué tráfico de red saliente generado automáticamente pueda comprometer nuestro anonimato (ej tráfico multicast o de aplicaciones plug&play con información de usuarios o nombres de host, actualizaciones del sistema, etc).