OpenVPN ALS es una solución de VPN escrita en Java con interfaz web y soporte a SSL, esta aplicación Web soporta AJAX y tecnologías Web 2.0 que permite el acceso completo a una red de ordenadores conectados independiente de su localización física. OpenVPN ALS es también conocido como Adito, el cual anteriormente era compuesto por SSL-Explorer, actualmente se encuentra disponible de forma independiente.
Esta aplicación es software libre, licencia GNU/GPL lo que invita a utilizarla y comprobar con un nivel de profundidad adecuado las potencialidades que ofrece.
A continuación se indicará el proceso de instalación y los conceptos clave para tener una VPN con Adito escalable y sobre todo segura.
OpenVPN ALS/ADITO
En primera instancia, las únicas dependencias que son necesarias para instalar y posteriormente utilizar Adito, son la máquina virtual de Java y Apache Ant. Java es un lenguaje de programación orientado a Objetos que soporta una gran cantidad de tecnologías y arquitecturas de software actualmente, de hecho, el termino “lenguaje de programación” en algunos aspectos se queda corto, no profundizaré mucho sobre esto, ya que un hacker nivel básico e intermedio sabe lo que es Java. Por otro lado, Apache Ant es una utilidad que permite construir de forma fácil y rápida proyectos escritos en Java, creando los artefactos necesarios para desplegar y ejecutar aplicaciones en servidores Web o servidores de aplicaciones, frecuentemente es comparado con “Make” (para aquellos que están familiarizados con lenguajes como C y C++).
OpenVPN ALS/Adito se puede instalar de una forma muy sencilla en sistemas operativos GNU/Linux, Windows, Mac, entre otros. Lo único que se necesita como se ha indicado anteriormente es tener la máquina virtual de Java y Apache Ant, como ya se ha indicado anteriormente, los conocimientos sobre instalación de Java y establecimiento de variables en el Path deben ser tareas que el lector domine con facilidad, si no es así se recomienda dirigirse a otros sitios de información en Internet donde se indique como instalar y configurar Java en GNU/Linux.
Por otro lado para instalar Ant, es posible utilizar la versión ubicada en los repositorios de distribuciones basadas en Debian y ejecutar el comando apt-get install ant, o descargar directamente el software desde la página de Apache Ant http://ant.apache.org/ el mecanismo empleado para cumplir con esta dependencia es irrelevante a efectos prácticos.
Una vez cumplidas las dependencias se procede a instalar y configurar OpenVPN ALS/Adito siguiendo los siguientes pasos:
- Descargar el software de OpenVPN ALS/Adito desde aquí: http://sourceforge.net/projects/openvpn-als/Descomprimir el fichero comprimido, para este caso concreto se ha descomprimido en el directorio /opt/
- Una vez descomprimido el fichero y desde la localización donde se ha ubicado el contenido del fichero descomprimido, se procede a ejecutar el comando de instalación, simplemente con ejecutar el comando
>ant install Buildfile: /opt/adito-0.9.1/build.xml set-tools:
check-tools:
[echo] Couldn’t find tools.jar from $ADITO_HOME/adito/lib
[echo] Copying the tools.jar from your JDK
[copy] Copying 1 file to /opt/adito-0.9.1/lib
check-permissions:
install:
[java] Starting installation wizard….Point your browser to http://adastra-test:28080.
[java]
[java] Press CTRL+C or use the ‘Shutdown’ option from the web interface to leave the installation wizard.
[java] .
En este momento, el software esta listo para ser configurado, este proceso se debe realizar desde un navegador web, en este punto, se iniciado un servidor en local, esperando conexiones en el puerto 28080
- Desde un navegador entrar en el wizard de instalación y seguir cada uno de los pasos que se indican para configurar correctamente la VPN, en realidad este paso no tiene mayor complejidad, se trata del clásico asistente de “siguiente, siguiente, finalizar”, Sin embargo se detallaran los pasos mas importantes a modo general:
1. En las primeras interfaces se genera un certificado SSL para garantizar la identidad del servidor web en orden de realizar transacciones e intercambio de datos sensitivos, en este proceso se ingresan datos relacionados con la entidad/persona que emite el certificado así como la clave que se asociará al mismo.
2. Una vez ingresada la información correspondiente al certificado, se debe establecer el mecanismo por el cual Adito recuperará información relacionada con los usuarios y ejecutará el proceso de autenticación. Los tres mecanismos soportados son:Active Directory: Valido para redes con grupos de Active Directory.
Built In: Base de datos interna, configurada y utilizada únicamente por Adito
UNIX: Para ejecutar el proceso de autenticación/autorización utiliza el sistema local basándose en los ficheros /etc/passwd, /etc/shadow y /etc/group.Para este caso concreto se utiliza una base de datos Built In.
3. Los pasos posteriores corresponden simplemente a la configuración de la base de datos elegida.
4. Finalmente, se procede a la configuración del servidor web propiamente dicho para brindar acceso a los clientes de la VPN>ant install Buildfile: /opt/adito-0.9.1/build.xml set-tools:
check-tools:
[echo] Couldn’t find tools.jar from $ADITO_HOME/adito/lib
[echo] Copying the tools.jar from your JDK
[copy] Copying 1 file to /opt/adito-0.9.1/lib
check-permissions:
install:
[java] Starting installation wizard….Point your browser to http://adastra-VPCEB3C5E:28080.
[java]
[java] Press CTRL+C or use the ‘Shutdown’ option from the web interface to leave the installation wizard.
[java] .
BUILD SUCCESSFUL
Total time: 10 minutes 24 seconds
- Ahora, es posible instalar Adito como un servicio mas del Sistema, de modo tal que puede ser controlado como cualquier servicio en GNU/Linux, para conseguir esto simplemente se ejecuta el “target” de Ant correspondiente
>ant install-service Buildfile: /opt/adito-0.9.1/build.xml set-tools:
check-tools:
check-permissions:
install-service:
[echo] Installing Adito as Linux service
[exec] Detecting Java
[exec] Using /home/adastra/DESARROLLO/ENTORNOJAVA/jdk1.6.0_20/jre
[exec] Detected OS debian (x86-64)
[exec] update-rc.d: warning: /etc/init.d/adito missing LSB information
[exec] update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
[exec] Adding system startup for /etc/init.d/adito …
[exec] /etc/rc0.d/K20adito -> ../init.d/adito
[exec] /etc/rc1.d/K20adito -> ../init.d/adito
[exec] /etc/rc6.d/K20adito -> ../init.d/adito
[exec] /etc/rc2.d/S20adito -> ../init.d/adito
[exec] /etc/rc3.d/S20adito -> ../init.d/adito
[exec] /etc/rc4.d/S20adito -> ../init.d/adito
[exec] /etc/rc5.d/S20adito -> ../init.d/adito
[exec] /opt/adito-0.9.1/install/platforms/linux/install-service: line 12: /opt/adito-0.9.1/conf/wrapper.conf: No such file or directory
[exec] Service installed
[echo] Adito installed as Linux service
BUILD SUCCESSFUL
Total time: 0 seconds
Se reinicia el servicio antes de comenzar a utilizarlo
>/etc/init.d/adito restart Stopping Adito… Adito was not running.
Starting Adito…
Si no se desea instalar como servicio se puede iniciar y detener el servicio desde el directorio de instalación:
Detener
>ant stop Buildfile: /opt/adito-0.9.1/build.xml check-permissions:
stop:
[exec] Stopping Adito…
[exec] Stopped Adito.
BUILD SUCCESSFUL
Total time: 2 seconds
Iniciar
>ant start Buildfile: /opt/adito-0.9.1/build.xml create-wrapper-conf:
[copy] Copying 1 file to /opt/adito-0.9.1/conf
[echo] Creating wrapper configuration dynamically
[echo]
[echo] Java executable: /home/adastra/DESARROLLO/ENTORNOJAVA/jdk1.6.0_20/jre/bin/java
[echo] Wrapper directory: install/platforms/linux/x86
set-tools:
check-tools:
check-permissions:
start:
[exec] Starting Adito…
[echo] Adito started
BUILD SUCCESSFUL
- Posteriormente, un cliente se puede conectar a la VPN por el puerto 443 (HTTPS) del servidor para comenzar con la configuración de la VPN, ingresando usuario y clave establecidos en el proceso de instalación, esto lleva a la interfaz principal de administración de Adito.
- Ahora, una vez adentro, lo mas probable es que una de las primeras tareas que se lleve a cabo en Adito es crear cuentas de usuarios que pueden conectarse a la VPN, para este fin, en el menú lateral izquierdo se encuentra la opción Access Control → Accounts desde allí se podrá ver, que existe solamente un usuario, el creado en el proceso de instalación, posteriormente, en el panel derecho se encuentra la opción de crear un nuevo usuario.
- Ahora, las opciones mas interesantes de la administración de Adito se encuentran en la sección de Resources, donde se pueden crear túneles SSL, Perfiles, Web Forwarders (configuración de acceso a aplicaciones web internas) Sitios en Red, Aplicaciones (Para publicar y ejecutar por medio de Adito). Por otro lado también existen opciones de Control de Acceso y configuración que son de uso bastante simples y muy intuitivas, por lo tanto se invita al lector a explorar por su propia cuenta dichas posibilidades expuestas en la interfaz web.
Finalmente, se describen algunas de las ventajas y desventajas que se pueden encontrar utilizando esta solución de VPN
Ventajas | Desventajas |
Fácil Instalación y uso muy intuitivo por medio de interfaz web | Al igual que OpenVPN cuenta con un sistema cliente-servidor, lo que indica que se debe contar con un host en internet centralizado si se requiere acceso desde Internet (algo que con Hamachi no ocurre, dado que es un sistema descentralizado) |
Independencia de plataforma al estar completamente escrito en lenguaje Java | Dependiendo de la configuración, el sistema operativo y el “Tunning” que se lleve a cabo en la máquina servidora, pueden existir problemas de rendimiento |
Interfaz de Administración Web muy completa, con múltiples opciones de configuración de recursos | Tanto cliente como servidor deben tener la maquina virtual de Java, de otro modo no funcionarán determinadas funciones. |
Administración unificada de políticas de acceso a los usuarios creados desde la interfaz de administración | |
Licencia GNU/GPL, Software Libre a la disposición de todo el mundo | |
Capacidad de redireccionar a peticiones a otros servidores web (web forward) de forma segura por medio de la VPN realizando un “ByPass” de las restricciones del firewall | |
Capacidad de compartir directorios de la máquina servidora con perfiles de accesos muy finos, lo que permite que cada usuario pueda realizar solamente determinadas funciones en base al rol al que pertenece | |
Capacidad de crear túneles SSH por medio de los recursos creados en la opción “SSL Tunnels” de este modo se puede obtener una consola en distintas máquinas pertenecientes a la VPN, simplemente utilizando Putty o directamente ejecutando el comando ssh. | |
Adtio cuenta con Agente Stand-Alone que permite realizar una conexión con el servidor de la VPN de la misma forma en la que se realiza desde un navegador web, lo que demuestra la versatilidad de Adito.Dicho Agente puede ser obtenido desde: http://sourceforge.net/projects/aditoagentclien/ |
Como puede apreciarse, las ventajas que se han descrito son muy interesantes a la hora de crear una VPN que permita acceso remoto a recursos de una maquina particular evadiendo las restricciones de un firewall. Os animo a probarla!