Instalar OpenVPN
instale Openvpn
apt-get install openvpn
Copiar los archivos para la generación de llaves de la Entidad Certificadora, servidor y clientes
cp -r /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn cd /etc/openvpn/easy-rsa/2.0/
Creación de una Entidad Certificadora
Edite el archivo /etc/openvpn/easy-rsa/2.0/vars con las siguientes variables:
export KEY_SIZE=2048 export KEY_COUNTRY="CO" export KEY_PROVINCE="CO" export KEY_CITY="Bogotá" export KEY_ORG="<Organización>" export KEY_EMAIL="<Correo de la Entidad Certificadora>"
ejecute los siguientes comandos para crear una Entidad Certificadora (CA)
./vars ./clean-all ./build-ca
Del lado del servidor lo que nos queda genera son los parámetros de Diffie Hellman.
./build-dh
con esto se crea un directorio con las llaves en /etc/openvpn/easy-rsa/2.0/keys
Creación del servidor
./build-key-server server
Copiar los keys o crear un enlace simbólico
ln -s /etc/openvpn/easy-rsa/2.0/keys/ /etc/openvpn/keys
Copiar el archivo server.conf para la configuración de este.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn gzip -d /etc/openvpn/server.con.gz
edite el archivo /etc/openvpn/server.conf Descomentar client-to-client para que los clientes puedan verse entre ellos
ca keys/ca.crt cert keys/server.crt key keys/server.key # This file should be kept secret dh keys/dh2048.pem client-to-client
Creación de clientes
Ejecutar el siguiente comando en el servidor con esto se generará las llaves respectivas en el directorio keys, suponiendo que va a identificar a su cliente como cliente_VPN
cd /etc/openvpn/easy-rsa/2.0/ ./build-key-pass cliente_VPN source ./vars ./pkitool --pass cliente_VPN
Si no se desea que el cliente tenga contraseña se debe colocar:
./build-key cliente_VPN
se deben copiar los archivos ca.crt, cliente_VPN.crt, cliente_VPN.csr y cliente_VPN.key que se generán en el servidor en la carpeta keys al cliente y ponerlos en una carpeta llamada /etc/openvpn/cliente_VPN luego se copia el archivo client.conf
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
en este archivo se modifican las siguientes opciones según lo que se ha creado para nuestro cliente.
remote server.org 1194 ca ciente_VPN/ca.crt cert cliente_VPN/clienteVPN.crt key cleinte_VPN/cliente_VPN.key
Si usted desea que en el cliente no le pregunte su contraseña debe crear un archivo con la contraseña adentro y luego añadir a client.conf la opción askpass file
... askpass pass.secret
Notas
- Los relojes de los clientes deben estar muy cercanos a la hora del servidor si esto no sucede puede haber inconvenientes a la hora de la autenticación.

