Introducción

Una red privada virtual es una tecnología que crea una red segura y cifrada a través de una red menos segura como Internet.

Está diseñado principalmente para permitir que los usuarios y otras oficinas remotas accedan de forma segura a la red y los recursos corporativos a través de Internet.

El concepto permite que un cliente se conecte a la puerta de enlace VPN de la empresa mediante la autenticación mediante SSL o IPSec. Luego, la puerta de enlace proporciona un enlace a los recursos de la organización interna.

Algunas de las ventajas de usar VPN son:

  • Los miembros de la organización también pueden trabajar de forma remota.
  • Puede ocultar la actividad de navegación de un usuario.
  • Los usuarios pueden acceder a sitios web que pueden haber sido bloqueados de forma remota.

OpenVPN es una VPN completa que utiliza SSL / TLS para el intercambio de claves y luego es utilizada por sus pares para comunicarse entre sí.

Antes de que empieces

  • Dos VPS Ubuntu 18.04, uno como servidor y otro como cliente.
  • Un usuario no root con permisos sudo en ambos VPS
  • Cortafuegos habilitado en entornos de cliente y servidor

pasos

Actualizar paquetes del sistema

$ sudo apt update && sudo apt upgrade

Instale el paquete OpenVPN

$ sudo apt install openvpn

Configurar OpenVPN

Normalmente, OpenVPN autentica a los usuarios a través de varios métodos, como la combinación de nombre de usuario y contraseña, claves preinstaladas, certificados, etc. En este tutorial, un servidor y un cliente OpenVPN se configuran utilizando una clave secreta compartida.

Primero, debemos verificar que el servidor y el cliente puedan comunicarse entre sí.

En el lado del servidor, use el siguiente comando para probar el servidor VPS.

$ openvpn --dev tun1 --ifconfig 10.9.8.1 10.9.8.2
Tue Oct  919:12:242018 disabling NCP mode (--ncp-disable) because notin P2MP client or server mode
Tue Oct  919:12:242018 OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep  52018
Tue Oct  919:12:242018 library versions: OpenSSL 1.1.0g  2 Nov 2017, LZO 2.08
Tue Oct  919:12:242018 ******* WARNING *******: All encryption and authentication features disabled -- All data will be tunnelled as clear text and will not be protected against man-in-the-middle changes. PLEASE DO RECONSIDER THIS CONFIGURATION!
Tue Oct  919:12:242018 TUN/TAP device tun1 opened
Tue Oct  919:12:242018 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Tue Oct  919:12:242018 /sbin/ip link set dev tun1 up mtu 1500
Tue Oct  919:12:242018 /sbin/ip addr add dev tun1 local 10.9.8.1 peer 10.9.8.2
Tue Oct  919:12:242018 Could not determine IPv4/IPv6 protocol. Using AF_INET
Tue Oct  919:12:242018 UDPv4 link local (bound): [AF_INET][undef]:1194
Tue Oct  919:12:242018 UDPv4 link remote: [AF_UNSPEC]

Si intenta ver las interfaces de red en otra pestaña, encontrará que se ha agregado una nueva interfaz. La nueva interfaz (tun1) se muestra siempre que el túnel OpenVPN esté abierto.

$ ifconfig
tun1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.9.8.1  netmask 255.255.255.255  destination 10.9.8.2
        inet6 fe80::3cd2:9bd7:4b17:a740  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 288 (288.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Ejecute el siguiente comando para probar el cliente.

$ openvpn --remote SERVER_IP --dev tun1 --ifconfig 10.9.8.2 10.9.8.1
Tue Oct  922:40:052018 disabling NCP mode (--ncp-disable) because notin P2MP client or server mode
Tue Oct  922:40:052018 OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep  52018
Tue Oct  922:40:052018 library versions: OpenSSL 1.1.0g  2 Nov 2017, LZO 2.08
Tue Oct  922:40:052018 ******* WARNING *******: All encryption and authentication features disabled -- All data will be tunnelled as clear text and will not be protected against man-in-the-middle changes. PLEASE DO RECONSIDER THIS CONFIGURATION!
Tue Oct  922:40:052018 TUN/TAP device tun1 opened
Tue Oct  922:40:052018 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Tue Oct  922:40:052018 /sbin/ip link set dev tun1 up mtu 1500
Tue Oct  922:40:052018 /sbin/ip addr add dev tun1 local 10.9.8.2 peer 10.9.8.1
Tue Oct  922:40:052018 TCP/UDP: Preserving recently used remote address: [AF_INET]104.248.232.250:1194
Tue Oct  922:40:052018 UDP link local (bound): [AF_INET][undef]:1194
Tue Oct  922:40:052018 UDP link remote: [AF_INET]104.248.232.250:1194
Tue Oct  922:40:152018 Peer Connection Initiated with [AF_INET]104.248.232.250:1194
Tue Oct  922:40:162018 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Tue Oct  922:40:162018 Initialization Sequence Completed

Genera una clave estática

Utilice el siguiente comando en su servidor para generar una clave estática:

$ openvpn --genkey --secret static.key

Ahora obtenga el archivo a través de SFTP y cópielo en / etc / openvpn en su VPS cliente. Se recomienda encarecidamente que utilice un método seguro para transferir estos archivos .eg scp (Secure Dupdo).

Crea un nuevo archivo en el lado del servidor

$ vim /etc/openvpn/tun0.conf

Agrega el siguiente código

Dev tun0
Ifconfig 10.9.8.110.9.8.2
Secret /etc/openvpn/secret.key

Cree un nuevo archivo en el lado del cliente

$ vim /etc/openvpn/tun0.conf

Agrega el siguiente código:

Add the following code
Dev tun0
Ifconfig 10.9.8.210.9.8.1
Secret /etc/openvpn/secret.key

Ahora puede iniciar los servicios OpenVPN ejecutando el siguiente comando tanto en el servidor como en el cliente para ver el resultado:

$ openvpn --config /etc/openvpn/tun0.conf --verb 6

En este punto, debería poder hacer ping a la dirección IP 10.9.8.1 desde el VPS del cliente y a la dirección 10.9.8.2 desde el lado del servidor.

Conclusión

En este punto, hemos creado un VPS simple con claves secretas compartidas que se pueden usar para acceder a recursos a través de Internet. También puede echar un vistazo a la instalación y activación de OpenVPN Server.