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.