Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OPENVPN EN DEBIAN/UBUNTU
Siempre es bueno contar con una VPN, ya sea por que quieres salir con una IP de otro lugar para evitar las
restricciones geogrficas o por que estas en un hotspot publico y quieres tener esa pequea tranquilidad que otorga
el tener un VPN propia, as que aprovechando que aun tengo el ao gratis con amazon, pues instale y configure
OpenVPN.
Instalacin y configuracin
Como siempre en Debian y sus derivados de antes de instalar hay actualizar tus paquetes, estoy asumiendo que
estas utilizando la cuenta root, para elevar permiso con tu cuenta actual puedes utilizarsudo su - o bien agregar
sudo a cada linea.
apt-get update
1
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
1
cd /etc/openvpn/
2
3 gunzip server.conf.gz
vi /etc/openvpn/server.conf
1
IP Forward
Lo siguiente es habilitar habilitar reenvio de IP aka IP Forward, para habilitarlo hay varias formas.
Lo que hay que hacer para dejarlo de forma permamente es editar /etc/sysctl.conf
vi /etc/sysctl.conf
1
Firewall
Si tenemos firwall tenemos que habilitar el puerto 1194 udp y activamos el enmascaramiento de las IPs de los
clientes de la vpn, en este caso 10.8.0.0/24, asumiendo que la tarjeta de red de salida es eth0, podremos activar
esto.
cp -r /usr/share/easy-rsa/ /etc/openvpn
1
1 mkdir /etc/openvpn/easy-rsa/keys
Ahora hay que editar las variables de Easy-RSA el archivo a editar es/etc/openvpn/easy-rsa/vars los datos a editar
vienen casi al final del archivo y los datos que debemos de poner son los que desemos
export KEY_COUNTRY="MX"
1 export KEY_PROVINCE="NL"
2 export KEY_CITY="Monterrey"
3
4
export KEY_ORG="Nombre de la empresa"
5 export KEY_EMAIL="correo@ejemplo.com"
6 export KEY_OU="Unidad Organizacion"
En el archivo vars puedes utlizar server como el nombre de la llave. O bien si decidimos cambiarlo, tambien hay
que cambiar la referencia en el archivo /etc/openvpn/server.conf hacia los archivos server.key o server.crt, el
parametro es
export KEY_NAME="server"
1
Necesitamos generar el archivo Diffie-Hellman de acuerdo al parmetro que hayamos elegido en dh en el archivo
openvpn.conf, este comando puede demorar algunos minutos.
Para 1024
Para 2048
./clean-all
1
Ahora creamos la CA con los datos que hemos configurado en vars por lo que solo hay que dar enter a las opciones
./build-ca
1
Pues bien ahora toca el turno de generar la llave y el certificado para server o el nombre que le hayamos
asignado en KEY_NAME
./build-key-server server
1
Desplegara los datos que hemos capturado en vars, pero ahora solicitara algunos datos extra.
Dejamos estos en blanco, dando enter, tambin nos preguntara si deseamos firmar el certificado y si deseamos
hacer commit de los cambios, a ambas preguntas damos y
cp /etc/openvpn/easy-rsa/keys/server.crt /etc/openvpn
1
cp /etc/openvpn/easy-rsa/keys/server.key /etc/openvpn
2
3 cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn
Revisamos el estatus
En ubuntu algo as
Cada cliente deberia tener su propio certificado y llave, principalmente por que OpenVPN no permite conexin
mltiple utilizando el mismo certificado.
Para crear los diferentes acceso basta con usar ./build-key NombreCliente reemplazando NombreCliente por el
nombre que le desemos dar a este cliente.
cd /etc/openvpn/easy-rsa
1
. ./vars
2
3 ./build-key NombreCliente
Nuevamente saldran los datos que hemos capturado en vars, con los datosextra.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-
1 rsa/keys/NombreCliente.ovpn
/etc/openvpn/ca.crt
1 /etc/openvpn/easy-rsa/keys/NombreCliente.crt
2
3
/etc/openvpn/easy-rsa/keys/NombreCliente.key
4 /etc/openvpn/easy-rsa/keys/Nombrecliente.ovpn
Editamos el archivo NombreCliente.ovpn y los datos relevantes para nuestra configuracin son
# Aqui pondremos la ip o hostname de nuestro servidor OpenVPN
1
remote hostname-de-nuestro-server 1194
2
3 # Si utilizamos linux como cliente, que se ejecute sin privilegios
4 user nobody
5
group nogroup
6
7
8 # La ruta de nuestro certificados, llave y ca
9 ca ca.crt
10 cert NombreCliente.crt
11
key NombreCliente.key
Windows