GNU/Linux >> Tutoriales Linux >  >> Panels >> OpenVPN

Una forma más fácil de instalar y configurar el servidor OpenVPN en Linux

Esta guía describe cómo instalar y configurar el servidor OpenVPN en sistemas basados ​​en RPM y DEB. En esta guía, vamos a utilizar un script llamado openvpn-install que automatiza todo el proceso de instalación y configuración del servidor OpenVPN. Este script lo ayuda a configurar su propio servidor VPN en unos minutos, incluso si no ha usado OpenVPN antes.

Comencemos.

Instalar y configurar el servidor OpenVPN en Linux

Para el propósito de esta guía, usaré dos sistemas que se ejecutan con la edición CentOS 7 de 64 bits. Uno actúa como servidor OpenVPN, otro actúa como cliente openVPN. Los siguientes son los detalles de mis cajas de prueba.

Servidor OpenVPN:

  • SO :Edición mínima de CentOS 7 de 64 bits
  • PI :192.168.43.150/24
  • Nombre de host :vpnserver.ostechnix.local

Cliente OpenVPN:

  • SO  :Edición mínima de CentOS 7 de 64 bits
  • PI :192.168.43.199/24

Primero, veremos la configuración del lado del servidor.

Instalación y configuración del servidor OpenVPN

Descargue el script de instalación de openvpn desde su página de GitHub.

wget https://git.io/vpn -O openvpn-install.sh

Luego, ejecute el script usando el siguiente comando como usuario root:

bash openvpn-install.sh

Se le pedirá que responda una serie de preguntas. Respóndelas en consecuencia.

Asegúrese de que la dirección IP del servidor VPN sea correcta. Si usa varias direcciones IP, ingrese la IP de la interfaz de red que desea que escuche OpenVPN.

Welcome to this quick OpenVPN "road warrior" installer

I need to ask you a few questions before starting the setup
 You can leave the default options and just press enter if you are ok with them

First I need to know the IPv4 address of the network interface you want OpenVPN
 listening to.
 IP address: 192.168.43.150

Seleccione qué protocolo desea utilizar. Quiero usar el puerto tcp, por lo que seleccioné el número 2.

Which protocol do you want for OpenVPN connections?
 1) UDP (recommended)
 2) TCP
Protocol [1-2]: 2

Introduzca el número de puerto.

What port do you want OpenVPN listening to?
Port: 1194

Ingrese los detalles del servidor DNS que desea usar con la VPN. Quiero usar los solucionadores de DNS de Google, así que seleccioné la opción 2.

Which DNS do you want to use with the VPN?
 1) Current system resolvers
 2) Google
 3) OpenDNS
 4) NTT
 5) Hurricane Electric
 6) Verisign
DNS [1-6]: 2

Hemos llegado al paso final. Introduzca su nombre de certificado de cliente. El nombre debe ser una sola palabra y no debe contener ningún carácter especial.

Finally, tell me your name for the client certificate
Please, use one word only, no special characters
Client name: client

Presione la tecla ENTER para iniciar la instalación del servidor OPENVPN.

Okay, that was all I needed. We are ready to setup your OpenVPN server now
Press any key to continue...

Npw, este script comenzará a instalar todos los paquetes necesarios para configurar el servidor OpenVPN. Además, creará todas las claves y certificados necesarios para autenticarse con los clientes VPN. Esto llevará unos minutos.

Finalmente, el script le preguntará si tiene alguna dirección IP externa. Si no tiene ninguno, simplemente ignórelo dejándolo en blanco y presione la tecla ENTER.

If your server is NATed (e.g. LowEndSpirit), I need to know the external IP
If that's not the case, just ignore this and leave the next field blank
External IP: 

Finished!

Your client configuration is available at /root/client.ovpn
If you want to add more clients, you simply need to run this script again!

La instalación y configuración del servidor OpenVPN está completa. Como puede ver en el último resultado, los detalles de configuración del cliente se almacenan en un archivo /root/client.ovpn . Debe copiar este archivo en todos sus sistemas cliente de VPN.

Copié el archivo client.ovpn a mi cliente VPN

scp client.ovpn [email protected]:/etc/openvpn/

A continuación, debemos configurar el cliente OpenVPN.

Descargar - Video gratuito:"Curso de capacitación en metodologías de pruebas de penetración (¡un valor de $ 99!) GRATIS"

Configuración del cliente OpenVPN

Asegúrese de haber copiado el archivo client.ovpn de su sistema de servidor VPN. Ya copié este archivo en el directorio /etc/openvpn/ de mi sistema de cliente VPN.

Instale el paquete OpenVPN utilizando el administrador de paquetes de distribución.

yum install openvpn

A continuación, ejecute el siguiente comando para establecer una conexión segura con el servidor VPN.

openvpn --config /etc/openvpn/client.ovpn

Salida de muestra:

