Generación de una nueva cuenta VPN
Dentro de srv-firewall (A.K.A. gorgoroth o firewall) nos introducimos en la carpeta de los ficheros de conf de OpenVPN.
$ cd /etc/openvpn/easy-rsa/2.0
Ejecutamos el script de generación de claves para el usuario:
$ source ./vars $ ./build-key USUARIO*
* El usuario consiste en el primer caracter del identificador nombre seguido del apellido, (eje. Mikel Blanco ⇒ mblanco)
nos hará una serie de cuestiones que procederemos a contestar con lógica:
gorgoroth:/etc/openvpn/easy-rsa/2.0# ./build-key mblanco Generating a 1024 bit RSA private key ............................................++++++ ..........................++++++ writing new private key to 'mblanco.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [US]:ES State or Province Name (full name) [CA]:Bi Locality Name (eg, city) [SanFrancisco]:Bilbao Organization Name (eg, company) [Fort-Funston]:Merkatu Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) [mblanco]: Email Address [me@myhost.mydomain]:mblanco@merkatu.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'ES' stateOrProvinceName :PRINTABLE:'Bi' localityName :PRINTABLE:'Bilbao' organizationName :PRINTABLE:'Merkatu' commonName :PRINTABLE:'mblanco' emailAddress :IA5STRING:'mblanco@merkatu.com' Certificate is to be certified until May 1 14:07:36 2020 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
los certificados ya se han generado y se encuentra en la carpeta keys:
$ cd /etc/openvpn/easy-rsa/2.0/keys
Dentro de este directorio se habrán generado 3 ficheros:
usuario.crt usuario.csr y usuario.key
Copiamos los ficheros a algún servidor al que tengamos acceso vía SAMBA para poder recogerlos luego.
scp -p usuario.crt nombre_servidor:/path/a/la/carpeta/ scp -p usuario.key nombre_servidor:/path/a/la/carpeta/ (Ej.: scp -p mblanco.crt srv-datos:/merkatu/sat/vpn/)
Es momento de generar el directorio de configuración para la máquina cliente. Para ello es necesario crear un directorio con los siguientes archivos:
ca.crt usuario.crt usuario.key enrutado.bat y client.ovpn
el fichero client.ovpn debe contener algo así:
dev tapv proto udp remote bilbao.merkatu.com 1194 pull tls-client nobind keepalive 10 60 link-mtu 1300 script-security 2 system #Las dos siguientes opciones no van en windows user nobody group nobody ca ca.crt cert nombre_usuario.crt key nombre_usuario.key
Nos vamos a la maquina del cliente vpn e instalamos el software:
http://openvpn.net/index.php/open-source/downloads.html
Instalamos el software en la maquina cliente y metemos los ficheros de conf generados en la carpeta:
c://Archivos de programa/Openvpn/config
Cruzamos los dedos, esperamos a la alineación correcta de los planetas, apretamos el condensador de fluzo y rearrancamos el cliente VPN. Debería poder conectarse.
Eliminación de una cuenta VPN
Dentro de srv-firewall (A.K.A. gorgoroth o firewall) nos introducimos en la carpeta de los ficheros de conf de OpenVPN.
$ cd /etc/openvpn/easy-rsa/2.0
Ejecutamos el script de eliminación de usuario:
source ./vars ./revoke-full USUARIO
Esto devolverá un mensaje tal que:
Using configuration from /root/openvpn/20/openvpn/tmp/easy-rsa/openssl.cnf DEBUG[load_index]: unique_subject = "yes" Revoking Certificate 04. Data Base Updated Using configuration from /root/openvpn/20/openvpn/tmp/easy-rsa/openssl.cnf DEBUG[load_index]: unique_subject = "yes" client2.crt: /C=KG/ST=NA/O=OpenVPN-TEST/CN=client2/emailAddress=me@myhost.mydomain error 23 at 0 depth lookup:certificate revoked
La última línea nos informa de un error avisando de que el certificado ha sido revocado. Ya hemos terminado.
Instalación y uso de una cuenta VPN
Windows
Descargamos e instalamos la última versión del OpenVpn GUI (Grafical User Interface).
¡¡¡ATENCION!!!! En el caso de Windows Vista/7 la instalación debe hacerse como Administrador, y debemos comentar la línea del enrutado.bat para que no se ejecute. Una vez instalado hay que ejecutarlo también como administrador.
OpenVPN puede correr como daemon, como servicio o desde la línea de comandos, pero también es posible controlar OpenVPN por medio de un front-end grafico o interfaz gráfico de usuario, conocido también como GUI por sus siglas en inglés.
- En primer lugar descargamos la última versión para Windows de OpenVPN disponible aqui.
- Instalamos el programa (esta vez no he hecho capturas de la instalación, pero ya sabéis, siguiente, siguiente, siguiente…)
- Una vez instalado vamos a la ruta donde hemos hecho la instalación, por defecto C:/Archivos de Programa/OpenVPN y entramos en la carpeta “config” dentro de esta carpeta tenemos que introducir los ficheros que vengan en la carpeta config adjunta, sustituyendo los certificados por los de la persona que corresponda y modificando las siguientes líneas del client.ovpn:
dev tapv proto udp remote bilbao.merkatu.com 1194 pull tls-client nobind keepalive 10 60 link-mtu 1300 script-security 2 system #Las dos siguientes opciones no van en windows user nobody group nobody ca ca.crt cert nombre_usuario.crt key nombre_usuario.key
- Nota: en caso de querer crear más de una conexión VPN podemos crear carpetas dentro de la carpeta config, cada una de ellas tendrá el nombre de la VPN a la que se conecta y contendrá los certificados necesarios y su correspondiente archivo .ovpn.
- Ejecutamos la aplicación OpenVPN y vemos que se añade un pequeño icono al lado del reloj.
- Hacemos clic derecho en el icono mostrado, nos aparece el nombre de la conexión que hemos configurado antes y si damos clic a Conectar se iniciara la conexión con el servidor VPN configurado.
- Una vez la conexión es satisfactoria el icono de antes cambia a color verde.
Mac
Hemos utilizado la versión 3.2.6 de Tunnelblick. El programa está disponible aquí.
El archivo de configuración y los certificados son los mismos que se han utilizado para configurar la conexión con el OpenVPN.
Lo que me ha estado dando problemas han sido las DNS. No tuve problemas en abrir la conexión pero no tenía otra forma de acceder al servidor que indicando su dirección IP. El problema es que tenía metidas en la configuración de la tarjeta de red las de Euskaltel (212.55.8.132 y 133) y claro … No encontraba ningún servidor con nombre srv-web. La solución, dejar sin definir los servidores de nombre.
Una vez conectado, para abrir la unidad de red:
Menu → Ir → Conectarse al Servidor
La dirección al servidor, en el caso de nombre_proyecto sería la siguiente smb:srv-web/nombre_proyecto/. Utilizamos el protocolo smb (samba) para comunicarnos con Windows.