Estoy intentando diseñar una red wifi para invitados para mi red existente, pero no estoy seguro de cómo proteger el punto de acceso wifi para invitados de la red principal, cuando el punto de acceso está contenido dentro de la red principal.
Intenté buscar esto, pero solo obtengo resultados de hardware de consumo que dice "haga clic en esta configuración" y generalmente asume que el enrutador principal también es el punto de acceso wifi, lo que facilita mucho la segregación lógica.
+----------+
| Internet |
+----+-----+
|
|
+-------+------+
| Linux Router | 10.0.0.0/24
+----------+ +--------------+
| | 10.0.0.1 | |
| +-------+------+ |
| Device A - 10.0.0.5 |
| |
| Linux Guest Wifi Router - 10.0.0.200 |
| + |
| | |
+----------------------------------------+
|
|
| Guest Subnet 10.0.1.0/24
+----+--------------------------+
| |
| Guest Device X - 10.0.1.5 |
| |
+-------------------------------+
El enrutador principal es una caja Linux con doble NIC (ext/int) (Debian 7 con iptables) y nada más. El punto de acceso wifi para invitados será un PI raspador que estoy solicitando y supongo que la configuración necesaria estará contenida en la caja wifi para invitados.
Pero no estoy seguro de cómo configurar iptables (nftables?) en el PI para garantizar que la red principal sea inaccesible, excepto para conectarse a Internet.
- ¿Cómo llega el "Dispositivo invitado X" a la puerta de enlace del enrutador principal (10.0.0.1) mientras se le niega el acceso al Dispositivo A (10.0.0.5)?
- ¿Cómo sé que el enrutador principal no enviará ninguna solicitud para 10.0.0.5 a la subred 10.0.0.0/24? ¿Necesitaré configurar iptables en el enrutador principal para que funcione en conjunto con el enrutador wifi?
Resultados deseados de 10.0.1.5:
- $ ping 10.0.0.5 - Destino inalcanzable/No hay ruta al host, etc.
- $ ping 8.8.8.8-OK
- $ ping 10.0.0.1 - (¿suponiendo que esté bien?)
- $ ping 10.0.0.200 - ¿Desconocido?
Discusión para una posible solución alternativa a continuación:
- Una sugerencia fue crear una segunda IP en el enrutador principal y tener la ruta wifi para invitados a esa IP. Entonces busqué documentos y encontré esto:
Esto haría que las cosas se vieran así:
Internet
|
Linux Router
(eth1 10.0.0.1) (eth1:1 10.0.1.1)
| |
Reg Network Guest Wifi Router (10.0.1.2)
(DHCP) |
Guest Device (10.0.?.?)
Así que no estoy seguro de algunas cosas en este momento.
- ¿Cómo configuro la tabla de enrutamiento del enrutador principal para evitar el tráfico de la subred 10.0.1.1 a 10.0.0.0/24? ¿O es esta una regla de iptables en el enrutador principal en este momento? No estoy seguro de ver en qué se diferencia esto de tener el enrutador wifi invitado en 10.0.0.0/24, ya que el enrutador principal aún podría enrutarse a otros dispositivos en esa red).
- Supongo que el enrutador wifi para invitados necesitaría un servidor DHCP para los dispositivos invitados. Pero, ¿los dispositivos invitados usarían la subred 10.0.1.0/24 con 10.0.1.1 como puerta de enlace, o configuraría otra subred 10.0.2.0/24 para los dispositivos invitados?
Respuesta1
Resumen de la situación, para verificar si entendí correctamente:
El AP invitado se conecta al enrutador principal como parte de la LAN o WLAN privada. Además de eso, desea una red de invitados que esté separada de la red privada, pero que necesariamente utilizará la red privada para llegar al enrutador principal.
Breve resumen de una posible solución:
La única forma de hacer que esto funcione de forma segura es hacer que el enrutador principal sea consciente de que hay dos redes y las separe adecuadamente con iptables
reglas. Entonces desea que su enrutador principal vea dos interfaces de red, una con 10.0.0.0/24 para el segmento privado y otra con 10.0.0.1/24 para el segmento de invitados. Supongo que sabes cómo configurar el enrutador principal con eso, según los comentarios.
Eso significa que la conexión desde el AP invitado (RaspPi) al enrutador principal debería utilizar algún tipo de túnel. La variante más sencilla sería unaVLAN, que "superpone" (posiblemente varias) LAN virtuales en su LAN privada.
Concretamente, agregue tanto en RaspPi como en Debian una interfaz de red virtual con algo como
ip link add link eth0 name eth0.55 type vlan id 55.
(elija una etiqueta VLAN), luego utilícela y configúrela eth0.55
como una interfaz de red normal. Una vez que funcione, puedes adaptarte /etc/network/interfaces
para que aparezca automáticamente.
Editar
Para el firewall, necesitará iptables
reglas que impidan que las interfaces eth0
se eth0.55
comuniquen entre sí, por lo que algo como
#!/bin/bash
PRIVIF=eth0
GUESTIF=eth0.55
iptables -P FORWARD ACCEPT
iptables -F FORWARD
iptables -A FORWARD -i $PRIVIF -o $GUESTIF -j DROP
iptables -A FORWAD -i $GUESTIF -o $PRIVIF -j DROP
(no probado). O hágalo aún más seguro con una política de reenvío predeterminada de DROP, y luego enumere todos los reenvíos que permita, preservando al mismo tiempo la funcionalidad NAT del enrutador (si la tiene).
Hay muchos tutoriales en línea sobre firewalls y iptables
, simplemente elige el que más te guste.