Wed Apr 5 18:50:44 2017 Unrecognized option or missing parameter(s) in /etc/openvpn/client.ovpn:14: block-outside-dns (2.3.14)
Wed Apr 5 18:50:44 2017 OpenVPN 2.3.14 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Dec 7 2016
Wed Apr 5 18:50:44 2017 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013, LZO 2.06
Wed Apr 5 18:50:44 2017 Control Channel Authentication: tls-auth using INLINE static key file
Wed Apr 5 18:50:44 2017 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:44 2017 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:44 2017 Socket Buffers: R=[87380->87380] S=[16384->16384]
Wed Apr 5 18:50:44 2017 Attempting to establish TCP connection with [AF_INET]192.168.43.150:1194 [nonblock]
Wed Apr 5 18:50:45 2017 TCP connection established with [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:45 2017 TCPv4_CLIENT link local: [undef]
Wed Apr 5 18:50:45 2017 TCPv4_CLIENT link remote: [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:45 2017 TLS: Initial packet from [AF_INET]192.168.43.150:1194, sid=c6fb554e 362eb192
Wed Apr 5 18:50:45 2017 VERIFY OK: depth=1, CN=ChangeMe
Wed Apr 5 18:50:45 2017 Validating certificate key usage
Wed Apr 5 18:50:45 2017 ++ Certificate has key usage 00a0, expects 00a0
Wed Apr 5 18:50:45 2017 VERIFY KU OK
Wed Apr 5 18:50:45 2017 Validating certificate extended key usage
Wed Apr 5 18:50:45 2017 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Wed Apr 5 18:50:45 2017 VERIFY EKU OK
Wed Apr 5 18:50:45 2017 VERIFY OK: depth=0, CN=server
Wed Apr 5 18:50:45 2017 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Wed Apr 5 18:50:45 2017 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:45 2017 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Wed Apr 5 18:50:45 2017 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:45 2017 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Wed Apr 5 18:50:45 2017 [server] Peer Connection Initiated with [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:48 2017 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Wed Apr 5 18:50:48 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4,route-gateway 10.8.0.1,topology subnet,ping 10,ping-restart 120,ifconfig 10.8.0.2 255.255.255.0'
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: timers and/or timeouts modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: --ifconfig/up options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: route options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: route-related options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed Apr 5 18:50:48 2017 ROUTE_GATEWAY 192.168.43.1/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:28:98:6b
Wed Apr 5 18:50:48 2017 TUN/TAP device tun0 opened
Wed Apr 5 18:50:48 2017 TUN/TAP TX queue length set to 100
Wed Apr 5 18:50:48 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Apr 5 18:50:48 2017 /usr/sbin/ip link set dev tun0 up mtu 1500
Wed Apr 5 18:50:48 2017 /usr/sbin/ip addr add dev tun0 10.8.0.2/24 broadcast 10.8.0.255
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 192.168.43.150/32 dev enp0s3
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 0.0.0.0/1 via 10.8.0.1
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 128.0.0.0/1 via 10.8.0.1
Wed Apr 5 18:50:48 2017 Initialization Sequence Completed

Ahora, comprueba si tun0 (interfaz VPN) y verifique la dirección IP de la interfaz VPN usando el comando 'ip addr':

ip addr

Salida de muestra:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host 
 valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 08:00:27:28:98:6b brd ff:ff:ff:ff:ff:ff
 inet 192.168.43.199/24 brd 192.168.43.255 scope global dynamic enp0s3
 valid_lft 42359sec preferred_lft 42359sec
 inet6 fe80::a00:27ff:fe28:986b/64 scope link 
 valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
 link/none 
 inet 10.8.0.2/24 brd 10.8.0.255 scope global tun0
 valid_lft forever preferred_lft forever

Como puede ver en el resultado anterior, nuestro servidor VPN asignó automáticamente una dirección IP 10.8.0.2 al cliente VPN.

Ahora, intente hacer ping al servidor VPN desde su sistema cliente VPN:

ping -c3 10.8.0.1

Salida de muestra:

PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=1.05 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=1.94 ms
64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=2.49 ms

--- 10.8.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 1.057/1.832/2.495/0.594 ms

¡Felicidades! Ahora hemos instalado y configurado con éxito el servidor y el cliente OpenVPN en CentOS. Este método es el mismo para sistemas basados ​​en DEB como Ubuntu y Linux Mint. A diferencia de la instalación manual, este script facilita mucho la instalación y configuración de openvpn.

¡Salud!


OpenVPN
  1. Configura tu servidor OpenVPN en Linux

  2. Instale OpenVPN en su PC con Linux

  3. Cómo instalar y configurar OpenVPN Server en Debian 10

  4. Instalar y configurar el cliente OpenVPN en Rocky Linux 8

  5. Cómo instalar y configurar el servidor y el cliente NTP de Linux

Cómo instalar y configurar un servidor OpenVPN en Ubuntu 22.04

Cómo instalar y configurar el servidor OpenVPN en CentOS 8/7

Cómo instalar y configurar un servidor NFS en un sistema Linux

Cómo instalar y configurar el servidor Apache SVN en el escritorio de Linux

4 sencillos pasos para instalar y configurar VMware Server 2 en Linux

Cómo instalar y configurar el servidor DNS en Linux