29.3. Redes sin cables (wireless)

Escrito por Eric Anderson.

29.3.1. Introducción

Puede resultar muy útil el ser capaz de utilizar una computadora sin la molestia de tener un cable de red colgando de la máquina en todo momento. FreeBSD puede utilizarse como un cliente de wireless e incluso como un punto de acceso.

29.3.2. Modos de operación Wireless

Existen dos formas diferentes de configurar dispositivos wireless 802.11: BSS e IBSS.

29.3.2.1. Modo BSS

El modo BSS es el que se utiliza normalmente. Este modo también se denomina modo infraestructura. En esta configuración se conectan un determinado número de puntos de acceso a una red cableada. Cada red Cada red wireless posée su propio nombre. Este nombre es el SSID de la red.

Los clientes wireless se conectan a estos puntos de acceso. El estándar IEEE 802.11 define el protocolo que se utiliza para realizar esta conexión. Un cliente wireless puede asociarse con una determinada red wireless especificando el SSID. Un cliente wireless también puede asociarse a cualquier red que se encuentre disponible; basta con no especificar ningún SSID.

29.3.2.2. Modo IBSS

El modo IBSS, también conocido como modo ad-hoc, se ha diseñado para facilitar las conexiones punto a punto. En realidad existen dos tipos distintos de modos ad-hoc. Uno es el modo IBSS, también conocido como modo ad-hoc o modo ad-hoc del IEEE. Este modo se encuentra especificado en el estándar IEEE 802.11. El segundo tipo se denomina modo ad-hoc de demostración o modo ad-hoc de Lucent (y algunas veces, también se le llama simplemente modo ad-hoc, lo cual es bastante confuso). Este es el modo de funcionamiento antíguo, anterior al estándar 802.11, del modo ad-hoc debería utilizarse sólo en instalaciones propietarias. No profundizaremos más sobre estos modos de funcionamiento.

29.3.3. Modo infraestructura

29.3.3.1. Puntos de acceso

Los puntos de acceso son dispositivos de red wireless que funcionan de forma equivalente a los hubs o concentradores, permitiendo que varios clientes wireless se comuniquen entre sí. A menudo se utilizan varios puntos de acceso para cubrir un área determinada como una casa, una oficina u otro tipo de localización delimitada.

Los puntos de acceso poseen típicamente varias conexiones de red: la tarjeta wireless y una o más tarjetas Ethernet que se utilizan para comunicarse con el resto de la red.

Los puntos de acceso se pueden comprar como tales pero también se puede configurar un sistema FreeBSD para crear nuestro propio punto de acceso wireless utilizando un determinado tipo de tarjetas wireless que poseen tales capacidades de configuración. Existe una gran cantidad de fabricantes de hardware que distribuyen puntos de acceso y tarjetas de red wireless, aunque las capacidades de unos y otras varín.

29.3.3.2. Construcción de un punto de acceso basado en FreeBSD

29.3.3.2.1. Requisitos

Para crear nuestro propio punto de acceso con FreeBSD debemos utilizar un determinado tipo de tarjeta wireless. Por el momento, sólo las tarjetas con el chip Prism nos permiten hacer un punto de acceso. También vamos a necesitar una tarjeta para red cableada que sea soportada por el sistema (esto no es muy complicado dada la ingente cantidad de dispositivos de este tipo que funcionan en FreeBSD). Para este ejemplo vamos a suponer que queremos puentear (bridge(4)) todo el tráfico entre la red cableada y la red inalámbrica.

El uso como punto de acceso wireless (también denominado hostap) funciona mejor con determinadas versiones del firmware. Las tarjetas con chip Prism2 deben disponer de la versión 1.3.4 (o superior) del firmware. Los chips Prism2.5 y Prism3 deben disponer de la versión 1.4.9 o superior del firmware. Las versiones más antíguas de estos firmwares pueden no funcionar correctamente. A día de hoy la única forma de actualizar el firmware de las tarjetas es usando las herramientas que proporciona el fabricante para Windows®.

29.3.3.2.2. Puesta en marcha del sistema

Primero debemos asegurarnos de que el sistema reconoce la tarjeta wireless:

# ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
        inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
        ether 00:09:2d:2d:c9:50
        media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
        status: no carrier
        ssid ""
        stationname "nodo Wireless FreeBSD"
        channel 10 authmode OPEN powersavemode OFF powersavesleep 100
        wepmode OFF weptxkey 1

No se preocupe si no entiende algo de la configuración anterior, lo importante es asegurarse de que el sistema muestra algo parecido, lo cual nosindicará que la tarjeta wireless ha sido correctamente reconocida por FreeBSD. Si el interfaz inalámbrico no es reconocido correctamente y se está utilizando una tarjeta PC Card consulte pccardc(8) y pccardd(8), en las que tiene mucha información al respecto.

A continuación, para que podamos disponer de un bridge deberá cargar el módulo del kernel bridge(4) por el sencillo procedimiento de ejecutar la siguiente orden:

# kldload bridge

