Algunas veces se tienen problemas para hacer funcionar las tarjetas de de red wireless en Linux (por cuestiones de drivers). Afortunadamente eso va cambiando poco a poco, y distribuciones como Ubuntu no suelen dar muchos problemas a la hora de reconocer el hardware y utilizar los controladores apropiados.
Para otros casos es posible utilizar una excelente herramienta llamada ndiswrapper. La función de este programa es la de utilizar los drivers que están construidos para funcionar en Windows, y hacerlos funcionar en nuestro querido Linux.
En esta guía intentaré mostrarles detalladamente, cómo es el proceso de instalación de una tarjeta de red inalámbrica utilizando ndiswrapper (al menos de dos maneras, para que tengas más opciones), y por supuesto un ejemplo de la vida real.
Instalando ndiswrapper
Uso de ndiswrapper
ndisgtk, una interfaz gráfica para ndiswrapper
Ejemplo: instalando el adaptador de red inalámbrico USB: Linksys WUSB54GP
Solución de problemas
Instalación de ndiswrapper
Desde los repositorios…
La instalación de este programa es bastante sencilla, puesto que se encuentra en los repositorios de prácticamente todas las distribuciones. En Ubuntu o Debian basta con ejecutar el comando:
# aptitude install ndiswrapper
Si usas Arch Linux:
# pacman -S ndiswrapper
Desde las fuentes…
Si deseas puedes instalarlo desde el código fuente. Basta con descargarlo desde la página oficial , descomprimirlo, compilarlo e instalarlo:
# tar zvfx ndiswrapper-1.53.tar.gz
# cd ndiswrapper-1.53/
# make
# make install
Uso de ndiswrapper…
Puesto que ndiswrapper necesita de los drivers de Windows para instalarlos en Linux, es necesario saber dónde se encuentran (si están en la partición de Windows) o descargarlos. Una vez tengamos los drivers necesitamos el archivo cuya extensión sea .inf. Una vez indentificado ejecutamos el comando:
# ndiswrapper -i ARCHIVO.inf
Hecho esto, el driver queda instalado y solo nos queda crear un alias para cargar el módulo:
# ndiswrapper -m
# modprobe ndiswrapper
Ten en cuenta! Por defecto ndiswrapper crea el archivo /etc/modprobe.d/ndiswrapper que contiene esto: alias wlan0 ndiswrapper. Fíjate que pone wlan0, por lo que si ya tienes una tarjeta de red inalámbrica te daría problemas. Así que, si tienes más de una tarjeta debes cambiar el archivo y poner algo como esto: alias wlan1 ndiswrapper.
Una vez hecho esto, podrás verificar qué drivers tienes instalados y si la tarjeta se encuentra conectada, utilizando el comando:
# ndiswrapper -l
Con lo que obtendrás algo como esto:
wusb54g : driver installed
device (5041:2235) present (alternate driver: p54usb)
Si deseas eliminar el driver, basta con identificar el nombre del mismo y ejectar ndiswrapper con la opción -r. Por ejemplo, para eliminar el driver del ejemplo anterior el comando sería:
# ndiswrapper -r wusb54g
ndisgtk, interfaz gráfica para ndiswrapper
Si no eres muy amigo de la consola, pues deberías intentar aprender… en todo caso, y mientras estudias, puedes utilizar ndisgtk, una herramienta bastante sencilla escrita en Python (pygtk), con la que podrás gestionar fácilmente los drivers de tus tarjetas Wifi.
Su instalación en Ubuntu (por que no está en los repositorios de Arch Linux) es:
# aptitude install ndisgtk
Para usarlo vas a Sistema -> Administración -> Controlador para redes inalámbricas de Windows, y verás algo como esto:
Para instalar un driver, has clic en el botón Instalar nuevo controlador, y selecciona el archivo .inf.
Ejemplo: instalar el adaptador de red inalámbrico USB: Linksys WUSB54GP
El dispositivo que vamos a instalar en nuestro ejemplo es un adaptador de red inalámbrica USB fabricado por Linksys, de referencia WUSB54GP. En mi caso tengo el CD con los drivers para Windows, pero bien podría haberlos descargado de la página del proveedor.
1. Primer paso: ubicar los archivos de los drivers
:/# cd /media/cdrom
:/media/cdrom# ls
Acrobat Reader 6.0 AUTORUN.INF Drivers IMAGE License_EN.rtf Manual Setup.exe Utility Wlan.ini
:/media/cdrom# cd Drivers/
root@pogo:/media/cdrom/Drivers# ls
WUSB209x.sys WUSB20XP.sys WUSB54G.cat WUSB54G.inf
2. Segundo paso: instalar los drivers con ndiswrapper
# ndiswrapper -i WUSB54G.inf
3. Tercer paso: crear el alias para el módulo
# ndiswrapper -m
4. Cuarto paso: cargar el módulo
# modprobe ndiswrapper
Puedes verificar si el módulo fue cargado con el comando:
# lsmod | grep ndiswrapper
5. Quinto paso: activar la tarjeta y usarla
# ifconfig wlan0 up
Puedes hacer un escaneo para ver qué redes están disponibles con el comando iwlist wlan0 s:
Ubuntu trae un gestor de redes bastante bueno, pero en caso tal que no te guste o que uses Arch Linux, te recomiendo usar RutilT. Además el gestor de redes inalámbricas de Ubuntu no funciona con algunas tarjetas (por ejemplo con la Ralink RT73), por lo que RutilT es una excelente opción. La instalación en Debian y Ubuntu:
# aptitude install rutilt
O en Arch Linux:
# pacman -S rutilt
Su apariencia es la siguiente:
Depurando problemas (troubleshoting)
Si antes de instalar tu tarjeta ya tenías una instalada, debes ser cuidadoso con el archivo /etc/modprobe.d/ndiswrapper, puesto que el alias de la tarjeta (wlan0, wlan1, wlanN) debe ser diferente a la de la tarjeta que estás actualmente usando.
Ten en cuenta que aircrack-ng NO funciona actualmente con tarjetas configuradas con ndiswrapper. Así que si tenías planeado algo de auditoría de redes inalámbricas, pues no se va a poder
Si experimentas problemas de otro tipo, lo mejor es ver qué sucede ejecutando el comando dmesg lo cual nos mostrará información del error, o dmesg | tail (para ver solamente los últimos sucesos)
Errores como SIOCSIFFLAGS: No such file or directory son causados generalmente por errores con el firmware. Si es tu caso, basta con que ejecutes dmesg para identificar qué archivo de Firmware está intentando cargar la tarjeta, y verificar si existe o no. Ello te permitirá buscarlo por ejemplo en páginas como Intel Linux Wireless.
Recuerda que si no tienes el firmware, debes descargarlo y copiarlo en la carpeta /lib/firmware.
Si al momento de ejecutar el comando ndiswrapper -l, no aparece “present“, verifica si está correctamente conectado el dispositivo. En caso de que sea USB, es buena idea ejecutar el comando lsusb, o si es PCI pues lspci.
Para otros casos es posible utilizar una excelente herramienta llamada ndiswrapper. La función de este programa es la de utilizar los drivers que están construidos para funcionar en Windows, y hacerlos funcionar en nuestro querido Linux.
En esta guía intentaré mostrarles detalladamente, cómo es el proceso de instalación de una tarjeta de red inalámbrica utilizando ndiswrapper (al menos de dos maneras, para que tengas más opciones), y por supuesto un ejemplo de la vida real.
Instalando ndiswrapper
Uso de ndiswrapper
ndisgtk, una interfaz gráfica para ndiswrapper
Ejemplo: instalando el adaptador de red inalámbrico USB: Linksys WUSB54GP
Solución de problemas
Instalación de ndiswrapper
Desde los repositorios…
La instalación de este programa es bastante sencilla, puesto que se encuentra en los repositorios de prácticamente todas las distribuciones. En Ubuntu o Debian basta con ejecutar el comando:
# aptitude install ndiswrapper
Si usas Arch Linux:
# pacman -S ndiswrapper
Desde las fuentes…
Si deseas puedes instalarlo desde el código fuente. Basta con descargarlo desde la página oficial , descomprimirlo, compilarlo e instalarlo:
# tar zvfx ndiswrapper-1.53.tar.gz
# cd ndiswrapper-1.53/
# make
# make install
Uso de ndiswrapper…
Puesto que ndiswrapper necesita de los drivers de Windows para instalarlos en Linux, es necesario saber dónde se encuentran (si están en la partición de Windows) o descargarlos. Una vez tengamos los drivers necesitamos el archivo cuya extensión sea .inf. Una vez indentificado ejecutamos el comando:
# ndiswrapper -i ARCHIVO.inf
Hecho esto, el driver queda instalado y solo nos queda crear un alias para cargar el módulo:
# ndiswrapper -m
# modprobe ndiswrapper
Ten en cuenta! Por defecto ndiswrapper crea el archivo /etc/modprobe.d/ndiswrapper que contiene esto: alias wlan0 ndiswrapper. Fíjate que pone wlan0, por lo que si ya tienes una tarjeta de red inalámbrica te daría problemas. Así que, si tienes más de una tarjeta debes cambiar el archivo y poner algo como esto: alias wlan1 ndiswrapper.
Una vez hecho esto, podrás verificar qué drivers tienes instalados y si la tarjeta se encuentra conectada, utilizando el comando:
# ndiswrapper -l
Con lo que obtendrás algo como esto:
wusb54g : driver installed
device (5041:2235) present (alternate driver: p54usb)
Si deseas eliminar el driver, basta con identificar el nombre del mismo y ejectar ndiswrapper con la opción -r. Por ejemplo, para eliminar el driver del ejemplo anterior el comando sería:
# ndiswrapper -r wusb54g
ndisgtk, interfaz gráfica para ndiswrapper
Si no eres muy amigo de la consola, pues deberías intentar aprender… en todo caso, y mientras estudias, puedes utilizar ndisgtk, una herramienta bastante sencilla escrita en Python (pygtk), con la que podrás gestionar fácilmente los drivers de tus tarjetas Wifi.
Su instalación en Ubuntu (por que no está en los repositorios de Arch Linux) es:
# aptitude install ndisgtk
Para usarlo vas a Sistema -> Administración -> Controlador para redes inalámbricas de Windows, y verás algo como esto:
Para instalar un driver, has clic en el botón Instalar nuevo controlador, y selecciona el archivo .inf.
Ejemplo: instalar el adaptador de red inalámbrico USB: Linksys WUSB54GP
El dispositivo que vamos a instalar en nuestro ejemplo es un adaptador de red inalámbrica USB fabricado por Linksys, de referencia WUSB54GP. En mi caso tengo el CD con los drivers para Windows, pero bien podría haberlos descargado de la página del proveedor.
1. Primer paso: ubicar los archivos de los drivers
:/# cd /media/cdrom
:/media/cdrom# ls
Acrobat Reader 6.0 AUTORUN.INF Drivers IMAGE License_EN.rtf Manual Setup.exe Utility Wlan.ini
:/media/cdrom# cd Drivers/
root@pogo:/media/cdrom/Drivers# ls
WUSB209x.sys WUSB20XP.sys WUSB54G.cat WUSB54G.inf
2. Segundo paso: instalar los drivers con ndiswrapper
# ndiswrapper -i WUSB54G.inf
3. Tercer paso: crear el alias para el módulo
# ndiswrapper -m
4. Cuarto paso: cargar el módulo
# modprobe ndiswrapper
Puedes verificar si el módulo fue cargado con el comando:
# lsmod | grep ndiswrapper
5. Quinto paso: activar la tarjeta y usarla
# ifconfig wlan0 up
Puedes hacer un escaneo para ver qué redes están disponibles con el comando iwlist wlan0 s:
Ubuntu trae un gestor de redes bastante bueno, pero en caso tal que no te guste o que uses Arch Linux, te recomiendo usar RutilT. Además el gestor de redes inalámbricas de Ubuntu no funciona con algunas tarjetas (por ejemplo con la Ralink RT73), por lo que RutilT es una excelente opción. La instalación en Debian y Ubuntu:
# aptitude install rutilt
O en Arch Linux:
# pacman -S rutilt
Su apariencia es la siguiente:
Depurando problemas (troubleshoting)
Si antes de instalar tu tarjeta ya tenías una instalada, debes ser cuidadoso con el archivo /etc/modprobe.d/ndiswrapper, puesto que el alias de la tarjeta (wlan0, wlan1, wlanN) debe ser diferente a la de la tarjeta que estás actualmente usando.
Ten en cuenta que aircrack-ng NO funciona actualmente con tarjetas configuradas con ndiswrapper. Así que si tenías planeado algo de auditoría de redes inalámbricas, pues no se va a poder
Si experimentas problemas de otro tipo, lo mejor es ver qué sucede ejecutando el comando dmesg lo cual nos mostrará información del error, o dmesg | tail (para ver solamente los últimos sucesos)
Errores como SIOCSIFFLAGS: No such file or directory son causados generalmente por errores con el firmware. Si es tu caso, basta con que ejecutes dmesg para identificar qué archivo de Firmware está intentando cargar la tarjeta, y verificar si existe o no. Ello te permitirá buscarlo por ejemplo en páginas como Intel Linux Wireless.
Recuerda que si no tienes el firmware, debes descargarlo y copiarlo en la carpeta /lib/firmware.
Si al momento de ejecutar el comando ndiswrapper -l, no aparece “present“, verifica si está correctamente conectado el dispositivo. En caso de que sea USB, es buena idea ejecutar el comando lsusb, o si es PCI pues lspci.