====== Instalación en Debian ====== apt install openvpn easy-rsa ====== Configuración del archivo del server en Debian ====== Archivo server.conf port 1194 proto tcp dev tun ca ca.crt cert server.crt key server.key # This file should be kept secret dh dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" keepalive 10 120 tls-auth ta.key 0 # This file is secret cipher AES-256-CBC auth SHA256 user nobody group nogroup persist-key persist-tun status openvpn-status.log log openvpn.log log-append openvpn.log verb 3 explicit-exit-notify 0 ====== Generando los certificados ====== Creando la plantilla y configuración de certificados make-cadir ca cd ca Editamos el archivo vars para que los certificados tenga nuestros datos nano vars Creamos un enlace simbolico de la configuración de openssl ln -s openssl-1.0.0.cnf openssl.cnf Creamos la autoridad certificadora source ./vars ./build-ca Creamos el certificado del servidor ./build-key-server server Creamos las llaves Diffie-hellman ./build-dh openvpn --genkey --secret keys/ta.key Generamos el certificado del cliente ./build-key cliente1 ls -alhh keys/ Generamos la configuracion incial de nuestro servidor y copiamos la configuracion gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf cd keys Copiamos los certificados a la carpeta de openvpn cp ca.crt server.crt server.key ta.key dh2048.pem /etc/openvpn Creamos un compreso de los certificados del cliente tar -zcvvf cliente1.tar.gz ca.crt cliente1.key cliente1.crt ta.key ====== Archivo ovpn para Linux ====== Archivo cliente1.ovn para Network-manager en Linux client dev tun proto tcp remote example.com 1194 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings remote-cert-tls server cipher AES-256-CBC auth SHA256 verb 3 ;mute 20 ca [inline] cert [inline] key [inline] tls-auth [inline] 1 -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- -----BEGIN PRIVATE KEY----- -----END PRIVATE KEY----- -----BEGIN OpenVPN Static key V1----- -----END OpenVPN Static key V1----- ====== Archivo ovpn para Windows ====== Archivo cliente1.ovn para cliente de OpenVPN en Windows client dev tun proto tcp remote adescloud.ddns.net 1194 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings remote-cert-tls server cipher AES-256-CBC auth SHA256 verb 3 ;mute 20 -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- -----BEGIN PRIVATE KEY----- -----END PRIVATE KEY----- -----BEGIN OpenVPN Static key V1----- -----END OpenVPN Static key V1----- key-direction 1 ====== Configuración para conectarse a otras redes ====== iptables -t nat -L iptables -t nat -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward ====== Comandos Enable/Start/Stop ====== systemctl stop openvpn@server systemctl start openvpn@server systemctl enable openvpn@server ====== Referencias ====== * https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04 * https://serverfault.com/questions/483941/generate-an-openvpn-profile-for-client-user-to-import