Un mini-portal cautivo wifi
Estaba pensando en poner un AP en mi casa con mi tarjeta Prism2+Antena omni, y si seria facil hacer un pequeño portal cautivo (por no usar NoCat). Las herramientas serian un proxy dns, un servidor dhcp, apache e iptables.
Mi idea es dar acceso a Internet limitado, (solo se podría navegar en internet por Almeria-wireless.org), ademas de redirigir las demas web hacia esta.
Tengo el driver hostap configurado para que la tarjeta actue en modo Master con ssid "latinnodo.almeria-wireless.org" (el maximo son 32 caracteres).
Buscando en apt encontre dnsMasq, que es un proxy dns y servidor dhcp que me viene perfecto. Basta activar el servidor dhcp y en mi caso decirle que no use el /etc/hosts.
dhcp-range=192.168.0.50,192.168.0.150,12h
Para hacer el portal cautivo necesitamos iptables con filter, snat y dnat.
En primer lugar filtramos:
# Permitir dhcp
$IPT -A INPUT -i wlan0 -p udp --source-port 68 --destination-port 67 -d 255.255.255.255 -j ACCEPT
# LOG & DROP
# no permitir ip fuera de rango
$IPT -A INPUT -i wlan0 -s ! 192.168.0.0/24 -j LOG
$IPT -A INPUT -i wlan0 -s ! 192.168.0.0/24 -j DROP
# no jugar con el servidor
$IPT -A INPUT -i wlan0 -s 192.168.0.1 -j LOG
$IPT -A INPUT -i wlan0 -s 192.168.0.1 -j DROP
# Ahora hacemos (S)Nat, pero solo hacia la ip de almeria-wireless.
$IPT -t nat -A POSTROUTING -s 192.168.0.0/24 -p tcp --destination-port 80 -d 150.214.157.71 -j MASQUERADE
# Para capturar otras web hacemos DNAT
$IPT -t nat -A PREROUTING -i wlan0 -p tcp --destination-port 80 -d ! 150.214.157.71 -j DNAT --to-destination 192.168.0.1:81
En la ultima regla no puedo redirigir el trafico directamente al servidor de almeria-wireless porque no tomaria el vhost adecuado de apache. Para ello arranco un apache ligado a 192.168.0.1 y puerto 81 sin vhosts, y como indice pongo:
<html><head>
<meta http-equiv="Refresh" content="1, http://www.almeria-wireless.org" />
</head><body>
<a href="http://www.almeria-wireless.org">http://www.almeria-wireless.org</a>
</body></html>
De esta manera es el propio navegador el que se redirige a la web permitida de almeria-wireless.
No hay comentarios:
Publicar un comentario