Configuración de la udcwifi en Debian desde
Transcripción
Configuración de la udcwifi en Debian desde
Configuración de la udcwifi en Debian desde consola. 27 de noviembre de 2007 Copyright (c) 2007 Santa. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Section being .Agradecimientos”, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is avaliable at http://www.gnu.org/licenses/fdl.html Para erratas, sugerencias, consejos, insultos: [email protected], cambia nospam por gmail. 1. Antes de empezar: Se supone que tienes ya configurada tu tarjeta wifi y funcionando. Este manual es para usuarios medios/avanzados aunque también podrı́a servir para los novatos. Para saber si tu tarjeta wifi está funcionando teclea iwconfig como root. Si la respuesta que obtienes es algo parecido a esto, quiere decir que GNU/Linux no está reconociendo tu tarjeta: lo no wireless extensions. eth1 no wireless extensions. eth0 no wireless extensions. sit0 no wireless extensions. Si en cambio lo que ves es algo parecido a esto otro tu tarjeta si está preparada para funcionar y por lo tanto puedes seguir con el manual. Si tu tarjeta no va pelea con ella hasta que veas algo como lo de arriba. 1 lo no wireless extensions. eth1 no wireless extensions. eth0 no wireless extensions. sit0 no wireless extensions. wifi0 no wireless extensions. ath0 IEEE 802.11g ESSID:"udcwifi" Mode:Managed Frequency:2.417 GHz Access Point: 00:0B:0E:44:F6:84 Bit Rate:11 Mb/s Tx-Power:18 dBm Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Power Management:off Link Quality=18/94 Signal level=-78 dBm Noise level=-96 dBm Rx invalid nwid:87537 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 2. Configurar la red en Debian. Definición de interfaz de red - Una interfaz de red es una entidad que crea el sistema operativo para representar un dispositivo de red, o algo que sea conveniente representar como un dispositivo de red. Como se habrá imaginado el perspicaz lector, habrá una interfaz de red correspondiente a la tarjeta wifi. Las interfaces de red pueden estar activas o inactivas. Para configurar la red desde consola tenemos dos conjuntos de comandos: los de bajo nivel y los de alto nivel. Los comandos de bajo nivel son comandos tales como ifconfig, dhclient ... Los comandos de alto nivel que vamos a ver son ifup e ifdown. ¿Para qué se usan unos y otros? Los comandos de bajo nivel son útiles para modificar cosas al vuelo, por ejemplo, para cuando estamos tanteando configuraciones al azar (XD), a ver si decubrimos cuál es la correcta. Los comandos de alto nivel hacen lo mismo que los de bajo nivel y alguna cosa más. Para quién esté interesado en ver el tema a fondo, en el manual de referencia de Debian viene ampliamente explicado, sin embargo voy a dar una breve explicación: Los comandos ifup e ifdown los vamos a usar como sigue: ifup nombre_de_interfaz ifup nombre_de_interfaz=interfaz_lógica 2 ifdown nombre_de_interfaz. La segunda manera de usar ifup es útil para tener varias configuraciones. 3. Configurando la red en bajo nivel. Vamos a ver cómo configurar la red para comprobar que todo funciona. Una vez hayas terminado de seguir esta sección habrás visto si va la udcwifi en tu GNU/Linux o no. Lo primero es tener instalado el wpa supplicant, si no lo tenemos instalado: # apt-get install wpasupplicant Una vez instalado necesitamos el siguiente fichero de configuración /etc/wpa supplicant/udcwifi.conf: \pol_version=1 ap_scan=1 network={ priority=1 ssid="udcwifi" key_mgmt=WPA-EAP pairwise=TKIP group=TKIP eap=TTLS phase2="auth=PAP" # server ca_cert="/etc/wpa_supplicant/udcwifi.ca.pem" subject_match="/C=ES/O=Universidade da Coruna/CN=udcwifi.udc.es" # outer anonymous_identity="[email protected]" # inner identity="[email protected]" password="mi_password" } Y también este otro/etc/wpa supplicant/udcwifi.ca.pem: 3 -----BEGIN CERTIFICATE----MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4 04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9 3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ -----END CERTIFICATE----Obviamente, en el fichero udcwifi.conf ponemos el nombre de usuario y la contraseña que nos corresponde a cada uno. Copiamos ambos ficheros al directorio /etc/wpa supplicant. Como ya habrá deducido el astuto lector el fichero udcwifi.conf contiene información confidencial ası́ que le cambiamos los permisos para que solamente el root pueda acceder a este fichero: root@localhost:/etc/wpa_supplicant# chmod 00600 udcwifi.conf root@localhost:/etc/wpa_supplicant# ls -la udcwifi.conf -rw------- 1 root root 355 2007-10-31 22:11 udcwifi.conf Ahora ya está todo listo para ejecutar el wpa supplicant si ejecutamos el wpa supplicant sin argumentos nos muestra el texto de ayuda y un ejemplo ilustrativo. Nos pide tres cosas: 1. El driver de la tarjeta de red, que vamos a suponer que el lector conoce o bien por haber peleado contra los drivers de su tarjeta o bien por haber hecho lspci como root y pegado en google la lı́nea correspondiente a la tarjeta. Si aún ası́ no sabemos el driver le preguntamos al friki de turno. 2. La interfaz de red, si no la sabemos ya (que va a ser que sı́) tecleamos iwconfig y en el resultado, la única que no pone ”no wireless extensions”, pues esa (qué cosas). 3. El fichero de configuración del wpa supplicant que como ya habrá visto venir el inteligentı́simo lector es /etc/wpa supplicant/udcwifi.conf. 4 Con estas tres cosas ya sabemos suficiente para ejecutar el wpa supplicant, voy a poner un ejemplo para una tarjeta con chipset atheros que no es necesario (dada la capacidad exagerada de deducción que tiene el lector): # wpa_supplicant -Dmadwifi -iath0 -c /etc/wpa_supplicant/udcwifi.conf Trying to associate with 00:0b:0e:44:ff:44 (SSID=’udcwifi’ freq=2472 MHz) ioctl[IEEE80211_IOCTL_SETMLME]: Invalid argument Association request to the driver failed Associated with 00:0b:0e:44:ff:44 CTRL-EVENT-EAP-STARTED EAP authentication started CTRL-EVENT-EAP-METHOD EAP vendor 0 method 21 (TTLS) selected OpenSSL: tls_connection_handshake - Failed to read possible Application Data err CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully WPA: Key negotiation completed with 00:0b:0e:44:ff:44 [PTK=TKIP GTK=TKIP] CTRL-EVENT-CONNECTED - Connection to 00:0b:0e:44:ff:44 completed (auth) [id=0 id Paciencia, puede tardar. Una vez hecho esto hay que obtener una dirección IP mediante DHCP, para ello ejecutamos un cliente de DHCP dhclient, por ejemplo: Escribimos o bien # dhclient o bien # dhclient ath0 Donde ath0 es el nombre de la interfaz de red. Ahı́ va un ejemplo: # dhclient ath0 Internet Systems Consortium DHCP Client V3.0.4 Copyright 2004-2006 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ wifi0: unknown hardware address type 801 wifi0: unknown hardware address type 801 Listening on LPF/ath0/00:13:f7:48:2d:7e Sending on LPF/ath0/00:13:f7:48:2d:7e Sending on Socket/fallback DHCPDISCOVER on ath0 to 255.255.255.255 port 67 DHCPDISCOVER on ath0 to 255.255.255.255 port 67 DHCPDISCOVER on ath0 to 255.255.255.255 port 67 DHCPDISCOVER on ath0 to 255.255.255.255 port 67 DHCPOFFER from 10.20.32.4 DHCPREQUEST on ath0 to 255.255.255.255 port 67 5 interval interval interval interval 4 4 5 14 DHCPACK from 10.20.32.4 bound to 10.20.35.115 -- renewal in 21560 seconds. Y ya está, si todo fue bien deberı́amos tener internet. En la siguiente sección vamos a ver como se configura de manera algo mejor; vamos a poder hacer todo lo anterior con un comando tal que ası́ ifup ath0=udc y a hacer que la red se configure en el inicio. Si quieres dejar de leer aquı́, eres libre de hacerlo. 4. Configurando la red en alto nivel. Los comandos que vamos a ver aquı́ son ifup e ifdown y vamos a configurar su comportamiento modificando el fichero /etc/network/interfaces. Los comandos ifup e ifdown se diferencian de ifconfig en que hacen lo mismo que ifconfig, pero también alguna cosa más, por ejemplo, ejecutar automáticamente el wpa supplicant. Vamos a ver como se modifica el /etc/network/interfaces para la udcwifi: 1 2 # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). 3 4 5 # The loopback network interface auto lo iface lo inet loopback 6 7 8 9 10 11 12 13 14 15 16 #auto ath0=aji iface aji inet static address 192.168.10.2 netmask 255.255.255.0 network 192.168.10.0 gateway 192.168.10.1 dns-nameservers 192.168.10.1 80.58.0.33 pre-up wpa_supplicant -B -Dmadwifi -iath0 \ -c/etc/wpa_supplicant/aji_team.conf -P/var/run/wsaji.pid post-down kill $(cat /var/run/wsaji.pid) post-down rm -rf /var/run/wsaji.pid 17 18 19 #auto ath0=udc iface udc inet dhcp pre-up wpa_supplicant -B -Dmadwifi -iath0 \ 6 20 21 22 -c/etc/wpa_supplicant/udcwifi.conf -P/var/run/wsudc.pid post-down kill $(cat /var/run/wsudc.pid) post-down rm -rf /var/run/wsudc.pid Como vemos creamos una configuración con dhcp para la udcwifi, y además en la lı́nea 19 le ponemos la orden para ejecutar el wpa supplicant, en esta orden vemos dos opciones que no le habı́amos pasado antes -B y -P/var/run/wsudc.pid, -B es para que el wpa supplicant se ejecute en segundo plano, no lo hacemos con & porque si lo hacemos ası́ el programa, a pesar de estar en segundo plano insiste en sacar mensajes por la consola. -P/var/run/wsudc.pid es para que se almacene en el fichero /var/run/wsudc.pid el pid del proceso, para que después podamos matarlo. Las lı́nea 21 y 22 se ejecutan al hacer ifdown para terminar el wpa supplicant y borrar el fichero con el pid. El lector, tan atento a los detalles como siempre, ya se habrá dado cuenta que el fichero anterior tiene dos redes wifi configuradas, con lo cual, el que escribe esto, para tener red en su casa hace ifup ath0=aji y cuando se lleva el portátil a la fic hace ifup ath0=udc e ifdown ath0 en ambos casos para tirar la red. Mucho más cómodo que ejecutar el wpa supplicant a mano, ¿no? (la respuesta es sı́, besugo) claro que sı́, da resquemor ver a la gente matándose a poner todos los malditos parámetros del wpa supplicant, y todavı́a da más resquemor todavı́a ver que la gente lo hace con interfaces gráficas, y ya ver a informáticos usando güindous(tm) es para ir y golpear a la persona en cuestión en la nuca para instalarle Debian mientras no recupera el sentido. Y dicho todo esto, ya está todo listo. Si queremos conectarnos a la udcwifi cuando se arranque el sistema descomentamos la lı́nea tal quitándole la #. 5. Agradecimientos: A quegrande.org, por el foro y el hosting. Al GPUL, por su manual de LATEX. A los desarrolladores de GNU/Linux por hacer posible que escribiese este documento. A los que comparten su conocimiento, por enriqucernos a todos. ¡La información NO es una propiedad privada! 7