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

Documentos relacionados