Manual:X86/Redes/Inalámbricas
Introducción a las redes inalámbricas
Las redes inalámbricas en Linux, normalmente se configuran de forma fácil. Hay tres formas de realizar esta configuración: clientes gráficos, interfaces en modo texto y la línea de comandos.
La forma más fácil es usar el cliente gráfico, una vez haya instalado un entorno de escritorio. La mayoría de clientes gráficos, como NetworkManager, son bastante auto explicativos. Ofrecen una interfaz del tipo apuntar y hacer clic que le conectan a una red en cuestión de segundos.
NetworkManager ofrece utilidades con interfaz en modo texto además de la interfaz gráfica principal. Haga emerge del paquete net-misc/networkmanager con el ajuste USE
tools
habilitado. La utilidad nmtui es particularmente útil para aquéllos que no usan un entrono de escritorio basado en X o Wayland, pero quieren una herramienta fácil de usar que no requiera editar manualmente archivos de configuración.Sin embargo, si no quiere usar un cliente gráfico, puede configurar la red inalámbrica con la línea de comandos, editando unos pocos ficheros de configuración. Esto toma un poco más de tiempo, pero también requiere de menos paquetes que descargar e instalar. Ya que los clientes gráficos son en su mayoría autoexplicativos (con capturas de pantalla útiles en sus páginas oficiales), nos centraremos en las alternativas de línea de comandos.
Hay tres herramientas que permiten configurar la red inalámbrica desde la línea de comandos: net-wireless/iw, net-wireless/wireless-tools y net-wireless/wpa_supplicant. De estas tres, net-wireless/wpa_supplicant es la preferida. Es importante recordar que se pueden configurar las redes locales de forma global, no dependiendo de la interfaz.
net-wireless/iw, el sucesor de net-wireless/wireless-tools, soporta casi todas las tarjetas y controladores, pero no puede conectar a puntos de acceso WPA. Si las redes ofrecen solo cifrado WEP o están abiertas, entonces net-wireless/iw gana por su simplicidades sobre otras herramientas.
Algunas tarjetas inalámbricas están desactivadas por defecto. Para activarlas, por favor, consulte la documentación de su hardware. Algunas de estas tarjetas se pueden desbloquear mediante la aplicación rfkill. Si es éste el caso, utilice rfkill list para ver las tarjetas disponibles y rfkill unblock INDICE para activar la funcionalidad inalámbrica. En otro caso, puede que tenga que desbloquear la tarjeta inalámbrica mediante un botón, conmutador o combinación especial de teclas en su ordenador portátil.
WPA supplicant
El proyecto WPA supplicant proporciona una paquete que permite a los usuarios conectarse a puntos de acceso habilitados con WPA.
root #
emerge --ask net-wireless/wpa_supplicant
Debe activar CONFIG_PACKET en su kernel para que funcione wpa_supplicant. Para ver si está habilitado en su kernel actual, pruebe:
root #
zgrep CONFIG_PACKET /proc/config.gz
root #
grep CONFIG_PACKET /usr/src/linux/.config
Dependiendo de sus ajustes USE, wpa_supplicant puede instalar una interfaz gráfica escrita en Qt5, que se integrará de forma adecuada con KDE. Pare tenerla, habilite
USE="qt5"
para el paquete net-wireless/wpa_supplicant.Ahora debemos configurar /etc/conf.d/net para elegir wpa_supplicant sobre wireless-tools (si ambos están instalados, wireless-tools será usado por defecto).
# Preferir wpa_supplicant sobre wireless-tools
modules="wpa_supplicant"
Si está usando el controlador host-ap, hará falta colocar el interfaz en modo gestionado (Managed mode) antes de poder usarlo correctamente con wpa_supplicant. Para esto puede usar
iwconfig_eth0="mode managed"
en /etc/conf.d/net.A continuación configure el propio wpa_supplicant (que es algo más difícil dependiendo de cuán seguros sean los puntos de acceso inalámbricos). A continuación mostramos un ejemplo simplificado extraido de /usr/share/doc/wpa_supplicant-<versión>/wpa_supplicant.conf.gz, parte del paquete wpa_supplicant.
# No cambie la siguiente línea, a riesgo que no funcione
ctrl_interface=/var/run/wpa_supplicant
# Asegúrese que sólo root puede leer la configuración de WPA
ctrl_interface_group=0
# Permítale a wpa_supplicant encargarse del barrido y selección de los PA
ap_scan=1
# Caso sencillo: WPA-PSK, frase ASCII como contraseña PSK, permitir todas las encriptaciones válidas
network={
ssid="simple"
psk="contraseña muy secreta"
# A mayor prioridad, más rápido nos conectaremos
priority=5
}
# Igual que el ejemplo anterior, pero barriendo para un SSID específico (para los PAs que rechazan
# transmitir el SSID)
network={
ssid="segundo ssid"
scan_ssid=1
psk="contraseña muy secreta"
priority=2
}
# Solamente estamos usando WPA-PSK. Se acepta cualquier encriptación válida
network={
ssid="ejemplo"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}
# Conexión sin encriptar (sin WPA, o IEEE 802.1X)
network={
ssid="prueba-solotexto"
key_mgmt=NONE
}
# Conexión con clave WEP compartida (sin WPA, o IEEE 802.1X)
network={
ssid="prueba-wep-estatica"
key_mgmt=NONE
# Claves entre comillas son claves ASCII
wep_key0="abcde"
# Claves sin comillas son claves hexadecimales
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
}
# Conexión con clave WEP compartida (sin WPA, o IEEE 802.1X) usando
# autentificación con clave compartida IEEE 802.11
network={
ssid="prueba2-wep-estática"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
auth_alg=SHARED
}
# Red IBSS/ad-hoc con WPA-None/TKIP
network={
ssid="prueba adhoc"
mode=1
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="contraseña secreta"
}
Wireless tools
Configuración inicial y modo gestionado
El proyecto wireless tools provee una manera genérica para configurar los interfaces inalámbricos básicos hasta el nivel de seguridad WEP. Aunque WEP es un sistema de seguridad débil, también es el más prevalente.
La configuración de Wireless Tools está controlada por algunas variables principales. El archivo ejemplo de configuración a continuación deberá describir todo lo requerido. Algo para mantener presente es que si no hay ninguna configuración quiere decir "conectarse al punto de acceso sin encriptación que tenga la señal más fuerte" - de manera que siempre tratará de conectarse con lo que sea.
root #
emerge --ask net-wireless/wireless-tools
A pesar de que net-wireless/iw es la herramienta actual para la configuración inalámbrica, net-misc/netifrc previa a la versión 0.6.0 no funciona con los nuevos comandos. Es necesario utilizar net-wireless/wireless-tools con netifrc en versiones previas. Para mas información consulte la documentación sobre nombres variables.
# Preferir iwconfig sobre wpa_supplicant
modules="iwconfig"
# Configure las claves WEP para los APs ESSID1 y ESSID2
# Pueden configurarse hasta 4 claves WEP, pero solo una puede
# estar activa a la vez, así que tenemos un índice por defecto
# de [1] para la clave [1] y luego otra vez para cambiar la clave activa a [1]
# Hacemos esto en caso que defina otros ESSIDs para usar claves WEP que no sean 1
#
#
# El prefijar la clave con s: significa que es una clave ASCII porque sino es una clave hexadecimal
#
# enc open especifica seguridad abierta (máxima seguridad)
# enc restricted especifica seguridad restringida (menos segura)
key_ESSID1="[1] s:aquisuclave key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
# Los ejemplos a continuación solo funcionan una vez que se haya barrido para los APs disponibles
# A veces se registra más de un AP, así que hará falta definir
# un orden de preferencia para conectarse
preferred_aps="'ESSID1' 'ESSID2'"
Ajuste fino en la selección de AP
Puede agregar opciones adicionales para afinar la selección de APs, pero normalmente esto no hace falta.
Puede decidirse por conectarse solamente a APs preferidos o no. Por defecto, si falla todo lo configurado y nos podemos conectar a un AP no encriptado, entonces se hará. Esto puede ser controlado con la variable associate_order (orden para asociación). Sigue una tabla de valores y como estos ejercen este control.
Valor | Descripción |
---|---|
any | (cualquiera) Comportamiento por defecto |
preferredonly | (solo preferidos) Solamente nos conectaremos a PAs visibles en la lista de preferidos |
forcepreferred | (obligado a preferidos) Nos conectaremos obligatoriamente a los PAs en el orden preferido aunque no se encuentren en un barrido |
forcepreferredonly | (solamente preferidos obligados) No barrer buscando PAs - solo tratar de conectar a cada uno en orden |
forceany | (obligar a cualquiera) Igual que forcepreferred y además se conecta a cualquier otro disponible |
Finalmente podemos hacer una lista negra de PAs (blacklist_aps) y seleccionar un único PA (unique_ap). blacklist_aps funciona de manera similar a preferred_aps. unique_ap es un valor si o no (yes o no) que determina si un segundo interfaz inalámbrico se puede conectar al mismo punto de acceso que el primer interfaz.
# A veces nunca queremos conectarnos a algunos PAs
blacklist_aps="'ESSID3' 'ESSID4'"
# Si tiene más de una tarjeta inalámbrica, puede determinar
# que cada interfaz se asocie al mismo PA o no
# Los valores son "yes" y "no"
# El valor por defecto es "yes"
unique_ap="yes"
Modos Ad-Hoc y Master
Si desea establecerse como un nodo Ad-Hoc al no lograr conectarse a algún PA en modo gestionado, puede hacerlo también.
adhoc_essid_eth0="Nodo Adhoc"
También es posible conectarse a redes ad-hoc o funcionar en modo master para convertirse en PA.
# Establezca el modo - que puede ser managed (por defecto), ad-hoc o master
# No todos los drivers soportan todos los modos
mode_eth0="ad-hoc"
# Establezca el ESSID del interfaz
# En modo gestionado, esto obliga a la interfaz a intentar conectarse al
# ESSID especificado solamente
essid_eth0="Nodo Adhoc"
# Se usaría el canal 3 si no se estableciera otro como a continuación
channel_eth0="9"
A continuación citamos la BSD documentación de wavelan encontrada en la documentación de NetBSD. Existen 14 canales posibles; Se nos informa que los canales 1-11 son legales para Norteamérica , los canales 1-13 para la mayor parte de Europa, los canales 10-13 para Francia y sólo el canal 14 para Japón. En caso de duda, por favor eche un vistazo a la documentación que acompaña la tarjeta o punto de acceso. Asegúrese que el canal que selecciona es el mismo qu el del PA (o de la otra tarjeta en caso de ser red ad-hoc). Para las tarjetas vendidas en Norteamérica y la mayor parte de Europa, es el canal 3 por defecto; en Francia el 11 y en el Japón es el 14.
Solucionar problemas con wireless tools
Existen más variables que sirven para ayudar a configurar y operar una red inalámbrica por problemas ambientales o del driver. Aquí presentamos una tabla de otras cosas para intentar.
Nombre de la variable | Valor por defecto | Descripción |
---|---|---|
iwconfig_eth0 | Vea la página man de iwconfig para detalles acerca de qué enviar a iwconfig | |
iwpriv_eth0 | Vea la página man de iwpriv para detalles acerca de qué enviar a iwpriv | |
sleep_scan_eth0 | 0 | La cantidad en segundos a dormir antes de intentar un barrido. Esto hace falta cuando el driver/firmware requiere de más tiempo para activarse antes de poder usarlos. |
sleep_associate_eth0 | 5 | La cantidad en segundos a esperar para que el interfaz se asocie con el PA antes de continuar al siguiente. |
associate_test_eth0 | MAC | Algunos drivers no resetean la dirección MAC asociada a una inválida cuando pierden la señal o intentan asociarse. Algunos drivers no resetean el nivel de calidad cuando pierden la señal o intentan asociarse. La configuraciones válidas son MAC, quality y all. |
scan_mode_eth0 | Algunos drivers tienen que hacer el barrido en modo ad-hoc, así que, si falla el barrido, intente configurar aquí como ad-hoc. | |
iwpriv_scan_pre_eth0 | Envía algunas órdenes iwpriv al interfaz antes del barrido. Consulte la página man de iwpriv para más detalles. | |
iwpriv_scan_post_eth0 | Envía algunas órdenes iwpriv al interfaz después del barrido. Vea la página man de iwpriv para más detalles. |
Definir la configuración de la red por ESSID
A veces, se necesita una dirección IP estática cuando se conecta a un ESSID1 y cuando lo hace a ESSID2, se utiliza DHCP.
Esto funciona sin importar si usa WPA Supplicant o Wireless Tools
Necesitará consultar la documentación variable name.
config_ESSID1="192.168.0.3/24 brd 192.168.0.255"
routes_ESSID1="default via 192.168.0.1"
config_ESSID2="dhcp"
fallback_ESSID2="192.168.3.4/24"
fallback_route_ESSID2="default via 192.168.3.1"
# Podemos definir servidores DNS y otras cosas también
# NOTA: DHCP reemplazará esta configuración a menos que se le indique que no debe hacerlo
dns_servers_ESSID1="192.168.0.1 192.168.0.2"
dns_domain_ESSID1="algun.dominio"
dns_search_domains_ESSID1="buscador.este.dominio buscador.aquel.dominio"
# Reemplace usando la dirección MAC del PA
# Esto es muy útil si usa distintas ubicaciones con el mismo ESSID
config_001122334455="dhcp"
dhcpcd_001122334455="-t 10"
dns_servers_001122334455="192.168.0.1 192.168.0.2"