No debería aparecer mensaje de error alguno al ejecutar dicha orden. Si apareciera alguno quizás deba compilar el kernel del sistema con bridge(4) incluído. La sección Bridging de éste manual incluye información abundante para llevar a buen puerto esa tarea.

Una vez que tenemos el soporte de bridging cargado debemos indicar a FreeBSD qué interfaces se desean puentear. Para ello emplearemos sysctl(8):

# sysctl net.link.ether.bridge=1
# sysctl net.link.ether.bridge_cfg="wi0,xl0"
# sysctl net.inet.ip.forwarding=1

En FreeBSD 5.2-RELEASE y posteriores se deben emplear las siguientes opciones en lugar de las anteriormente expuestas:

# sysctl net.link.ether.bridge.enable=1
# sysctl net.link.ether.bridge.config="wi0,xl0"
# sysctl net.inet.ip.forwarding=1

Ahora es el momento de configurar la tarjeta de red inalámbrica. La siguiente orden convierte la tarjeta en un punto de acceso:

# ifconfig wi0 ssid mi_red channel 11 media DS/11Mbps mediaopt hostap up stationname "PA FreeBSD"
         

La línea de ifconfig(8) levanta el interfaz wi0, configura el SSID con el valor de mi_red y también el nombre de la estación como FreeBSD. La opción media DS/11Mbps configura la tarjeta a 11Mbps. Ésto es necesario para que cualquier valor que se necesite asignar a mediaopt surta efecto. La opción mediaopt hostap sitúa el interfaz en modo punto de acceso. La opción channel 11 configura la tarjeta para que use el canal de radio número 11. En wicontrol(8) encontraráa rangos de canales válidos para varios dominios regulatorios. Por favor, tenga en cuenta que no todos los canales son legales en todos los países.

Despues de esto deberíamos disponer de un punto de acceso completamente funcional y en ejecución. Le animamos a consultar wicontrol(8), ifconfig(8) y wi(4) para máss información.

También le recomemdamos leer la sección sobre cifrado que econtrará más adelante.

29.3.3.2.3. Información de estado

Una vez que el punto de acceso estáconfigurado resulta interesante poder obtener información acerca de los clientes que estén asociados. La persona encargada de la administración del punto de acceso puede ejecutar cuando estime oportuno lo siguiente:

# wicontrol -l
1 station:
00:09:b7:7b:9d:16  asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15

Lo que aquí se muestra indica que hay una única estación asociada y nos suministra sus parámetros. Los valores de señal que se muestran se deben tomar sólo como indicaciones aproximadas de la fuerza de dicha señal. Su traducción a dBm u otras unidades varía según la versión del firmware de la tarjeta que se use.

29.3.3.3. Clientes

Un cliente wireless es un sistema que se comunica con un punto de acceso o directamente con otro cliente wireless.

Generalmente los clientes wireless sólo poseen un dispositivo de red: la tarjeta de red inalámbrica.

Existen varias formas de configurar un cliente wireless basadas en los distintos modos inalámbricos, normalmente reducidos a BSS (o modo infraestructura, que requiere de un punto de acceso) y el modo IBSS (modo ad-hoc, o modo punto a punto). En nuestro ejemplo usaremos el más famoso de ambos, el BSS, para comunicarnos con un punto de acceso.

29.3.3.3.1. Requisitos

Sólamente existe un requisito real para configurar un sistema FreeBSD como cliente inalámbrico: usar una tarjeta de red inalámbrica soportada por el sistema.

29.3.3.3.2. Ejecución de un cliente inalámbrico FreeBSD

Para utilizar una red inalámbrica se necesitan conocer algunos conceptos básicos de redes de redes wireless. En nuestro ejemplo queremos conectarnos a la red inalámbrica mi_red y queremos hacerlo con el soporte de cifrado desactivado.

Nota:

En este ejemplo no se utiliza cifrado, lo cual resulta ser bastante peligroso. En la próxima sección aprenderemos cómo activar el sistema de cifrado común el los dispositivos inalámbricos, por qué resulta importante hacerlo y por qué algunas tecnologías de cifrado no son suficientes para protegernos completamente.

Asegúrese de que FreeBSD reconoce su tarjeta de red inalámbrica:

# ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
        inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
        ether 00:09:2d:2d:c9:50
        media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
        status: no carrier
        ssid ""
        stationname "FreeBSD Wireless node"
        channel 10 authmode OPEN powersavemode OFF powersavesleep 100
        wepmode OFF weptxkey 1

A continuación debemos especificar los parámetros correctos para nuestra red:

# ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid mi_red

Sustituya 192.168.0.20 y 255.255.255.0 con una dirección IP y máscara de red que se adecúen con el espacio de direccionamiento de la red cableada. Recordemos que nuestro punto de acceso está puenteando la red inalámbrica y la red de cable, de modo que para el resto de dispositivos de la red el cliente inalábrico se muestra como un elemento más de la red cableada.

Llegados a este punto deberíamos poder hacer ping a las máquinas de la red cableada como si estuviéramos compartiendo el mismo enlace físico cableado.

Si se presentan problemas con la conexión inalámbrica se puede comprobar si la tarjeta wireless se encuentra correctamente asociada (conectada) con el punto de acceso:

