¡Esta es una revisión vieja del documento!


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 usuario.crt nombre_servidor:/path/a/la/carpeta/
scp usuario.key nombre_servidor:/path/a/la/carpeta/

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í:

client
dev tun
proto udp
remote bilbao.merkatu.com 1194
resolv-retry infinite
nobind
#Las dos siguientes opciones no van en windows
user nobody
group nobody
persist-key
persist-tun
ca ca.crt
cert usuario.crt
key usuario.key
comp-lzo
verb 4
mute 20
route-method exe
up enrutado.bat

el enrutado.bat deberia tener esta información:

route -p add 10.12.13.0 MASK 255.255.255.0 10.12.14.5

Nos vamos a la maquina del cliente vpn e instalamos el software:

http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe

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.