Fuente: http://asyc.uc3m.es/frame.php?Id=72

CONFIGURACIÓN PARA ACCESO A LA RED EDUROAM CON 802.1X

GUIA DE CONFIGURACIÓN PARA SISTEMAS LinuX (Debian)

(probado con SARGE stable y versión de núcleo 2.4.27)

    INSTALACIÓN DEL SUPLICANTE (no válida para todos los modelos de tarjetas WiFi):

  • Para poder configurar el acceso mediante 802.1x a la red WiFi de la Universidad es necesario instalar un suplicante con soporte para el protocolo WPA-EAP/TTLS y un cliente dhcp. En el caso de Debian SARGE stable, una opción es instalar los paquetes wpasupplicant y dhcp-client:

prompt$ apt-get install wpasupplicant
prompt$ apt-get install dhcp-client

  • Se debe configurar el fichero /etc/wpa_supplicant.conf de la siguiente forma:

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="eduroam"
key_mgmt=WPA-EAP
eap=TTLS
anonymous_identity="anonymous"
identity="mi-login-de-correo"
password="mi-password"
priority=2
phase2="auth=PAP"
}

    Usuarios de otra institución distinta de la UC3M adscrita al proyecto EDUROAM, deberán sustituir mi-login-de-correo por el login-de-su-institución@dominio (por ejemplo: pepe@ugr.es)

    Usuarios de la UC3M, es recomendable que añadan al login de correo, @mi-dominio-de-correo.uc3m.es (p.ej. perico@di.uc3m.es), de esta forma, cuando viajen a otra institución adscrita al proyecto EDUROAM, probablemente no tengan que cambiar nada para conectarse.

  • Es opcional, aunque altamente recomendable, añadir a la configuración propuesta, la comprobación de que el servidor de autenticación que nos valida es realmente el "legal" de la UC3M: si no, existirá el peligro de que nuestro login y password puedan ser capturados de forma ilícita. Para ello recomendamos seguir los siguientes pasos adicionales:

1) Descargar el certificado de la CA de RedIris:
- Conectarse con un navegador a http://cert.uc3m.es/ca3/
- Seleccionar opción "Instalación"
- Colocar puntero del ratón encima del enlace "aquí" de:
"Si desea iniciar el proceso de instalación ahora, haga click aquí"
- Pulsar botón derecho del ratón.
- Seleccionar :
"Guardar destino del enlace como ..."
u opción similar del navegador.
- El nombre del fichero propuesto es iris-pca.cader.crt
- Lo guardamos.
- Lo copiamos del directorio donde nos lo haya salvado el navegador al directorio /etc/cert/ (debe crearse previamente si no existe).

2) Añadimos al fichero /etc/wpa_supplicant.conf, entre las opciones "network", la línea señalada en negrita:
network={
...
ca_cert="/etc/cert/iris-pca.cader.crt"
...
}

  • Ahora deberemos comprobar qué driver del wpa_supplicant sirve para el chipset/tarjeta-WiFi/driver que estemos utilizando, veamos que drivers puede utilizar el wpa_supplicant:

prompt$ wpa_supplicant -h
wpa_supplicant v0.3.8
Copyright (c) 2003-2005, Jouni Malinen and contributors

This program is free software. You can distribute it and/or modify it
under the terms of the GNU General Public License version 2.

Alternatively, this software may be distributed under the terms of the
BSD license. See README and COPYING for more details.

This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/)

usage:
wpa_supplicant [-BddehLqqvw] -i -c [-D] \
[-N -i -c [-D] ...]

drivers:
hostap = Host AP driver (Intersil Prism2/2.5/3)
prism54 = Prism54.org driver (Intersil Prism GT/Duette/Indigo)
madwifi = MADWIFI 802.11 support (Atheros, etc.)
atmel = ATMEL AT76C5XXx (USB, PCMCIA)
wext = Linux wireless extensions (generic)
ndiswrapper = Linux ndiswrapper
ipw = Intel ipw2100/2200 driver
options:
-B = run daemon in the background
-d = increase debugging verbosity (-dd even more)
-K = include keys (passwords, etc.) in debug output
-t = include timestamp in debug messages
-h = show this help text
-L = show license (GPL and BSD)
-q = decrease debugging verbosity (-qq even less)
-v = show version
-w = wait for interface to be added, if needed
-N = start describing new interface

  • Si nuestra combinación chipset/tarjeta-WiFi/driver se ajusta a alguna de las opciones, un script como el que sigue activará la conexión WiFi 802.1x:

ifconfig mi-interfaz-wifi up
wpa_supplicant -B -i mi-interfaz-wifi -c /etc/wpa_supplicant.conf -dd -D mi-driver
sleep 5
dhclient mi-interfaz-wifi

  • Por ejemplo en el caso de un Intel Centrino con tarjeta Intel Pro Wireless 2100, y algunas versiones (no todas: ver más abajo) de la 2200, la línea que invoca al wpa_supplicant podrá sustituirse por:

wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -D ipw


    (las opciones -dd son para depuración y si todo va bien no harán falta).

  • Si usamos el driver madwifi con tarjetas con chipset atheros, probablemente encontremos problemas, en ese caso podemos probar a seguir las instrucciones específicas para la instalación de una tarjeta PROXIM (AR5212 abg) (ver más abajo).

  • Para ver que tarjeta tenemos, su chipset, y el interfaz que le corresponde podemos usar los comandos lspci y dmesg. :

prompt$ lspci
...
0000:03:00.0 Network controller: RaLink Ralink RT2500 802.11 Cardbus Reference Card (rev 01)

prompt$ dmesg | grep wlan0
wlan0: vendor: 'Conceptronic 54g Wireless PC-Car'
wlan0: ndiswrapper ethernet device 00:80:5a:34:79:33 using driver conrt, 1814:0201:1948:3C00.5.conf
wlan0: encryption modes supported: WEP; TKIP with WPA, WPA2, WPA2PSK; AES/CCMP with WPA, WPA2, WPA2PSK

  • También puede ser útil tener instalado el paquete wireless-tools. Con el siguiente comando de ese paquete puedes comprobar que el essid de la red WiFi a la que te has asociado es eduroam:

prompt$ iwconfig mi-interfaz-wifi

  • Algunas tarjetas soportan la opción scanning para ver todos los ESSIDs accesibles:

prompt$ iwlist <interfaz wifi> scanning

  • Para ver la dirección IP/máscara/gateway obtenidos por el cliente dhcp:

prompt$ ifconfig mi-interfaz-wifi


    (si no te ha dado una dirección vuelve a ejecutar "dhclient mi-interfaz-wifi")

  • Algunos drivers para Linux de fabricantes tarjetas WiFi son soportados a través de la opción -D wext del wpa_supplicant: ver ejemplo para Intel Pro Wireless 2200BG más abajo.

  • Si no disponemos de un driver para nuestra tarjeta para Linux que se ajuste a alguno de los esperados por el wpa_supplicant podemos probar con el driver genérico NDISWRAPPER, y la opción -D ndiswrapper del wpa_supplicant:

    INSTALACIÓN CON EL DRIVER GENÉRICO NDISWRAPPER :

  • Si el driver que se está utilizando con la tarjeta (p.ej. el del fabricante), no se acomoda a ninguno de los que espera el wpa_supplicant, puede optarse por instalar el driver genérico "ndiswrapper" y siguiendo las instrucciones de éste, el driver de Windows para la tarjeta WiFi concreta que tengamos (si está soportado por NDISWRAPPER). Para ello seguiremos los pasos indicados en :


    (no olvides desinstalar el driver del fabricante de la tarjeta para Linux, si lo tenías instalado, antes de echar a andar el nuevo).

  • Como ejemplo desarrollaremos los pasos realizados para hacer funcionar una tarjeta 802.11g, CONCEPTRONIC C54RC con chipset RaLink RT2500, (consulta el enlace anterior para cualquier aclaración):

Partimos, por supuesto, de que tenemos los fuentes del núcleo, y en nuestro ejemplo (núcleo 2.4.27) el directorio:
/lib/modules/2.4.27/build

Una vez descargados los fuentes de ndiswrapper, lo construimos :
prompt$ tar zxvf ndiswrapper-1.7.tar.gz
prompt$ cd ndiswrapper-1.7
prompt$ more README
prompt$ more INSTALL
prompt$ make distclean
prompt$ make
prompt$ make install

Para instalar el driver de Windows, a partir del CD de la tarjeta :
prompt$ mount /cdrom
prompt$ ls /cdrom/driver/WINXP
prompt$ ndiswrapper -i /cdrom/driver/WINXP/ConRT.INF
prompt$ ls /etc/ndiswrapper/conrt
prompt$ ndiswrapper -l
prompt$ depmod -a

Para que se cargue siempre el driver en el arranque, en el fichero /etc/modules, añadimos la línea:
ndiswrapper

Para que todo funcione basta sustituir en el script que activa la conexión, mi-interfaz-wifi por wlan0 y mi-driver por ndiswrapper

  • También hemos probado con este driver una tarjeta WiFi-USB DLINK AIRPLUS DWL-G122 , en este caso la instalación del driver WindowsXP en NDISWRAPPER se hace de la siguiente forma :

prompt$ ndiswrapper -i /cdrom/Drivers/Drivers/NetRTUSB.inf



Última modificación: Thu, 06 Apr 2006 12:22:37 +0200
Execution time: 0.003598 secs.