# ifconfig wi0

ebería devolver algún tipo de información entre la que deberíamos observar la siguiente línea:

status: associated

Si no aparece la palabra associated puede ser que nos encontremos fuera de la cobertura proporcionada por el punto de acceso o puede ser que necesitemos activar el cifrado, aunque éstos no son los únicos problemas con los que nos podemos encontrar.

29.3.3.4. Cifrado

El cifrado, también llamado codificación, de una red inalámbrica es un proceso importante porque, a diferencia de lo que ocurre con las redes cableadas convencionales, las redes inalámbricas no se pueden restringir a un espacio físico determinado. Los datos que viajan a través de ondas de radio se difunden a través de las paredes y alcanzan a los vecinos más cercanos. Aquí es donde entra en en juego el sistema de cifrado. El cifrado se emplea para evitar que cualquiera pueda examinar los datos enviados a través del aire.

Los dos métodos más comunes para realizar el cifrado de datos entre el cliente y el punto de acceso son WEP e ipsec(4).

29.3.3.4.1. WEP

WEP son las siglas de Wired Equivalency Protocol. WEP es un un intento de crear redes inalámbricas al menos tan seguras omo las redes cableadas o al menos de seguridad equivalente a dichas redes. Por desgracia el sistema WEP es débil y resulta bastante sencillo de romper. Esto significa que cuando se transmite información de carácter crítico no se debe confiar únicamente en este sistema de cifrado.

No obstante es mejor que no utilizar nada; puede activar WEP en el sistema que hace de punto de acceso mediante:

# ifconfig wi0 inet up ssid
              mi_red wepmode on wepkey
              0x1234567890 media DS/11Mbps
              mediaopt hostap

y en un cliente inalámbrico mediante la siguiente orden:

# ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid mi_red wepmode on wepkey 0x1234567890

Por favor, tenga un poco de sentido común y reemplace la clave 0x1234567890 por otra clave menos obvia.

29.3.3.4.2. IPsec

ipsec(4) es una herramienta más robusta y potente para cifrar datos que se mueven a través de una red. Es el mecanismo más conveniente para asegurar los datos de una red inalámbrica. Tiene más información sobre el protocolo ipsec(4) y cómo utilizarlo en la sección IPsec de este manual.

29.3.3.5. Herramientas

No hay muchas herramientas disponibles si se quiere depurar y monitorizar redes inalámbricas pero en el siguiente apartado mostraremos cómo utilizar algunas de ellas.

29.3.3.5.1. El paquete bsd-airtools

El paquete bsd-airtools es un conjunto muy completo de herramientas wireless que se pueden utilizar para multitud de tareas, entre las cuales podemos citar citar el desciframiento de claves WEP, detección de puntos de de acceso, monitorización de la señal de radio, etc.

El paquete bsd-airtools se puede instalar como port desde net/bsd-airtools. La información relacionada con los ports puede encontrarse en la sección Capítulo 4, Instalación de aplicaciones: «packages» y ports de este manual.

El programa dstumbler es una herramienta que permite descubrir puntos de acceso y entre otras cosas muestra de forma gráfica la relación señal / ruido del enlace. Si se experimentan problemas para acceder a un determinado punto de acceso dstumbler puede ser muy útil.

Para probar la seguridad de la red inalámbrica se puede usar dweputils, concretamente las órdenes dwepcrack, dwepdump y dwepkeygen. Estas órdenes permiten determinar hasta qué punto la seguridad que ofrece WEP es suficiente para nuestras necesidades.

29.3.3.5.2. Las utilidades wicontrol, ancontrol y raycontrol

Mediante estas herramientas se puede controlar el comportamiento de la tarjeta de red inalámbrica. En los ejemplos anteriores se ha utilizado wicontrol(8) debido a que la tarjeta de red del ejemplo utiliza el interfaz wi0. Si se posée una tarjeta wireless de Cisco dicha tarjeta se mostrará en el sistema mediante el interfaz an0 y por lo tanto la orden equivalente que se debe usar será ancontrol(8).

29.3.3.5.3. ifconfig

Con ifconfig(8) se puede utilizar unas cuantas de las opciones que se pueden usar con wicontrol(8), pero no obstante no posée todas las funcionalidades que proporciona wicontrol(8). Se recomienda leer ifconfig(8) para conocer los detalles de los parámetros y opciones que admite.

29.3.3.6. Tarjetas de Red inalámbricas soportadas

29.3.3.6.1. Puntos de acceso

Las únicas tarjetas que soportan el modo de funcionamiento funcionamiento BSS (pueden funcionar como puntos de acceso) son los dispositivos basados en el chip Prism 2, 2.5 ó 3. Consulte wi(4) para ver una lista completa de ellos.

29.3.3.6.2. Clientes

FreeBSD soporta casi todas las tarjetas inalámbricas 802.11b 802.11b que se encuentran actualmente en el mercado. La mayoría de las tarjetas basadas en los chips Prism, Spectrum24, Spectrum24, Hermes, Aironet y Raylink tambíen funcionan en modo IBSS (modos ad-hoc, punto a punto y BSS).

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.

Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.