A diferencia de los sistemas operativos para consumidores (como Microsoft Windows), el sistema operativo GNU/Linux le brinda al administrador de red acceso completo a muchos elementos del trabajo en redes. Podemos acceder y manipular paquetes de red a cualquier nivel, desde la capa de enlace de datos hasta la capa de aplicación. Se pueden tomar decisiones de enrutamiento con base a cualquier información contenida en el paquete de red, desde la dirección de enrutamiento y puertos, hasta los contenidos de los segmentos de datos. Un punto de acceso basado en Linux puede actuar como enrutador, puente, corta fuego, concentrador VPN, servidor de aplicaciones, monitor de la red, o virtualmente cualquier otro rol de la red en el que usted pueda pensar. Es un software libre, y no requiere pagos de licenciamiento. Linux/GNU es una herramienta muy poderosa que puede ajustarse a una amplia variedad de roles en una infraestructura de red.
Agregar una tarjeta inalámbrica y un dispositivo Ethernet a una PC corriendo Linux le dará una herramienta muy flexible que puede ayudarlo a repartir el ancho de banda y administrar su red a un costo muy bajo. El equipamiento puede ser desde una computadora portátil reciclada, o una computadora de escritorio, hasta una computadora embebida, tales como un equipo de red Linksys WRT54G o Metrix.
En esta sección veremos cómo configurar Linux en las siguientes configuraciones:
Considere estas recetas como un punto de inicio. Construyendo estos ejemplos simples, puede crear un servidor que se ajuste de forma precisa a su infraestructura de red.
Antes de comenzar, debe estar familiarizado con Linux desde la perspectiva del usuario, y ser capaz de instalar la distribución Linux/Gnu de su elección. También se requiere una comprensión básica de la interfaz de línea de comando (terminal) en Linux.
Va a necesitar una computadora con una o más tarjetas inalámbricas instaladas previamente, así como una interfaz Ethernet estándar. Estos ejemplos utilizan una tarjeta y un manejador (driver) específicos, pero hay varios tipos diferentes de tarjetas que pueden funcionar igualmente bien. Las tarjetas inalámbricas basadas en los grupos de chips Atheros y Prism lo hacen particularmente bien. Estos ejemplos se basan en la versión de Linux Ubuntu 5.10 (Breezy Badger), con una tarjeta inalámbrica soportada por los manejadores HostAP o MADWiFi.
Para más información acerca de estos manejadores vea http://hostap.epitest.fi/ y http://madwifi.org/.
Para completar estas instalaciones se requiere del siguiente software, el cual debe estar incluido en su distribución Linux:
La potencia de CPU que se requiere depende de cuánto trabajo se tiene que hacer más allá de un simple enrutamiento y NAT. Para muchas aplicaciones una 486 de 133MHz es perfectamente capaz de enrutar paquetes a las velocidades inalámbricas. Si piensa usar mucha encriptación (como WEP o un servidor VPN), entonces necesita algo más rápido. Si también quiere correr un servidor de almacenamiento intermedio (como Squid, vea el capítulo tres) necesitará una computadora con mucha más rapidez, espacio de disco y memoria RAM. Un enrutador típico que solo esté realizando NAT puede operar con tan solo 64MB de RAM y almacenamiento.
Cuando armamos una máquina que está pensada para ser parte de una infraestructura de red, debemos tener en cuenta que los discos duros tienen una vida útil limitada en comparación con la mayoría de los otros componentes. A menudo puede utilizar almacenamiento de estado sólido, como un disco flash, en lugar de un disco duro. Este puede ser un manejador flash USB (suponiendo que su PC va a cargarse desde USB), o una tarjeta Compact Flash utilizando un adaptador de CF a IDE. Estos adaptadores son bastante económicos, y permiten que una tarjeta CF actúe en apariencia como un disco duro IDE. Pueden usarse en cualquier PC que soporte discos duros IDE. Como no tienen partes móviles, funcionarán por muchos años en un rango mucho más alto de temperaturas de las que puede tolerar un disco duro.
Este es el más simple de los escenarios, y es especialmente útil en situaciones donde usted quiere un único punto de acceso para una oficina. Es el más fácil en una situación donde:
Comience con una computadora ya configurada corriendo Linux/Gnu. Puede ser una instalación de Servidor Ubuntu, o Fedora Core. Para su funcionamiento, la computadora debe tener al menos dos interfaces, y al menos una de ellas debe ser inalámbrica. El resto de esta descripción supone que su puerto Ethernet (eth0) está conectado a la Internet, y que hay una interfaz inalámbrica (wlan0) que va a proveer la funcionalidad del punto de acceso.
Para saber si su grupo de chips soporta el modo maestro, pruebe con el siguiente comando en modo raíz (root):
# iwconfig wlan0 mode Master
…reemplazando wlan0 con el nombre de su interfaz.
Si obtiene un mensaje de error, su tarjeta inalámbrica no soporta el modo de punto de acceso. De todas formas puede probar la misma configuración en el modo ad hoc, que es soportado por todos los grupos de chips. Esto requiere configurar todas las computadoras portátiles que están conectadas al “punto de acceso” en el modo ad hoc, y puede que no funcione del modo que usted espera. En general es mejor encontrar una tarjeta inalámbrica que soporte el modo AP. Para obtener una lista de las tarjetas soportadas vea los sitios web HostAP y MADWiFi mencionados anteriormente.
Antes de continuar asegúrese de que dnsmasq está instalado en su computadora. Puede utilizar la herramienta de configuración gráfica de su distribución para instalarlo. En Ubuntu puede simplemente correr lo siguiente en modo raíz (root):
# apt-get install dnsmasq
Configure su servidor para que eth0 esté conectada a Internet. Utilice la herramienta de configuración gráfica que viene con su distribución.
Si su red Ethernet usa DHCP, puede probar con el siguiente comando como raíz:
# dhclient eth0
Debe recibir una dirección IP y una pasarela por defecto. Luego arranque su interfaz inalámbrica en el modo Maestro y póngale un nombre de su elección:
# iwconfig wlan0 essid “my network” mode Master enc off
El comando enc off desconecta la encriptación WEP. Para habilitar WEP agregue la clave hexagesimal del largo correcto:
# iwconfig wlan0 essid “my network” mode Master enc 1A2B3C4D5E
Como una alternativa, puede utilizar una clave legible comenzando con “s: ”
# iwconfig wlan0 essid “my network” mode Master enc “s:apple”
Ahora déle a su interfaz inalámbrica una dirección IP en una sub red privada, pero asegúrese de que no sea la misma sub red de la de su adaptador Ethernet:
# ifconfig wlan0 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.255 up
Para ser capaces de traducir direcciones entre dos interfaces en la computadora, debemos habilitar el enmascarado (NAT) en el kernel linux. Primero cargamos el módulo kernel pertinente:
# modprobe ipt_MASQUERADE
Ahora vamos a desactivar todas las reglas del cortafuego existente para asegurarnos que las mismas no van a bloquearnos al reenviar paquetes entre las dos interfaces. Si tiene un cortafuego activado, asegúrese de que sabe cómo restaurar las reglas existentes antes de proceder.
# iptables -F
Habilite la funcionalidad de NAT entre las dos interfaces
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Finalmente tenemos que habilitar el kernel para reenviar paquetes entre las interfaces:
# echo 1 > /proc/sys/net/ipv4/ip_forward
En las distribuciones de Linux basado en Debian como Ubuntu, este cambio también puede hacerse editando el archivo /etc/network/options, y cambiando la línea
ip_forward=no
a
ip_forward=yes
y luego reiniciar las interfaces de red con:
# /etc/init.d/network restart
o
# /etc/init.d/networking restart
En este momento deberíamos tener un punto de acceso en funcionamiento. Puede probarlo conectándose a la red inalámbrica “my network” desde otra computadora a la que le haya asignado una dirección en el mismo rango de direcciones que su interfaz inalámbrica en el servidor (10.0.0.0/24 si siguió los ejemplos). Si ha habilitado WEP, tenga cuidado de utilizar la misma clave que especificó en el AP.
Para que sea más sencillo para las personas conectarse al servidor sin conocer el rango de direcciones IP, vamos a configurar un servidor DHCP para que maneje automáticamente las direcciones de los clientes inalámbricos.
Con este propósito utilizamos el programa dnsmasq. Como su nombre lo indica, provee un servidor DNS interino (caching) así como un servidor DHCP. Este programa fue desarrollado específicamente para el uso con cortafuegos que realizan NAT. Si su conexión a Internet tiene una alta latencia y/o un ancho de banda bajo, como conexión por discado (dial-up) o un VSAT, el tener un servidor DNS interino es de mucha utilidad. Esto significa que muchas consultas DNS pueden resolverse localmente, ahorrándole mucho tráfico a la conexión a Internet, y al mismo tiempo hace que la conexión se sienta notablemente más rápida.
Instale dnsmasq con el paquete de administración de la distribución. Si dnsmasq no está disponible como un paquete, descargue el código fuente e instálelo manualmente . Lo puede obteneren: http://thekelleys.org.uk/dnsmasq/doc.html
Todo lo que necesitamos para correr dnsmasq es editar unas pocas líneas de su archivo de configuración, /etc/dnsmasq.conf.
El archivo de configuración está bien documentado, y tiene muchas opciones para varios tipos de configuración. Para tener el servidor básico DHCP en funcionamiento debemos quitar los comentarios y/o editar dos líneas.
Encuentre las líneas que comienzan de este modo:
interface=
…y asegúrese de que digan:
interface=wlan0
…cambiando wlan0 para que corresponda con el nombre de su interfaz inalámbrica.
Luego encuentre las líneas que comienzan con:
#dhcp-range=
Quite el indicador de comentario de la línea y edítela para abarcar las direcciones pertinentes, por ej.
dhcp-range=10.0.0.10,10.0.0.110,255.255.255.0,6h
Luego salve el archivo e inicie dnsmasq:
# /etc/init.d/dnsmasq start
En este momento, debe ser capaz de conectarse al servidor como un punto de acceso, y obtener una dirección IP utilizando DHCP. Esto le debe permitir conectarse a Internet a través del servidor.
Una vez configurado y probado, se pueden agregar reglas de cortafuego utilizando la herramienta de cortafuego incluida en su distribución. Algunos gestores para configurar reglas del cortafuego son:
Una vez que todo está configurado de forma correcta, revise que todas las configuraciones estén reflejadas en el guión de arranque del sistema. De esta forma sus cambios seguirán funcionando aunque la computadora deba ser reiniciada.
Este escenario puede utilizarse tanto para un repetidor de dos radios, o para un punto de acceso conectado a una Ethernet. Utilizamos un puente en lugar de un enrutador cuando queremos que ambas interfaces en el punto de acceso compartan la misma sub red. Esto puede ser particularmente útil en redes con múltiples puntos de acceso donde preferimos tener un único cortafuego central y tal vez un servidor de autentificación. Dado que todos los clientes comparten la misma sub red, pueden ser manejados fácilmente con un único servidor DHCP y un cortafuego sin la necesidad de un relevador DHCP.
Por ejemplo, usted puede configurar un servidor como en el primer escenario, pero utiliza dos interfaces Ethernet cableadas en lugar de una cableada y una inalámbrica. Una interfaz sería su conexión a Internet, y la otra conecta a un conmutador. Luego conecte tantos puntos de acceso como sean requeridos al mismo conmutador, configurándolos como puentes transparentes, y cada uno pasará a través del mismo cortafuego y utilizará el mismo servidor DHCP.
La simplicidad de puentear tiene un costo en cuanto a eficiencia. Ya que todos los clientes comparten la misma sub red, el tráfico de difusión se repite a través de la red. Esto funciona bien con redes pequeñas, pero cuando el número de clientes se incrementa, se desperdicia mucho ancho de banda en el tráfico de difusión.
La configuración inicial para un punto de acceso puenteado es similar al del punto de acceso enmascarado, sin requerir de dnsmasq. Siga las instrucciones de configuración inicial del ejemplo anterior.
Además, para la función de puente se requiere el paquete bridge-utils (utilidades puente). Este paquete está disponible para Ubuntu y otras distribuciones basadas en Debian, y también para Fedora Core. Asegúrese de que éste esté instalado y de que el comando brctl esté disponible antes del procedimiento.
En Ubuntu o en Debian configuramos las interfaces editando el archivo /etc/network/interfaces
Agregue una sección como la que sigue, pero cambie los nombres de las interfaces y las direcciones IP que correspondan. La dirección IP y la máscara de red deben concordar con la de su red. Este ejemplo supone que está construyendo un repetidor inalámbrico con dos interfaces inalámbricas, wlan0 y wlan1. La interfaz wlan0 va a ser un cliente de la red “office”, y wlan1 va a crear una red llamada “repeater”.
Agregue lo siguiente a /etc/network/interfaces:
auto br0 iface br0 inet static address 192.168.1.2 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 pre-up ifconfig wlan 0 0.0.0.0 up pre-up ifconfig wlan1 0.0.0.0 up pre-up iwconfig wlan0 essid “office” mode Managed pre-up iwconfig wlan1 essid “repeater” mode Master bridge_ports wlan0 wlan1 post-down ifconfig wlan1 down post-down ifconfig wlan0 down
Ponga una marca de comentario a todas las líneas que se refieran a wlan0, o a wlan1 para asegurarse de que no van a interferir con nuestra configuración.
Esta sintaxis para configurar los puentes mediante el archivo interfaces es específico para distribuciones basadas en Debian, y los detalles de la configuración del puente son manejados por un par de guiones: /etc/network/if-pre-up.d/bridge y /etc/network/if-post-down.d/bridge La documentación para estos guiones se encuentra en /usr/share/doc/bridge-utils/.
Si dichos programas no existen en su distribución (como Fedora Core), aquí hay una configuración alternativa para /etc/network/interfaces que logrará lo mismo:
iface br0 inet static pre-up ifconfig wlan 0 0.0.0.0 up pre-up ifconfig wlan1 0.0.0.0 up pre-up iwconfig wlan0 essid “office” mode Managed pre-up iwconfig wlan1 essid “repeater” mode Master pre-up brctl addbr br0 pre-up brctl addif br0 wlan0 pre-up brctl addif br0 wlan1 post-down ifconfig wlan1 down post-down ifconfig wlan0 down post-down brctl delif br0 wlan0 post-down brctl delif br0 wlan1 post-down brctl delbr br0
Una vez que el puente esté definido como una interfaz, arranque el puente escribiendo:
# ifup -v br0
La “-v” significa salida verbosa y proporciona información acerca de lo que está pasando.
En Fedora Core (y otras distribuciones no Debian) también debe darle a su interfaz puenteada una dirección de IP y agregar una ruta por omisión al resto de la red:
#ifconfig br0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255 #route add default gw 192.168.1.1
En este momento debería poder conectar a este nuevo punto de acceso una computadora portátil inalámbrica, y a través de ésta conectarse a Internet (o al menos con el resto de su red).
Si quiere más información sobre su puente y lo que está haciendo, utilice el comando brctl. Intente por ejemplo:
# brctl show br0
Esto debería darle e información sobre lo que está haciendo el puente.
En lugar de configurar su computadora como un punto de acceso desde cero, usted puede aprovechar una distribución Linux armada especialmente para este propósito. Estas distribuciones pueden hacernos la tarea tan simple como arrancar la computadora desde un CD preconfigurado con el sistema operativo para interfaz inalámbrica. Para más información diríjase a la sección, “Sistemas operativos amigables con la tecnología inalámbrica”.
Como puede ver es fácil proveer servicios de punto de acceso desde un enrutador Linux estándar. Usar Linux le da un control mucho más significativo sobre cómo se enrutan los paquetes a través de su red, y tiene algunas características que simplemente son imposibles de encontrar en un equipamiento para consumidores.
Así, puede comenzar con cualquiera de los dos ejemplos anteriores e implementar una red inalámbrica privada donde los usuarios son autentificados utilizando un navegador web estándar. Mediante el uso de un portal cautivo como el Chillispot, se pueden verificar las credenciales de los usuarios inalámbricos en una base de datos (por ejemplo, un servidor de dominios Windows accesible vía RADIUS). Este arreglo puede permitir un acceso preferencial a los usuarios existentes en la base de datos, al mismo tiempo que se permite un nivel de acceso muy limitado para el público en general.
Otra aplicación muy popular es el modelo comercial preparado. En el mismo, los usuarios deben adquirir un pase antes de acceder a la red. Este pase provee una contraseña que tiene validez por una cantidad de tiempo limitada (generalmente un día). Cuando el pase expira, el usuario debe comprar otro. Esta característica solamente está disponible en equipamientos de redes relativamente caros, pero puede implementarse usando un software libre como el Chillispot y el phpMyPrePaid. Vamos a ver más sobre la tecnología de portal cautivo y los sistemas de pase en la sección Autentificación del capítulo seis.
Existen varios sistemas operativos de fuente abierta que proveen herramientas muy útiles para trabajar en redes inalámbricas. Estos fueron pensados para utilizarse en PCs recicladas con otro propósito, o con otro equipamiento de red (en lugar de una computadora portátil o un servidor), y están bien afinados para trabajar en la implementación de redes inalámbricas. Algunos de estos proyectos incluyen:
http://www.freifunk.net/wiki/FreifunkFirmware
http://metrix.net/metrix/howto/metrix-pebble.html
Todas estas distribuciones están diseñadas para adecuarse a computadoras con un almacenamiento limitado. Si usted está utilizando un disco flash muy grande o un disco duro, ciertamente puede instalar un SO más completo (como Ubuntu o Debian) y utilizar la computadora como enrutador o punto de acceso. De todas formas le va a tomar cierta cantidad de tiempo de desarrollo asegurarse de que todas las herramientas necesarias estén incluidas, evitando instalar paquetes innecesarios. Por medio de la utilización de uno de estos proyectos como punto de inicio para construir un nodo inalámbrico, ahorrará considerable tiempo y esfuerzo.
En el mercado actual uno de los puntos de acceso más popular es el Linksys WRT54G. Este punto de acceso tiene dos conectores de antena externos RP-TNC, un conmutador Ethernet con cuatro puertos, y un radio 802.11b/g. Se configura a través de una simple interfaz web. Si bien no está diseñado para exteriores, puede instalarse en una caja adecuada para tal fin, o en un tubo de plástico, a un costo relativamente bajo. En este momento el WRT54G cuesta aproximadamente U$S 60.
En el 2003, los hackers se dieron cuenta de que el firmware que se vendía con WRT54G en realidad era una versión de Linux. Esto produjo un tremendo interés en construir un firmware adaptable que extendiera las capacidades del enrutador de forma significativa. Algunas de esas nuevas características incluyen el soporte del modo cliente en el radio, portales cautivos, y redes mesh. Dos buenas alternativas de paquetes de firmware para WRT54G son OpenWRT (http://openwrt.org/) y Freifunk (http://www.freifunk.net/wiki/FreifunkFirmware)
Desafortunadamente, a fines del 2005, Linksys sacó la versión 5 de WRT54G. Esta nueva versión del equipamiento eliminaba algo de memoria RAM y de almacenamiento flash en la placa madre, haciendo prácticamente imposible correr Linux (se vende con VxWorks, un sistema operativo mucho más pequeño que no permite una fácil adaptación). Puesto que el WRT54G v5 no corre con el firmware adaptado basado en Linux, se volvió menos atractivo para los desarrolladores de redes. Linksys también desarrolló el WRT54GL, el cual es esencialmente el WRT54G v4 (que corre con Linux) con un precio ligeramente más alto.
Otros puntos de acceso Linksys corren Linux, incluyendo el WRT54GS y el WAP54G. Si bien también tienen unos precios relativamente bajos, las especificaciones de equipamiento pueden cambiar en cualquier momento. Sin abrir el paquete es difícil saber qué versión del equipamiento es usada, lo que hace riesgoso adquirirlos en una tienda y prácticamente imposible ordenarlos en línea. A pesar de que WRT54GL tiene garantía de correr con Linux, Linksys ha hecho saber que no espera vender este modelo en grandes volúmenes, y no queda claro por cuánto tiempo el mismo va a estar en venta.
Si puede encontrar una revisión anterior de WRT54G, o de WRT54GL, estos enrutadores son versátiles y baratos. Con un firmware de código abierto, pueden configurarse para funcionar como una mesh OLSR o en el modo cliente, y trabajan muy bien como una solución económica del lado del cliente. Aunque el nuevo modelo v5 funciona como punto de acceso, no puede ser configurado como cliente, y los usuarios que han publicado sus opiniones respecto a estos equipos han expresado reservas en comparación con el v4 y modelos anteriores.
Para más información, diríjase a uno de estos sitios web: