Archivo de la etiqueta: iptables

Firewall ¿qué es? ¿para qué sirve?

Hola a todos,

acercándonos a la recta final de esta larga serie de posts sobre configuraciones de red para sistemas Debian, vamos a terminar aplicando un firewall para tener un mejor control sobre el contenido al que tienen acceso los usuarios.


Pero, ¿qué es un firewall? ¿para qué precisamente sirve? Bueno, empecemos por responder la primer pregunta.

Un firewall es un software; un programa de computadora, que restringe tráfico con ciertas características de forma local en un equipo. Es importante notar que las restricciones de tráfico son locales: un firewall (en principio) no afectan a otros equipos.

Estas restricciones de tráfico pueden realizarse por dos motivos principales:

  • Seguridad. Una de las prácticas de seguridad más importantes y básicas es “cerrar” todos los puertos que no usemos en nuestros equipos.
  • Productividad. El administrador de red puede restringir las páginas que son visitadas para evitar distracciones; principalmente en ambientes laborales.

Vamos a detallar un poco lo que quiere decir el primer punto.


Para que un programa pueda conectarse a internet (en general, para que un programa pueda comunicarse con otro remoto), necesita de un “puerto” o “socket”.  Los puertos son una de las varias abstracciones que se hacen para comunicar dos programas que se ejecutan en equipos diferentes.

Esto se debe principalmente al deseo de poder comunicar dos equipos que pueden tener una arquitectura completamente diferente, sistemas operativos diferentes e incluso usar tecnologías diferentes para conectarse a la red.

Por ejemplo, podemos suponer que el servidor que hospeda este blog, es parte de una gran infraestructura distribuída de muchos racks de servidores que ejecutan Linux y se conectan entre sí por Ethernet, pero muy probablemente tienen salida a internet por fibra óptica.

Pero por otro lado, podemos leer el blog usando cualquier tipo de laptop; manufacturada por cualquier fabricante y que ejecuta distintos sistemas operativos; no necesariamente linux. Puede ser un equipo de sobremesa e incluso cualquier variedad de dispositivo móvil. Además, todos estos pueden conectarse a la red usando tecnologías muy diferentes; como USB, Ethernet, WiFi, 3G, 4G, etc…

Para que pueda existir todo este ecosistema de equipos tan diferentes que al final de cuentas pueden comunicarse por red, las redes IP (y muchas otras) utilizan un “stack”, una pila de capas de abstracción; donde cada capa se encarga de abstraer uno o varios aspectos que podrían ser diferentes en los equipos que se comunican: como el sistema operativo, el tipo de la interfaz de red, la velocidad de procesamiento, etc. Este stack a su vez está basado en un estándar (teórico) llamda “modelo OSI”.

Sin entrar en mucho detalle en estas capas de abstracción (las más “profundas” pueden confundir a aquellos que no estén acostumbrados a términos técnicos o no programadores); la primer capa se conoce como la de aplicación. Es decir, esta “capa” no son más que los programas que se conectan a la red. Aquí también están los servidores web, los servidores DNS y DHCP; de los que hemos hablado en post-anterior.

La segunda capa es la de transporte. Esta abstrae los mensajes que producen las aplicaciones; cualesquiera que sean y los envuelven en otro tipo de mensaje. Aquí es donde involucramos a los puertos.

En la mayoría de los casos, una computadora tiene una o dos tarjetas de red; pero también ejecuta muchas más aplicaciones que desean conctarse a internet. Por ejemplo, puede haber múltiples servicios preguntando por actualizaciones de las aplicaciones a las que pertenecen cada cierto tiempo; y cada pestaña de un navegador web, suele solicitar su propia conexión a la red.

Si el sistema operativo le asignara la tarjeta de red completa a la primer aplicación que solicitara acceso a internet, todas las demás quedarían bloqueadas y esperando por tiempos indefinidos por acceder a la red. Sería casi imposible usar un navegador sin obtener frecuentemente un mensaje de error porque “no es posible conectar”.

Para que todas (o la mayoría) de todas estas aplicaciones que desean conectarse al mismo tiempo a la red puedan hacerlo; al solicitar acceso, deben de indicar el número de puerto por el cuál quieren recibir mensajes del exterior.

Podemos pensar en los números de puertos cómo en direcciones que tendrían plataformas en un puerto real. Los botes o barcos que lleguen al muelle (la tarjeta de red), tendrán que dirijirse a una y una sola plataforma específica para anclar y desembarcar. Así, los barcos deben sber a cual de las plataformas deben anclarse y entregar su carga, para que llegue a su destino.

Los mensajes en los que son envueltos los mensajes que salen de la capa de aplicación, indican el número de puerto por el que deben salir; mismo por el que se espera que llegue la respuesta del programa remoto al que está destinado el mensaje original. La capa de transporte tiene algunas funcionalidades adicionales, pero por simplicidad y para los fines de este post; vamos a quedarnos sólo con esta de los números de puerto.

Los números de puerto son tan importantes para la comunicación en redes IP, que de hecho los primeros números de puerto; entre el 1 y el 1024 están reservados y usualmente se requieren privilegios de administrador o súper-usuario para permitir que una aplicación haga uso de ellos. Se dice que están reservados, porque están asociados a programas o protocolos muy comunes en internet; y básicamente se da por hecho que si un mensaje está destinado a un cierto número de puerto reservado, podemos estar casi seguros de que se trata de un mensaje en cierto formato, con cierto protocolo o creado por cierta aplicación.

Algunos de los números de puerto reservado son los siguientes:

  • 20 FTP
  • 21 FTP
  • 22 SSH (SFTP)
  • 23 Telnet
  • 53 DNS
  • 67 DHCP
  • 80 HTTP
  • 161 SNMP
  • 443 HTTPS
  • 666 Doom

Cuando un puerto no está asociado a ninguna aplicación ene ejecución y el sistema recibe un mensaje dirigido a ese puerto, el sistema simplemente descarta el mensaje; pues el destinatario no existe en ese momento. Es como recibir una carta dirigida a alguien que ya no vive en una casa.

Sin embargo, los distintos programas que se ejecutan en el sistema; incluyendo aquellos propios del sistema operativo que se encargan de la administración de la tarjeta de red y la asignación de puertos, pueden ser vulnerables a la recepción de ciertos mensajes con un formato especial que permite explotar vulnerabilidades de estos programas.

Algunos ataques por parte de hackers de sombrero negro, son perpetrados de esta forma; uno de los casos más conocidos recientemente fue heartbleed, que explotó una vulnerabilidad de este estilo en los certificados que usa HTTPS para obtener un pequeño segmento de memoria que permitía desencriptar los mensajes seguros.

Por esta razón es útil restringir el acceso remoto a ciertos puertos; cerrándolos a pesar de que puedan estar ligados a una aplicación en ejecución. Esta es una de las principales funciones de un firewall, una forma de evitar el acceso de terceros a nuestro equipo.

Un firewall puede evitar que mensajes de red que procedan de ciertos puertos, direcciones IP o usuarios no conocidos sean rechazados ANTES de que pasen a la aplicación que los espera, justamente para evitar este tipo de ataques. También permite que el equipo local se concecte a ciertos puertos, direcciones IP o nombres de dominio (aka páginas web), creando limitaciones en las conexiones que se puede crear el equipo.


En resumen: los firewall son un programa de computadora bastante útil que puede ayudarnos a aumentar nuestra seguridad en línea al evitar que ciertos equipos o usuarios remotos; o cualquiera, se conecte con cierta aplicación o número de puerto en nuestro equipo.

También son usados para evitar la intercepción de mensajes en línea y reducir el SPAM. Por lo que antes de simplemente cerrar el diálogo del sistema que te invita a configurar un firewall, deberías considerar hacerlo seriamente (además de actualziar el equipo).

Justo en el siguiente post y último de esta serie, aprenderemos a configurar un firewall en Debian usando IPTables. Otros firewall para otras plataformas son más amigables con el usuario y pueden resultar más fáciles de usar; por lo que si usas otro sistema operativo que no sea Debian, recomiendo arduamente que revises tu configuración para mantenerte seguro.


El límite es la imaginación. Y el número de puertos seguros en un servidor remoto.

Cómo usar una PC con Debian como punto de acceso inalámbrico a internet

Hola a todos!

Este quizá ha sido el post más difícil de redactar de entre todos los que he publicado en este blog. Antes de publicar tutoriales o manuales de cualquier tipo, siempre realizo los pasos que indico; principalmente cuando estoy experimentando o intentando hacer algo nuevo… Y en este caso, me topé con (¿casi?) todos los problemas que me pude haber encontrado… Al final del post dejaré una bociferación; no solo con el afán de desquitarme, sino también con la esperanza de ayudar a otros que pudieran tener los mismo problemas.

