INSTRUCCIONES PARA LA INSTALACIÓN DE LA RED

Anuncio
Oficina del Software Libre
CITI
C/. Rep. Saharaui s/n 11015 Puerto Real
Teléfono
956016400
Fax 956016401
http://softwarelibre.uca.es
[email protected]
INSTRUCCIONES PARA LA INSTALACIÓN DE LA RED
INALÁMBRICA ucAir EN UN ORDENADOR CON SISTEMA OPERATIVO LINUX
Índice de contenido
1. Generalidades..................................................................................................................1
2. Instalación del controlador de la tarjeta de red inalámbrica.............................................1
3. Obtención, conversión y ubicación de los certificados.....................................................2
4. Instalación y configuración de Xsupplicant.....................................................................3
5. Automatización del proceso.............................................................................................5
6. Problemas........................................................................................................................6
7. Particularidades en SuSE Linux.......................................................................................6
8. Referencias......................................................................................................................8
1. Generalidades
En este documento se dan algunas guías para que el usuario experto que tenga un ordenador (presumiblemente portátil) con sistema operativo Linux pueda utilizar la red inalámbrica de la UCA, conocida
como ucAir. Las pruebas se han hecho con un ordenador portátil Acer Aspire 1353LM con las distribuciones Guadalinex_UCA, basada en GNU/Debian Linux, y SuSE Linux 9.2 Professional. La tarjeta
de red inalámbrica era una Linksys Wireless G con chip de Broadcom Corp., modelo BCM4306
802.11b/g Wireless LAN Controller. Se espera que este documento también pueda servir de guía para
usuarios con otras distribuciones y otro hardware.
2. Instalación del controlador de la tarjeta de red inalámbrica
Es conveniente que la tarjeta de red sea una de las recomendadas en el documento siguiente, apartado
de requisitos mínimos: http://www.uca.es/ucAir/guia/ucAir-guia.pdf.
En nuestro caso, la tarjeta es la recomendada, la Linksys Wireless G, con chip de Broadcom Corp.
Para ella, como para muchas otras, no existe un controlador para Linux; en estos casos, hay una solución que consiste en un programa envoltorio que hace de interfaz entre el controlador para Windows XP
y el núcleo Linux: se llama ndiswrapper, y viene en un paquete del mismo nombre en muchas distribuciones. En Guadalinex_UCA ya está preinstalado, por lo que no hay que obtenerlo.
El programa ndiswrapper tiene que cargar el controlador para Windows de la tarjeta, que puede obtenerse de su página web o del CD-ROM que traiga, como así hemos hecho. Esto se hace desde una consola o emulador de terminal, desde la cuenta root, así:
# ndiswrapper -i /cdrom/lsbcmds.inf
-1-
De aquí en adelante, el signo # delante de una orden representa el indicador o prompt del súper-usuario
root; no hay que escribirlo.
Esta orden sólo hay que hacerla una vez para la tarjeta. Copia los ficheros necesarios al disco duro para
que ndiswrapper los tenga accesibles cuando los necesite. A la opción -i hay que pasarle el camino donde
esté el fichero de extensión .inf con la descripción del controlador para Windows.
Para comprobar que ha hecho lo que debía, podemos usar la opción -l (guion y letra ele), que lista los
controladores instalados:
# ndiswrapper -l
Installed ndis drivers:
lsbcmds
hardware present
También hay que dar de nuevo la orden con la opción -m, lo que aporta información para el programa
de manipulación de módulos (controladores) modprobe. Esto también hay que hacerlo una sola vez:
# ndiswrapper -m
Adding “alias wlan0 ndiswrapper” to /etc/modprobe.d/ndiswrapper
Si Vd. posee una tarjeta de red inalámbrica con controladores nativos para Linux, no tendrá que usar
ndiswrapper, y seguramente puede saltarse este apartado porque ya tiene el controlador o móculo correspondiente cargado. Debido a la gran diversidad de hardware existente, es difícil dar instrucciones más
detalladas; consulte la base de datos de hardware de su distribución favorita. A veces es necesaria también una actualización del firmware de la tarjeta. Una cosa es cierta: si este primer paso no funciona, lo
demás sobra: nada de lo que viene a continuación funcionará.
3. Obtención, conversión y ubicación de los certificados
Si ha conseguido cargar un módulo para su tarjeta de red inalámbrica, es hora de obtener sus certificados digitales. Puede ver información a este respecto en el documento mencionado anteriormente:
http://www.uca.es/ucAir/guia/ucAir-guia.pdf, en el apartado obtención de certificados digitales. Estos se
consiguen desde la URL http://cau.uca.es/certificado.cgi, donde tendrá que entrar autenticándose convenientemente como miembro de la UCA. De aquí obtendrá dos ficheros y una clave; anote esta última
para no perderla y guarde los dos ficheros en el disco duro. Si su portátil aún no tiene red, porque no
tenga otra tarjeta configurada, puede obtener estos certificados desde otro ordenador cualquiera con
red, y pasar entonces los ficheros al portátil con cualquier método: disquete, tarjeta o lápiz de memoria,
etc.
Los ficheros obtenidos son el certificado del servidor: cacert.der, y el certificado de cliente:
nombre.apellido.uca.es.p12, donde nombre y apellido son evidentemente sus nombre y apellido reales como
en su dirección de correo electrónico. En este documento los llamaremos siempre así: nombre.apellido.
Estos ficheros no nos valen directamente; tenemos que obtener los certificados en formatos DER y
PEM; para ello daremos las siguientes órdenes:
# openssl pkcs12 -des3 -in nombre.apellido.uca.es.p12 -out nombre.apellido.pem
# openssl x509 -inform PEM -outform DER \
-in nombre.apellido.uca.es.pem -out nombre.apellido.uca.es.der
# openssl x509 -inform DER -outform PEM -in cacert.der -out cacert.pem
# openssl rand -out random 1000
La última orden no convierte ningún fichero sino que crea uno con datos aleatorios necesarios para el
-2-
intercambio de claves. La segunda es una sola línea, pero como no cabe aquí la he separado en dos; escríbala toda seguida sin el signo \.
4. Instalación y configuración de Xsupplicant
El programa que se encarga de la autenticación y del intercambio de claves y certificados se llama
xsupplicant, y viene en un paquete del mismo nombre en muchas distribuciones. En Guadalinex_UCA
no está preinstalado, pero sí está en el repositorio. Para instalarlo, primero hemos detectado que conviene editar el fichero /etc/apt/sources.list para dejar sólo las líneas siguientes:
deb http://guadalinex.uca.es/debian sarge main contrib non-free
deb http://guadalinex.uca.es/debian-non-US sarge/non-US main contrib non-free
deb http://guadalinex.uca.es/debian-security sarge/updates main contrib non-free
Puede dejar las restantes como comentarios insertándoles al principio el signo #, si no quiere borrarlas.
A continuación dará las órdenes:
# apt-get update
# apt-get install xsupplicant
También puede emplear Synaptic, un programa gráfico de Gnome de manipulación de paquetes. Está en
el menú Aplicaciones/Configuración/Sistema/Synaptic. Use el botón de Buscar para encontrar xsupplicant y
luego Marcar para instalar y Aplicar.
Una vez instalado xsupplicant, hay que configurarlo. Primero copiaremos o moveremos los ficheros de
certificados y el aleatorio al sitio más adecuado, que en Guadalinex_UCA es /etc/xsupplicant/tls; por
ejemplo:
# cp nombre.apellido.uca.es.{pem,der} cacert.pem /etc/xsupplicant/tls
El fichero de configuración predefinido de xsupplicant es /etc/xsupplicant/xsupplicant.conf. Edítelo para
que quede como se muestra a continuación. Se han omitido aquí los comentarios, para mayor sencillez.
network_list = ucAir
default_netname = ucAir
startup_command = <BEGIN_COMMAND>echo "xsupplicant startup"<END_COMMAND>
first_auth_command = <BEGIN_COMMAND>dhclient %i<END_COMMAND>
reauth_command = <BEGIN_COMMAND>echo "reauthenticated %i"<END_COMMAND>
logfile = /var/log/xsupplicant.log
ucAir
{
type = wireless
allow_types = eap_tls
identity = <BEGIN_ID>nombre.apellidos.uca.es<END_ID>
eap_tls {
user_cert
= /etc/xsupplicant/tls/nombre.apellidos.uca.es.der
user_key
= /etc/xsupplicant/tls/nombre.apellidos.uca.es.pem
-3-
user_key_pass
= <BEGIN_PASS>Escriba aquí su clave<END_PASS>
root_cert
= /etc/xsupplicant/tls/cacert.pem
crl_dir
= /etc/xsupplicant/tls
chunk_size
= 1398
random_file
= /etc/xsupplicant/tls/random
}
}
Una vez cargado el módulo de la tarjeta de red inalámbrica, obtenidos los certificados, instalado y configurado Xsupplicant, el proceso para activar la red inalámbrica es el siguiente:
1. Cargar el módulo de la tarjeta si no lo está ya, con modprobe.
2. Configurar la interfaz de red inalámbrica, con el programa iwconfig.
3. Configurar la interfaz de red inalámbrica como una normal, con el programa ifconfig.
4. Autenticarse contra el servidor RADIUS de la UCA mediante el protocolo IEEE 802.1x, con
xsupplicant.
5. Obtener los datos de red mediante el protocolo DHCP; en Guadalinex_UCA, con dhclient.
No se asuste, todo esto puede automatizarse, como se verá en la siguiente sección; pero conviene conocer los detalles para cuando haya problemas. Veamos ahora cada paso en detalle.
1. Para ver los módulos que tiene cargados, use el programa lsmod, sin parámetros. Para ver los mensajes del núcleo emplee dmesg, también sin parámetros. Busque ahí la palabra wlan para ver si algún
módulo relativo a la tarjeta inalámbrica se ha cargado:
# dmesg | grep wlan
Si no hay ninguna salida, seguramente no tiene el módulo cargado. Para cargarlo, debe dar la orden
modprobe con el nombre del módulo como parámetro. En nuestro caso:
# modprobe ndiswrapper
Puede comprobar si la operación ha tenido éxito mirando las últimas líneas de la salida de dmesg:
# dmesg | tail
y ver si el módulo está cargado con lsmod:
# lsmod | grep ndis
2. El programa iwconfig, preinstalado en Guadalinex_UCA, sirve para configurar o establecer los parámetros específicos de la operación inalámbrica en una interfaz de red. El más importante de todos
es el llamado ESSID: un nombre que identifica celdas que forman parte de la misma red virtual inalámbrica. Nuestro ESSID se llama “ucAir”. Otros parámetros importantes son el modo de operación y el de seguridad. Resumiendo, la orden a dar sería:
# iwconfig wlan0 essid ucAir mode managed key open
Para comprobar que la orden ha tenido efecto puede usar el mismo programa pasándole como parámetro solamente el nombre de la interfaz de red inalámbrica: wlan0, o bien simplemente emplear el programa iwgetid:
# iwconfig wlan0
-4-
# iwgetid wlan0
wlan0
ESSID:”ucAir”
Si el ESSID no está establecido como “ucAir”, xsupplicant no funcionará.
3. El programa ifconfig se emplea para configurar o establecer los parámetros de red de una interfaz de
red, de forma general; iwconfig sólo se ocupaba de los parámetros relativos a los aspectos inalámbricos. Por ahora bastaría con:
# ifconfig wlan0 up
Para comprobar el éxito de esta orden, ejecute ifconfig wlan0 y compruebe que aparece la palabra UP.
4. De la autenticación se encarga xsupplicant. Una vez configurado como se ha visto sólo hay que dar la
orden:
# xsupplicant -i wlan0 &
El signo & al final es para mandar la orden a segundo plano y dejar libre la terminal. Puede ver un registro del proceso de este programa en el fichero de registro especificado en el de configuración; en
nuestro caso es /var/log/xsupplicant.log.
5. DHCP (Dynamic Host Configuration Protocol) es un protocolo por el que un servidor DHCP otorga a
una tarjeta de red de un ordenador los datos necesarios para la operación: dirección IP, encaminador, servidor de nombres de dominio, etc. No hace falta dar aquí ninguna orden porque en el fichero de configuración de xsupplicant se dijo que se diera automáticamente en cuanto la autenticación
tuviera éxito, con el parámetro first_auth_command. Si no se hubiera puesto así, habría que dar la orden:
# dhclient wlan0
Para comprobar que la red está disponible, dé la orden ifconfig de nuevo y compruebe que wlan0 tiene
una dirección IP válida. Por supuesto, puede mirar los LED de la tarjeta de red, si tiene, y lanzar su navegador favorito para visitar páginas web...
5. Automatización del proceso
Afortunadamente, los pasos anteriores no hay que repetirlos. En Guadalinex_UCA podemos conseguir que todos esos programas se ejecuten automáticamente en su orden correcto cada vez que la interfaz de red inalámbrica se active. El fichero que hay que editar es /etc/network/interfaces. En él hay que
añadir las líneas siguientes relativas a la interfaz inalámbrica:
auto wlan0
iface wlan0 inet manual
pre-up modprobe wlan0
up ifconfig wlan0 0.0.0.0 up
up /usr/sbin/xsupplicant -i wlan0 &
down killall xsupplicant
down ifconfig wlan0 down
post-down modprobe -r wlan0
-5-
wireless_essid ucAir
wireless_mode managed
wireless_key open
wireless_enc 00000000
Cuando se da la orden ifup wlan0, lo cual ocurrirá automáticamente en el arranque del sistema
(auto wlan0), ocurrirá lo siguiente:
1. Se cargará el módulo mediante la orden modprobe wlan0, gracias a pre-up. Evidentemente
esta línea no debe ponerla si su módulo ya se carga automáticamente en el inicio del sistema. El poner wlan0 en lugar de ndiswrapper funciona porque la orden ndiswrapper -m creó el alias correspondiente.
2. Cada línea wireless_opción parámetro hace que se ejecute la orden: iwconfig
opción parámetro, como por ejemplo iwconfig essid ucAir.
3. Después se ejecutan por orden los programas especificados en las líneas que empiezan por up. En
este caso, ifconfig para configurar la interfaz y xsupplicant para la autenticación; hay que poner el signo
& para que el proceso siga.
4. El propio xsupplicant llama a dhclient pasándole el nombre de la interfaz de red, según se indica en el
fichero de configuración, y se contacta con un servidor DHCP que proporciona los datos de red necesarios. ¡La red inalámbrica está funcionando!
Cuando se da la orden ifdown wlan0, lo cual ocurrirá automáticamente en el apagado del sistema,
ocurrirá lo siguiente:
1. Se ejecutan por orden los programas especificados en las líneas que empiezan por down. En este
caso, primero se para xsupplicant mandándole una señal de terminar con killall, y luego se desconfigura la interfaz de red con ifconfig.
2. Al final, se descarga el módulo correspondiente (línea post-down). Esto no es estrictamente necesario; puede hacerse también con rmmod: rmmod ndiswrapper por ejemplo.
6. Problemas
A veces no funciona el establecimiento del ESSID de la tarjeta de red. Es decir, la orden
iwconfig wlan0 essid ucAir ...
no funciona en el arranque, aunque no da mensajes de error ni indicación alguna. En ese caso no queda
más remedio que volver a dar la orden; no hay que hacer nada más. En cuanto esté establecido el
ESSID, xsupplicant, que se está ejecutando en segundo plano, se autenticará y llamará a dhclient para obtener los datos de red. Si el problema persiste, parece arreglarse si se añade la siguiente línea después de
la de la llamada a xsupplicant en /etc/network/interfaces:
up sleep 10; iwconfig wlan0 essid ucAir
Si hay problemas con la autenticación mire el fichero de registro de xsupplicant: /var/log/xsupplicant.log.
Añada a xsupplicant la opción de depuración: -d nivel, donde nivel es un número del 1 al 9.
7. Particularidades en SuSE Linux
1. Instale los paquetes ndiswrapper (si le hace falta para su tarjeta inalámbrica), xsupplicant, wireless-tools y
-6-
net-tools. Si usa el entorno de escritorio KDE, le interesará también kdenetwork-wireless, donde está el
programa kwifimanager, que le dará datos acerca de la conexión inalámbrica (estación base, intensidad
de la señal, etc.). Todos los paquetes mencionados están en el DVD de instalación. Xsupplicant no
está en los CD, sólo en el DVD. Si tiene red, también puede poner como fuente de instalación el directorio /pub/linux/distributions/suse/pub/suse/i386/current del FTP anónimo de RedIRIS: ftp.rediris.es.
2. Configure ndiswrapper si lo necesita, como se describió para Guadalinex_UCA.
3. Obtenga los certificados y conviértalos a los formatos adecuados, como se describió anteriormente.
Cree los mismos directorios que se usaron en Guadalinex_UCA:
# mkdir -p /etc/xsupplicant/tls
Copie allí sus ficheros de certificado, como antes.
4. El fichero de configuración de xsupplicant en SuSE Linux es /etc/xsupplicant.conf. Créelo allí o, alternativamente en /etc/xsupplicant/xsupplicant.conf y entonces haga un enlace desde /etc, así:
# ln -s /etc/xsupplicant/xsupplicant.conf /etc/xsupplicant
El fichero es idéntico al empleado para Guadalinex_UCA con la única diferencia de que hay que
sustituir dhclient por ifup-dhcp, de forma que la línea afectada quedaría así:
first_auth_command = <BEGIN_COMMAND>ifup-dhcp %i<END_COMMAND>
5. Configure su tarjeta de red inalámbrica mediante YaST. Vaya al módulo Dispositivos de red, en el panel
de la izquierda, y escoja Tarjeta de red en el de la derecha. Si su tarjeta ha sido detectada ya, porque
seguramente emplea un controlador nativo de Linux, le aparecerá arriba y tendrá que escogerla y
pulsar el botón de Configurar. Si no le aparece, seguramente tiene que usar ndiswrapper. En ese caso
escoja Otro (no detectado) y pulse Configurar. Le aparecerá la ventana Configuración manual de tarjeta de red. En Tipo de dispositivo escoja Inalámbrico y en Nombre del módulo escriba ndiswrapper. En
la siguiente pantalla, Configuración de la dirección de red, el método de configuración será Configuración de la dirección estática. La Dirección IP será 0.0.0.0 y la Máscara de subred 255.255.255.0 (en realidad,
estos valores son irrelevantes, pero hay que rellenar los campos).
En la parte de abajo verá un cuadro con tres botones. El primero le llevará a la ventana de Nombre
de ordenador y nombre de dominio. Escríbalos. El primero se lo habrá dado el CAU (Centro
de Atención al Usuario) del Área de Informática. El segundo es uca.es. No escriba ni marque nada
más aquí, y pulse Aceptar.
El botón Enrutado le llevaría a la pantalla de Configuración del enrutado, pero no se preocupe en
pulsarlo siquiera, porque todos los campos deben dejarse en blanco.
Por último, el botón Avanzado le despliega una lista. Si usa ndiswrapper, escoja el primer elemento,
Detalles del hardware, y compruebe que ndiswrapper aparece como Nombre del módulo. No tiene que
tocar nada más. Pulse Aceptar y Siguiente.
6. Ahora estará en otra pantalla relativa a la Configuración de la tarjeta de red inalámbrica. Aquí
se configura iwconfig de modo gráfico. El Modo de operación será Gestionado. El identificador de red
(ESSID) será ucAir, el modo de autentificación será Abierto, en Tipo de entrada de clave escoja Hexadecimal y escriba 26 ceros. Pulse Siguiente y Finalizar.
7. Cámbiese al directorio /etc/sysconfig/network/if-up.d y cree un fichero allí con las siguientes líneas:
#!/bin/sh
/usr/sbin/xsupplicant -i wlan0 > /dev/null 2>&1 &
-7-
Llámelo xsupplicant y dele permisos de ejecución. Si quiere puede hacerlo todo así:
# cd /etc/sysconfig/network/if-up.d
# echo '#!/bin/sh' > xsupplicant
# echo '/usr/sbin/xsupplicant -i wlan0 > /dev/null 2>&1 &' >> xsupplicant
# chmod +x xsupplicant
8. Rearranque el equipo para comprobar el funcionamiento.
8. Referencias
1. General, red inalámbrica en GNU/Linux:
http://www.tldp.org/HOWTO/Wireless-HOWTO.html
2. General, red inalámbrica en SuSE Linux:
http://support.novell.com/cgi-bin/search/searchtid.cgi?/en/2002/11/wavelan.html
3. Autenticación EAP/TLS entre RADIUS y Xsupplicant:
http://www.missl.cs.umd.edu/wireless/eaptls/?tag=missl-802-1
4. Ndiswrapper: http://ndiswrapper.sourceforge.net/
5. Páginas del Manual de Referencia de GNU/Linux: ifconfig(8), iwconfig(8), interfaces
(5). Documentación de Xsupplicant en /usr/share/doc/packages/xsupplicant (SuSE) o
/usr/share/doc/xsupplicant (GNU/Debian y derivados).
6. Red inalámbrica de la Universidad de Cádiz (ucAir): http://www.uca.es/ucair/
-8-
Descargar