Un problema de conectividad con Linux más resuelto. Por fin. Me explico: como muchos ya sabréis trabajo en la Facultad de Informática de la UPV/EHU. Para los usuarios que quieran conectarse a la red interna de la UPV han preparado una VPN. Hasta aquí sin problemas. El problema viene cuando vemos que las instrucciones oficiales para configurar un cliente Linux para esa VPN, aparte de que a un usuario normal le hacen pasarse a Windows rápidamente (no es broma, conozco a un usuario Linux que se pasó a Windows al ver ese desastre), lo dicho, aparte de asustar al usuario medio, NO FUNCIONAN. ¿Por qué? Porque ‘simplemente’ se han quedado anticuadas. Desde el Kernel 2.6.18 el cliente VPN de Cisco para Linux oficial no compila. Ahora es cuando un tercio de los aguerridos usuarios Linux que quedaban se pasan a Windows.
Bien, ¿qué podemos hacer si nuestra máquina tiene un Kernel 2.6.18 o superior? ¡Por cierto!, para saber ésto basta con ejecutar el siguiente comando:
[juanan@alancox]$ uname -a
Linux alancox 2.6.18-1.2798.fc6 #1 SMP Mon Oct 16 14:54:20 EDT 2006 i686 athlon i386 GNU/Linux
Mi versión del kernel en la máquina donde ejecuté el comando es la 2.6.18-1.2798.
Bueno, en ese caso, tras descargar la última versión del cliente VPN para Linux (requiere registro), hay que seguir las instrucciones que AitorC nos ha dejado en la web de EHUX (la distro Linux de la UPV), para parchear el código de vpnclient.
Tras cumplimentar esos pasos (parchear el cliente VPN oficial), seguimos paso a paso las instrucciones obsoletas que he mencionado antes y…. SEGUIRÁ SIN FUNCIONAR :-O
[root@alancox vpnclient]# vpnclient connect ehu
Cisco Systems VPN Client Version 4.8.00 (0490)
Copyright (C) 1998-2005 Cisco Systems, Inc. All Rights Reserved.
Client Type(s): Linux
Running on: Linux 2.6.18-1.2798.fc6 #1 SMP Mon Oct 16 14:54:20 EDT 2006 i686
Config file directory: /etc/opt/cisco-vpnclient
Enter a group password:
Initializing the VPN connection.
Contacting the gateway at 158.227.0.11
The VPN sub-system is busy or has failed.
Vaya por Dios… ¿dónde está ahora el problema? Bien, en que en esas instrucciones, por defecto, se establece un perfil (en /etc/opt/cisco-vpnclient/Profiles/ehu.pcf) que usa conexiones UDP. Hasta ahora, todos los «encuestados» Linuxeros me han comentado que NO les ha funcionado esa configuración. Para hacerla funcionar, hay que tunelizar por TCP. Traducido al castellano, en el fichero ehu.pcf, buscar la línea que pone:
TunnelingMode=0
y cambiarla por
TunnelingMode=1
Para ser justos, en los comentarios de usuarios de la página oficial de instrucciones sí que citan esta posibilidad (para RedHat 9…)
Tras indicar que queréis tunelizar, probad a conectar de nuevo:
[root@alancox bin]# ./vpnclient connect ehu
Cisco Systems VPN Client Version 4.8.00 (0490)
Copyright (C) 1998-2005 Cisco Systems, Inc. All Rights Reserved.
Client Type(s): Linux
Running on: Linux 2.6.18-1.2798.fc6 #1 SMP Mon Oct 16 14:54:20 EDT 2006 i686
Config file directory: /etc/opt/cisco-vpnclient
Enter a group password: <--------- EL PASSWORD de grupo es "VPNs" (sin las comillas)
Initializing the VPN connection.
Initiating TCP to 158.227.0.11, port 10000
Contacting the gateway at 158.227.0.11
User Authentication for ehu...
Enter Username and Password.
Username [scpXXXXXX]: <---- tu cuenta LDAP
Password []: <--- tu password LDAP
Authenticating user.
Negotiating security policies.
Securing communication channel.
Your VPN connection is secure.
VPN tunnel information.
Client address: 158.227.184.27
Server address: 158.227.0.11
Encryption: 168-bit 3-DES
Authentication: HMAC-MD5
IP Compression: None
NAT passthrough is active on port TCP 10000
Local LAN Access is disabled
Yeah! Bring it on! ¿Ya está? Sí. ¿Cómo sabemos que "yatá"? Conéctate al tablón de anuncios de la UPV/EHU. Si lo ves, estás VPNizado. Si no lo ves, "sigue rascando" 😉
Recuerda que a partir de ahora, tu IP será una del tipo 158.227.x.y . Puedes ver cuál es en concreto conectándote aquí:
http://www.whatismyip.com/
Nota1: la versión que yo he instalado es: vpnclient-linux-x86_64-4.8.00.0490-k9.tar.gz
Nota2: en ITSAS recomiendan vpnc, el cliente libre para VPNs , por si el oficial de Cisco no nos funciona.
Nota 3: mi sugerencia para los responsables de documentar el proceso de conexión para Linux sería el realizar un pequeño script que automatizara el proceso descrito en este mensaje. Ya puestos a hacerlo bien, sugeriría que se usara Zenity, para conseguir con el menor esfuerzo posible un script que funcione en modo gráfico (eso que a los usuarios tanto nos gusta: 'Siguiente'->'Siguiente'->'Fin'->'Todo ha ido como la seda, ya puedes tomarte un café, ¡campeón!')
PD: sólo me queda configurar la maldita tarjeta Intel 1390 con Eduroam en Ubuntu Gutsy para ganar todas las apuestas 😉