sábado, 15 de septiembre de 2007

Conexión segura de la UGR (cviugr-v2)

Fuente: soloenviernes.com

Aunque de momento no he conseguido conectarme a través de NetworkManager, voy a explicar como podemos generar un pequeño script para conectarnos la red inalámbrica segura que ofrece la Universidad de Granada. El script está pensado para sistemas basados en Debian. En otros sistemas no sé aseguro su funcionamiento, ni la existencia de los comandos usados ;(

Para esto, necesitamos tener instalado wpasupplicant, disponible en los repositorios de Debian y Ubuntu. De hecho, en Ubuntu lo trae instalado desde la versión 6.06 creo recordar; en Debian lo desconozco.

Detectando nuestra tarjeta

Para saber que interfaz de red se corresponde con nuestra tarjeta inalámbrica, podemos hacer lo siguiente:

vruiz@SamsungX05:~$ iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

eth1 IEEE 802.11b ESSID:"" Nickname:"ipw2100"
Mode:Managed Frequency:2.462 GHz Access Point: 00:11:92:2A:52:B3
Bit Rate=11 Mb/s Tx-Power:16 dBm
Retry limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=100/100 Signal level=-42 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:2 Invalid misc:6 Missed beacon:0

vruiz@SamsungX05:~$

En mi caso, podemos ver que la interfaz es eth1, que será la que usaré para los comandos.

Adaptadores soportados por wpasupplicant

  • hostap - Host AP driver (Intersil Prism2/2.5/3)
  • 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
  • wired - wired Ethernet driver
  • test - test driver
  • Para una versión del kernel mayor a la 2.6.14, las tarjetas de Intel usan wext en lugar de ipw.

    Madwifi soporta tanto wext como madwifi. Se prefiere usar con wext, pero en ocasiones funciona mejor con madwifi.

    Ndiswrapper usa wext, a no ser que tengamos una versión 1.16 o anteriores, que usará ndiswrapper.

    Detectando la versión del kernel usada

    Para esto vasta ejecutar lo siguiente:

    vruiz@SamsungX05:~$ uname -r
    2.6.20-15-generic
    vruiz@SamsungX05:~$

    Información acerca de nuestra wifi

    Si sabes que tarjeta inalámbrica estás usando, puedes saltar este apartado. De todas formas, es muy simple, basta con ejecutar:

    vruiz@SamsungX05:~$ lspci | grep 'Network controller'
    02:07.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)
    vruiz@SamsungX05:~$

    Si observáis, mi tarjeta es una Intel 2100 y mi versión del núcleo es 2.6.20, por lo que usaré el driver wext.

    Archivo de configuración

    Primero debemos preparar el archivo de configuración para conectarnos a la cviugr-v2. Para ello, debes estar matriculado en la UGR y tener un correo y contraseña. Podemos ver una explicación de como hacerlo aquí.

    Básicamente, es crear un archivo de texto plano, el cual contendrá lo siguiente:


    eapol_version=1
    ap_scan=1
    network={
    ssid=”cviugr-v2″
    key_mgmt=WPA-EAP
    proto=WPA
    eap=TTLS
    anonymous_identity=”anonymous@ugr.es”
    identity=”usuario@correo.ugr.es”
    password=”xxxxxxxxxx”
    priority=2
    phase2=”auth=PAP”
    }

    El nombre y la ubicación del fichero será el que nosotros queramos darle. Por ejemplo, wpa.conf en el directorio /etc.

    Creando el script

    Para esto, usaremos dos comandos: wpa_supplicant y dhclient.

    A wpa_supplicant le indicamos el driver (-D), el interfaz (-i) y el archivo de configuración (-c). En mi caso, la llamada sería la siguiente:

    wpa_supplicant -Dwext -ieth1 -c/etc/wpa.conf.

    A dhclient únicamente hay que decirle el adaptador de red con el que queremos obtener una dirección IP asignada mediante DHCP. Lo invocaría:

    dhclient eth1

    Por tanto, el script sería un archivo de texto plano con el nombre que más nos guste, por ejemplo, cviugr_v2.sh, y cuyo contenido sería:

    wpa_supplicant -Dwext -ieth1 -c/etc/wpa.conf &
    dhclient eth1

    Ejecutando el script

    Es recomendable para cualquier gestor de redes que tengamos instalado, por ejemplo NetworkManager, antes de ejecutar el script.

    Para su ejecución, necesitaremos permisos de superusuario (root):

    vruiz@SamsungX05:~$ sudo sh cviugr_v2.sh

    Con esto, todo debería funcionar. ¡Suerte!

    6 comentarios:

    vruiz dijo...

    Tal vez te interese. Aquí tienes una mini-guía de como hacerlo de forma gráfica con Ubuntu Gutsy (7.10).

    Un saludo,
    Vicente Ruiz.

    vruiz dijo...

    Se me ha olvidado poner el enlace ^_^!

    Conexión cviugr-v2 con Ubuntu Gutsy

    Un saludo,
    Vicente Ruiz.

    Anónimo dijo...

    Han actualizado la forma de conexión. Con el nuevo método es totalmente funcional y funciona estupendo. Además, ahora es más fácil que en windows.

    http://www.ugr.es/informatica/cvi-ugr/mod-wpa-linux.htm

    saludos

    Paquillo Dubois dijo...

    La verdad es que no lo he necesitado desde que publiqué el post, mis últimas noticias eran que se podía hacer directamente.

    http://bioinformatiquillo.blogspot.com/2007/10/conexin-cviugr-v2-con-ubuntu-gusty.html

    Gracias por la información. Seguramente la incluya en el blog.

    Serafin dijo...

    Por si os interesa, os digo como lo he hecho yo:
    Usando Ubuntu 8.04 (Hardy Heron) con el network Manager se puede conectar a la cviugr-v2, y diréis ¿cómo?, muy fácil xD

    Seleccionáis la red cviugr-v2 y sacáis la ventana de la configuración de la red, os aparecerán un montón de campos, los tenéis que configurar como:

    _Nombre de la red: cviugr-v2 (os lo imaginaríais, supongo).

    _Seguridad: WPA Empresarial.

    _Método EAP: TTLS

    _Tipo de clave: automático.

    _Tipo phase2: PAP.

    _identidad: usuario@ugr.es (usuario@correo.ugr.es si eres alumno).

    _contraseña: vuestra password.

    _identidad anónima: anonymous@ugr.es

    _Archivo de certificado de cliente =
    Archivo de certificado de CA =
    Archivo de clase privada =
    certificado.pem

    Nota -> certificado.pem es el certificado GTE CyberTrust Global Root, que os lo podéis descargar. El enlace es:

    http://www.terena.org/activities/scs/cacert/gtecybertrustglobalroot.pem

    Le he puesto certificado.pem por darle un nombre genérico.

    _Contraseña de clave privada: vuestra password.

    Y le dáis a conectar.

    Espero que os sirva de algo.

    Paquillo Dubois dijo...

    gracias por tu contribución, Serafin!