20 de Junio, 2005

Alternativas a los túneles SSH en redes inalámbricas

Hace 3 años que documenté cómo proporcionar salida a Internet con SQUID y túneles SSH en mi página sobre redes 802.11b y OpenBSD.

Después de valorar IPsec, experimentando lo complicado que es de manejar y los problemas que supone hacer interactuar implementaciones de distintos fabricantes, me decidí por emplear SSH y dejarme de encapsulaciones :).

No es excesivamente complicado realizar un túnel (y menos con un poco de ayuda), hay versión del cliente para casi cualquier sistema operativo y, bueno, el caso es que funciona. Pero la verdad es que la solución no es perfecta al 100%.

Se pueden hacer cuantos túneles deseemos, pero cada uno de ellos tiene como destino un solo objetivo.

En el caso de HTTP, HTTPS, FTP, y algunos protocolos ligeros que he habilitado (como Jabber con SSL o IRC), todo se soluciona con hacer un túnel a un proxy local (SQUID). Pero si queremos otros servicios, como POP3, no hay más remedio que abrir otro túnel extra.

Insisto en que es la mejor opción en relación calidad/precio ;).

Ahora he estado valorando otras soluciones, sin contar con IPsec, y la verdad es que ninguna me ha convencido.

Buscamos autenticación y cifrado de datos. Recordemos que elxwifi, como otras redes ciudadanas, es una red abierta y sin cifrado a nivel de enlace.

He echado un ojo a los protocolos relacionados con PPP (Point to Point Protocol) y me he contrado dos candidatos: PPPoE (PPP over Ethernet) y PPTP (Point to Point tunneling Protocol). A partir de aquí empieza un mar de acrónimos bastante difícil de digerir, avisado queda el lector :P.

Un vistazo rápido me lleva a descartar PPPoE, ya que ethernet es 802.3, con lo que no tengo claro que se pueda encapsular en 802.11b. Nos proporciona autenticación, pero no cifrado nativo (sí empleando MPPE). Además el servidor funcional que puedo encontrar para OpenBSD va en el espacio de usuario y tiene un rendimiento bastante pobre.

Así que queda PPTP. Veamos un poco de qué va este protocolo.

Se emplea para crear VPN (Virtual Private Netwok), aunque se dice que es menos efectivo que IPsec, y cuenta con un RFC algo especial (RFC 2637). Especial porque lo propone un consorcio y todo eso... pero lo que he leído por ahí es que pertenece a Microsoft, así que... :D.

Implementa sesiones PPP sobre GRE, que es un método genérico para encapsular protocolos (y funcionaría con 802.11b). La autenticación se realiza normalmente y hay intercambio de claves para emplear MPPE (Microsoft Point to Point Encryption, que parece estar basado en el uso de DES).

Hay clientes para casi cualquier sistema operativo (incluyendo implementaciones libres: PPTP Client), y servidores para OpenBSD (y otros sistemas poptop).

Lamentablemente la participación de Microsoft en el invento se nota, y además ha hecho caer mi líbido de cacharear por debajo de lo tolerable :'(.

Quedan otras soluciones, como encapsular PPP sobre UDP (emplear PPP sobre TCP tiene problemas lógicos). Esto tampoco sería una solución, aunque empleáramos MPPE para conseguir cifrado, porque perderíamos la portabilidad que da actualmente el empleo de túneles SSH (¿se puede hacer este tipo de uso de PPP en todos los sistemas?).

En definitiva: nos quedamos como estamos. Aunque ha sido bastante entretenida la investigación ;).

Anotación por Juan J. Martínez, clasificada en: wireless.

Hay 3 comentarios

Gravatar

Antes solía decir que "Es bueno cambiar aunque sea para peor", pero reconozco que la frase no deja de ser una tontería, al menos en el ámbito al que nos referimos en este momento.

Me alegro de que los túneles se queden como están.

Un saludo.

Santi

por Santi, en 2005-06-21 12:16:26

Gravatar

Si se quiere confidencialidad y autentificación por qué no usar WPA2. Según tengo entendido se puede autentificar mediante un sistema RADIUS y emplear cifrado AES para las comunicaciones. Además esta arquitectura al ser estándar debería ser independiente de la plataforma con lo que cualquier cliente podría acceder a elxwifi.

por igazmi, en 2005-06-21 13:36:22

Gravatar

No podemos cifrar a nivel de enlace (cualquier protocolo que se apoye en 802.11x) en una red ciudadana... por definición es abierta: cualquiera puede conectarse y hacer uso de ella. Aunque cifraramos haciendo las claves públicas, sería una contradicción (y evitaría que algunos usuarios accedieran por no conocer la clave, seguro).

Por otra parte hay usuarios de la red que tenemos nodos permanentes y queremos hacer uso de recursos restringidos en ellos (como nuestra conexión a Internet). Emplear RADIUS + WPA me parece inviable por lo que he comentado antes, por eso estamos valorando posibilidades a nivel de red (IPsec, PPTP) y a nivel de aplicación (túneles SSH + proxy).

Aunque no sé si se puede tener asociaciones y clientes funcionando con cifrado y sin cifrado. Desde luego el hard que empleamos no soporta WPA, pero me lo apunto para echarle un vistazo... gracias :)

por Juanjo, en 2005-06-21 13:46:20

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: