Openvpn

Fri, Feb 5, 2021 2-minute read

instalar

apt-get install openvpn easy-rsa

copiamos el easy-rsa a openvpn, a veces me ha pasado que ya estaba hecho,:

mkdir /etc/openvpn/easy-rsa/ 
cp -r /usr/share/easy-rsa/* 
/etc/openvpn/easy-rsa/

Modificamos el vars con nuestro entorno. Después ya creamos certificados:

source vars ./clean-all ./build-ca

Cerficicados de servidor

./build-key-server nombreserver

Diffie Hellman, hay que hacerlo si o si:

./build-dh

ahora copiamos todo lo que acabamos de generar en /etc/openvpn

cp nombreserver.crt nombreserver.key ca.crt dh2048.pem /etc/openvpn

Certificados de cliente
Dentro de /etc/openvpn/easy-rsa/ source vars no hacemos el clean-all

./build-key nombrecliente

Ahora yo para crear los archivos para el cliente, en vez de copiarme todo esto, uso un script que existe. Este funciona con un archivo Default.txt, que tiene la configuración basica y después el script introduce los certificados inline. el Default.txt viene a ser algo como esto:

client
dev tun
proto udp
remote direccionippublica 1194
resolv-retry infinite
nobind
persist-key 
persist-tun
mute-replay-warnings
ns-cert-type server
key-direction 1 
cipher AES-128-CBC
comp-lzo
verb 1
mute 20  

Una vez tenemos esto, ejecutamos:

./MakeOPVN.sh

nos pide el nombre de cliente que hemos usado antes para hacer las certificaciones de cliente nombrecliente , una vez hacemos esto tendremos un nombrecliente.conf que luego podemos usar en los clientes. En ubuntu con copiar ese archivo en /etc/openvpn es suficiente, reinicar openvpn antes.

Iniciar y estatus Servidor

/etc/init.d/openvpn restart

Con esto reiniciamos el openvpn , como ya tenemos un server.conf en la carpeta /etc/openvpn ya se ejecuta, si hay más .conf también los ejecuta todos. Para ver el estado

systemctl status openvpn*.service 

o bien

service openvpn status  o
service openvpn@nombreserver status

Cliente en macosx Instalamos tunnelblick y copiamos el nombrecliente.conf en el equipo, una vez instalado tunnelblick clicamos en el archivo de conf y debería de tirar.

Direcciones ip staticas Por defecto se usa dhcp en el servidor pero yo en el archivo de configuración del servidor uso la opción de poder dar direcciones ip staticas

client-config-dir ccd

Por eso tengo una carpeta ccd en la base y ahí tengo un archivo con el nombre del cliente, y en ese archivo ponemos:

ifconfig-push 10.8.0.2 10.8.0.1

siendo la primera dirección la queremos y la segunda el gw.