====== 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