Este es un post particularmente útil para los usuarios de laptop; ya que las computadoras portátiles suelen tener más de una tarjeta de red y necesitamos que la PC a configurar como punto de acceso tenga más de una tarjeta de red. No importa cómo sean las tarjetas de red: sí cuenta con red celular, Wi-Fi, Ethernet; y tampoco importa cómo estén conectadas las tarjetas de red a la computadora; es decir, podemos usar una PC de escritorio con tarjeta ethernet tradicional y un “adaptador” Wi-Fi USB (lo que nos permite usar una PC de escritorio como punto de acceso WiFi) y como acceso a internet podemos usar una interfaz de red virtual USB creada al conectar un dispositivo Android que comparte red por USB.

Vamos a compartir internet usando una PC con Debian de forma muy similar a cómo se hace una “Zona WiFi portátil”  en Android. Antes de continuar, toma en cuenta que algunos gestores de red en Debian ya cuentan con una opción que automatiza este proceso, por lo que es conveniente verificar que puedas hacer esto de entrada con tu gestor de red.

 

 

 

El pase de diapositivas requiere JavaScript.


Bien, con esto dicho; empecemos por detectar las tarjetas de red con las que cuenta el equipo y cómo las reconoce (como las nombra) el sistema; de forma que podamos referirnos a ellas adecuadamente durante el proceso de configuración. Para esto, usamos el comando “lshw -class network”:

bash1

En el ejemplo anterior, podemos ver dos interfaces de red; cuya descripción se encuentra después de cada línea que únicamente dice “* network”. El comando nos proporciona cierta información útil para este procedimiento, como el nombre descriptivo de la interfaz, su identificador, su nombre virtual y su tipo.  Como podemos ver en la imagen, “eth0” es el nombre que recibe una interfaz de Ethernet y “wlan0” es una interfaz de WiFi.

Vamos a usar HostAP para proteger nuestra red inalámbrica, por lo que es necesario asegurarnos de que contamos con HostAP. También HostAP nos provee de un driver que nos ayuda a evitar problemas con la administración de la interfaz de red inalámbrica, pues no todos los drivers soportan actuar como punto de acceso inalámbrico. Sin embargo, existen casos donde no será posible configurar la tarjeta de red como punto de acceso inalámbrico por limitaciones de los dirvers o de la interfaz de red misma. Si tienes problemas al intentar seguir estos pasos, lo más recomendable es buscar si es sabido que tu tarjeta o “adaptador” de WiFi soporta funcionar como punto de acceso inalámbrico.

Así, para asegurarnos que tenemos todos los componentes necesarios, ejecutamos el siguiente comando (con permisos de super usuario):

# apt-get install iw wireless-tools hostapd bridge-utils

Ahora, debemos configurar HostAP. Abrimos el archivo /etc/default/hostapd y editamos la línea que inicia con DAEMON_CONF. Si está comentada (inicia con el caracter ‘#’), la descomentamos (quitamos el ‘#’).

Debe quedar así:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Ahora, el archivo al que apunta DAEMON_CONF puede no existir en su sistema. De hecho, este tutorial está hecho pensando en que el archivo /etc/hostapd/hostapd.conf no exista. Si existe, puede comentar o eliminar (bajo su propio riesgo) el contenido anterior, o crear un archivo nuevo y usarlo en lugar de hostapd.conf; por simplicidad, recomendaría crearlo en el mismo directorio /etc/hostapd

Debemos editar el arhcivo /etc/hostapd/hostapd.conf (o el que desee crear/editar), para configurar hostapd y definir nuestro punto de acceso inalámbrico. Sin embargo, aquí es importante hacer una observación aquí: la configuración recomendada por la mayoría, es hacer un puente de red usando una tarjeta de red virtual… Sin embargo, no todas los dirvers y no todas las tarjetas de red permiten crear este puente de red. Así que si esto no es posible, podemos dar la vuelta al problema usando redireccionamiento NAT como puente de red.

Si al intentar efectuar estas configuraciones, no podemos usar exitosamente nuestro punto de acceso inalámrico; podemos intentar buscar el mensaje de error:

can't add wlan0 to bridge br0: Operation not supported

Mediante los comandos:

# systemctl status networking.service
# journalctl -xe

Entonces lo más conveniente es usar la configuración con redireccionamiento NAT.


Si usamos un puente de red

Editamos /etc/hostapd/hostapd.conf de la siguiente forma:

interface=<wlan0>
bridge=br0
driver=nl80211
auth_algs=1
ignore_broadcast_ssid=0
logger_syslog=-1
logger_syslog_level=0
hw_mode=g
ssid=<Nachintoch-CT-WAP>
channel=11
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=<"Si encuentras una SSID con el nombre "Nachintoch-CT-WAP" por allí, ten por seguro que esta no es la contraseña y esa no cuenta como software libre ;)">
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
  • En la primer línea; que dice “interface“, asegúrate de escribir el nombre adecuado de la interfaz de red inalámbrica que quieres usar como punto de acceso inalámbrico. En mi caso (y en la mayoría de ellos), es wlan0.
  • En la línea 9; donde dice “ssid”, escribe el nombre que quieres que vean los posibles usuarios de tu red inalámbrica.
  • En la línea 15, escribe la contraseña que quieres usar en tu red inalámbrica. Está contraseña está asociada a un cifrado WPA2, la cual es relativamente segura (cualquier cosa es mejor que WEP, ¿no?). Debe ser de al menos ocho caracteres, pero usar al menos 12 eleva bastante la seguridad y qué mejor que usar caracteres en mayúscula, minúscula, números, símbolos especiales y la sangre de un unicornio.

Ahora, vamos a definir el puente de red br0 que usamos en la configuración anterior pero no necesariamente existe. Una vez más, el tutorial está pensado en que br0 no existe. Si ya tienes un puente de red configurado, recomendaría crear uno nuevo (br1 por ejemplo). En estos casos, asegúrate de usar el puente de red que configures en el archivo /etc/hostapd/hostapd.conf en lugar de br0.

La configuración anterior puede hacerse una sola vez. La sigueinte debe modificarse cada vez que queramos definir el unto de acceso.

Para crear el puente de red, editamos el archivo /etc/network/interfaces. Agregamos lo siguiente:

auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 10.5.5.1
    netmask 255.255.255.0

auto br0
iface br0 inet dhcp
bridge-ports eth0 wlan0

Aquí es importante que sustituyas adecuadamente los nombres de las interfaces de red que estés usando: en mi caso, la salida a internet está asociada a eth0 y pretendo usar wlan0 como punto de acceso inalámbrico.

Además, si usas una configuración de Ethernet estática, debes cambiar la línea 3 para indicar la dirección IP que utilices; ya que si tu gateway no tiene DHCP configurado, no podrás conectar a Internet, y en consecuencia tu red inalámbrica actuará sólo como red local… Lo cual puede ser suficiente si solo quieres levantar un servidor de juego local o una red para un aula.

Es importante tomar en cuenta que no hemos configurado ningún servidor DHCP, por lo que la máquina que quieres usar como AP tiene una IP fija, no podrá proveer más direcciones para los demás dispositivos que se quieran conectar a la red inalámbrcia y los clientes no se podrán conectar automáticamente. Para sortear este problema, puedes crear una subred y configurar tu propio servidor DHCP dentro de la máquina. También puedes asignarles IP fijas si lo deseas; (casi) todos los dispositivos, incluso los Android, permiten cambiar la configuración IP dinámica en estática.


Si usamos redireccionamiento NAT

Editamos /etc/hostapd/hostapd.conf de la siguiente forma:

interface=<wlan0>
driver=nl80211
hw_mode=g
ssid=<Nachintoch-CT-WAP>
channel=11
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=<"Si encuentras una SSID con el nombre "Nachintoch-CT-WAP" por allí, ten por seguro que esta no es la contraseña y esa no cuenta como software libre ;)"> 
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

El resto de las configuraciones deberían funcionar sin mayor problema. Si tienes problemas con las configuraciones que sugiero, recomiendo que revises las capacidades físicas de tu adaptador de red inalámbrico y del driver; pues por ejemplo, quizá no soporta el modo “g”, pero soporta “a”.

Como en el caso de puente de red; podemos dejar la cnfiguración anterior para todas las veces. La siguiente debe efectuarse cada vez que se quiere definir el acces point.

Ahora, debemos configurar el redireccionamiento NAT. Para ello, damos en consola los siguientes comandos:

# iptables --flush
# iptables --table nat --flush
# iptables --delete-chain
# iptables --table nat --delete-chain
# iptables --table nat --append POSTROUTING --out-interface <eth0> -j MASQUERADE
# iptables --append FORWARD --in-interface <wlan0> -j ACCEPT
# sysctl -w net.ipv4.ip_forward=1

Lo siguiente es configurar un servidor DNS y DHCP. Podemos hacer esto como lo he detallado en post anteriores:

Nota: Para crear el access poont, levanté el servidor DHCP (y DNS) sobre la interfaz wlan0 en lugar de eth0 como hice en los ejemplos.


Debemos apagar el gestor automático de la red; pues vamos a usar la configuración fija que acabamos de describir. Para ello, ejecutamos el siguiente comando con permisos de súper usuario:

# service network-manager stop

Si usamos puente de red

Ahora, reiniciamos el servicio de red, limpiamos la configuración de la interfaz a usar como salida e iniciamos HostAP:

# service networking stop
# ip addr flush dev eth0
# service networking start
# service hostapd restart

Si usamos redireccionamiento NAT

Debemos definir; junto con la configuración de DNS y DHCP el modo de asignacón de IPs en la subred y de la interfaz de saida eh0.

Dejo aquí un par de archivos de configuración que puede ayudarlos a automatizar estas tareas:

http://www.nachintoch.mx/libraries/posix/wap-up.sh

http://www.nachintoch.mx/libraries/posix/wap-down.sh


¡Y listo! ahora nuestro equipo ha quedado configurado como un AP y podemos conectarnos a él desde otros. Si la configuración DHCP o IP es correcta también, tanto el equipo configurado, como los que se conecten a él, deberían poder acceder a internet.


Si usamos puente de red

Para terminar con el punto de acceso, debemos comentar las líneas que agregamos a /etc/network/interfaces:

# auto eth0
# allow-hotplug eth0
# iface eth0 inet dhcp

# auto br0
# iface br0 inet dhcp
# bridge-ports eth0 wlan0

Si usamos redireccionamiento NAT

Debemos eliminar la IP estática que hayamos asociado a la interfaz inalámbrica wlan0 y dar de baja el servidor DHCP y DNS.


En ambos casos, debemos comentar también la referencia al archivo de configuración de HostAP para evitar que se cree el puente de red br0 que puede interferir con la configuración de la tarjeta inalámbrica; por lo que comentamos la línea que creamos/editamos en /etc/default/hostapd:

# DAEMON_CONF="/etc/hostapd/hostapd.conf"

Si usamos puente de red; finalmente, restablecemos los servicios (estos son comandos en consola como súper usuario, no comentarios en un script) y damos de baja el puente de red:

# service hostapd stop
# service networking stop
# ip link set br0 down
# service networking start
# service network-manager start

Recordemos que podemos cambiar eth0; no solo por otra interfaz ethernet, si no por cualquier otra; como modem telefónico, 3G, o interfáz virual USB.


Antes de terminar, quiero compartir mi (frustrante) experiencia al escribir este post…

Antes de publicar cualquiera de mis tutoriales, verifico que su contenido sea correcto y realizo los pasos que describo para verificar que obtengo el resultado deseado. Así, puedo agregar comentarios y posible fallas y soluciones a problemas durante el procedimiento.

En este caso, no pude determinar concretamente qué me dio tantos problemas; si el software o el hardware, pues la tarjeta de red original de mi laptop era una Intel PRO/Wireless 3945ABG y pese a varias horas de esfuerzo, no logré ponerla en modo maestro… Aún desconozco si eran limitaciones del driver o del hardware.

Para que podamos configurar una interfaz de red cómo AP (access point), necesitamos que soporte dos modos: AP y master. Esto debe ser tanto por hardware como por driver. El dirver de Debian para esta tarjeta de red es el iwlegacy; contenido en el paquete iwlwifi; el cual NO es software libre, es provisto por Intel. Pero como es un dispositivo viejo, se cosidera obsoleto e Intel ya no le da mantenimiento… Como a mi ATI Raedon X1300… Gracias Nvidia e Intel, Linus Trovals ya ha hecho el gesto…

Busqué parches, intente cambiar las configuraciones que aquí exhibo, quise darle la vuelta al problema de muchas formas y ninguna me llevó a ningún lado (con la Intel 3945ABG). En todos los foros, la respuesta es “consigue otra interfaz de red” o simplemente no había respuesta; y eso que encontré foros de 2008, 2011… Me desesperé y mejor me puse a cocinar…

Mientras cortaba papas en cuadritos para un arroz que al final quedo bastante bueno; pero que necesitaba un poco más de sal, recordé que tenía una interfaz de red inalámbrica botada por allí…

Parece que a muchos de mis colegas les ofende que les pregunten si les pueden arreglar su compuatadora; a mi no me molesta: sí, si puedo, el precio es accesible y garantizo resultados. A veces de plano me dan máquinas descompuestas para vender por partes. Y en otras veces, yo mismo me quedo con piezas que pienso me pueden servir, porqué son piezas que suelo reemplazar en otras máquinas a reparar o que puedo usar yo mismo (en parte, ¡así es cómo he ido mejorando mi laptop!)

Recordé esto y buscando entre mis curiosidades, en efecto encontré una Qualcomm Atheros AR9285.

Regresé a mi escritorio y empecé a googlear de nuevo. Ambas tarjetas de red son PCI-Express; ¡bien! puedo insertarla en el puerto de la motherboard… Bueno, tuve esperanza de que funcionara por hardware, pues no encontré la lista negra ni blanca de interfaces de red inalámbrica soportada por la motherboard de mi equipo. Sin embargo, la Atheros tiene dos antenas y la Intel 3945ABG también es de dos antenas… Eso es buena señal de que puedan ser compatibles.

El driver de la Atheros viene incluido en el kernel de Linux y en Windows también, es bien sabido que soporta los modos AP y master… Empecé a creer que había encontrado la solución a mis problemas y luego empecé a desarmar mi laptop. Levanté el teclado y el horror: la Intel 3945ABG es una tarjeta PCI-Express de tamaño “normal” y la Atheros AR9285 es mini; y el puerto está sobre la motherboard sin otra placa de la que la pudiera sujetar… Pareciera que no podría reemplazarla… Luego, tuve una idea que aún creo es un poco “loca” pero que al final funcionó; y como decimos con mis colegas: si jala, ¡jala!

Bajo el puerto PCI-Express está el chip del bus norte, y las antenas tienen un cable bastante rígido. Así que conecté las antenas a la tarjeta, la inserté en el puerto PCI-Express y con cinta de aislar traté de pegarla al chip del bus norte y a una etiqueta a un costado del chip… ¡es en serio! Y para evitar que la tarjeta se levante o se mueva (por si fuera poco), puse una “plasta” de cinta de aislar de unos 4mm de altura bajo el teclado para que cuando lo cerrara, haga presión sobre la tarjeta y la termine de fijar en su lugar.

Aún tenía la duda de si la motherboard aceptaría la tarjeta, así que sin ensamblar el resto del gabinete de la portatil, la conecté al toma corriente y la encendí. Inicie sesión en Debian e inmediatamente me apareció una notificación diciéndome que “hay conexiones de red disponible”, ¡eureka! Debian reconoció la tarjeta inmediatamente como la interfaz wlan1. Hice lo mismo en Windows 7 y no tan inmediatamente, Windows también instaló los drivers de la AR9285. Funciona todo a la perfección, incluso el Bluethoot en ambos sistemas operativos.

Usando el contenido de este post, volví a configurar HostAP y etc/network/interfaces tal y como aparecen aquí, ejecuté los comandos para reiniciar los servicios y.. nope… no jaló… pero no iba a darme por vencido tan fácilemnte.

Depurando los problemas que tuve; descubrí que desde cierta versión del kernel de Linux, ya no es posible poner una tarjeta ath5 en un puente de red. Así que pensé inmediatamente, bueno; si el kernel no quiere que establezca un puente de red, usaré NAT. Así nació el post para usar una laptop como “adaptador inalámbrico” y con un poco más de esfuerzo, logré establecer un “puente” entre las interfaces eth0 y wlan1 y crear mi AP; unos dos o tres meses después de que empezara a jugar con esto.

¡voalá! por fin pude conectarme a mi nueva red local inalámbrica desde mi celular. No he probado conectarme a una red de 5GHz (pues la AR9285 soporta WiFi n, cosa que no podía la Intel 3945ABG), tengo entendido que las antenas no necesariamente van a darme toda la latencia de los 5GHz (pues la tarjeta original no la soportaba y quizá las antenas no estén diseñadas para eso), pero también es posible que sí, ya que la fecha de manufactura de esta laptop fue cuando el estándar n comenzaba a ganar presencia (en 2006).

Y bueno, ¿qué aprendí? Las tarjetas de red inalámbricas de Intel viejas, no pueden configurarse como AP y siempre hay forma de usar una tarjeta PCI-Express mini en un “slot” de tamaño tradicional. Tengo entendido que en el peor caso; que la tarjeta quede mal colocada o que la motherboard no la soporte, el riesgo de que la tarjeta o el equipo sufran daños, es mínimo; así que creo que vale la pena intentarlo.

Llevo ya aproximadamente dos meses usando este “hack” para instalar la tarjeta de red y no hay señales de que malfuncione o se esté desconectando; al contrario, creo que funciona mejor la vieja Intel.

Bueno, ya, ya me desquité. Estoy feliz porqué el próximo semestre podré usar todas las herramientas de colaboración en el laboratorio de forma más eficiente para los alumnos.

Si estás interesado en conocer el procedimiento para sustituir la tarjeta de red en una máquina como en la mía, estoy trabajando en un post al respecto que aparecerá en el futuro.


Que el límite sea la imaginación… Y el alcance del WiFi pese a la interferencia que causan los muros y los muebles…

Debian: cómo enlazar interfaces de red con NAT y usar una PC como “adaptador” WiFi de otro dispositivo sin capacidad inalámbrica

Hola a todos!

Encaminándonos hacia la configuración de un equipo con Debian como router inalámbrico; vamos a aprender a usar NAT para enlazar interfaces de red. Esto es muy útil cuando por alguna razón no podemos establecer un puente de red por alguna razón.

Vamos a aprovechar el ejemplo para establecer un puente de red entre una interfa inalámbrica y otra cableada; lo que nos puede permitir usar una laptop (por ejemplo) como “adaptador” WiFi de una máquina de escritorio.

Sin más, comencemos.


Vamos a valernos de la configuración de DNS y DHCP que hemos trabajado en semanas anteriores. Si no cuentas con un servidor DNS y/o DHCP en el equipo que quieres usar como “adaptador inalámbrico”, puedes consultar los post de semanas anteriores que he escrito al respecto:

Vamos a usar estos servidores para montar una subred tras la interfaz eth0 (en el tutorial, si prefieres usar una tarjeta de red distinta a la que el sistema identifique como eth0; puedes, hacerlo, solo sustituye eth0 por la tarjeta que deseas usar).

Los siguientes pasos asumen que hay un servidor DNS y un servidor DHCP ejecutándose en el equipo local (a usar como “adaptador inalámbrico”) y que tiene dirección IP 10.5.5.1 (si has configurado tu servidor DNS y/o DHCP en uno o varios equipos con direcciones IP distintas; sólo ten encuenta que la dirección IP que uses en la configuración que sigue sea la que tenga asignada la interfaz que va a compartir internet).


Bien. Lo primero que debemos hacer es habilitar el reenvío de paquetes en el kernel. Para ello, editamos el archivo /proc/sys/net/ipv4/ip_foward

1

Debemos asegurarnos que aparezca un “1” en la última línea del archivo. Si “1” es el único contenido en el archivo, con eso basta.

Ahora, vamos a dar de alta la configuración que enmascara el tráfico de red al ser retransmitido de una interfaz a la otra. En consola, usamos el siguiente comando:

# iptables -t nat -A POSTROUTING -s 10.5.5.0/24 -j MASQUERADE

¡Y listo! Estas configuraciones deberían ser suficientes para servir a otros equipos que se conecten directa o indirectamente (a través de un switch opor ejemplo 😉 ) a nuestro equipo. Este tipo de puentes de red no sólo son útiles entre una interfaz wlan0 y otra eht0 para comparitr wifi a través de ethernet; podemos establecer varios puentes de redes de esta forma.

Si queremos revertir estas configuraciones, basta con deshabilitar la retransmisión de paquetes y editar de nuevo el archivo /proc/sys/net/ipv4/ip_foward de forma que ahora el único contenido (o la última línea) sea “0” (cero en lugar de uno).


La próxima semana, aprenderemos a establecer uno quizá más interesante: usar un equipo con Debian como punto de acceso inalámbrico; aka, “compartir wifi”.

Hasta entonces, que el límite sea la imaginación.