Cómo instalar OpenVPN en AlmaLinux 8, Centos 8 o Rocky Linux 8

Una “red privada virtual” de VPN es una red privada que oculta la identidad, el origen y los datos del usuario mediante cifrado. Su uso principal es la privacidad de los datos del usuario y la conexión segura a Internet. Como oculta datos, le permite acceder a datos que normalmente están bloqueados por restricciones geográficas.

OpenVPN es un software VPN de código abierto que es tanto un software como un protocolo en sí mismo. Es muy apreciado ya que sigue eludiendo los cortafuegos.

Este tutorial le mostrará paso a paso cómo instalar y configurar un servidor OpenVPN y conectarlo al cliente OpenVPN. Usaremos un servidor CentOS 8 para la instalación, el mismo procedimiento funcionará en Rocky Linux 8 y AlmaLinux 8 también.

Prerrequisitos

Acceso a la terminal

Una cuenta de usuario con sudo privilegios.

Nota: Los comandos de este tutorial se realizan en CentOS 8. Todos los métodos del tutorial también son válidos para CentOS 7.

Actualizar y actualizar el sistema

Asegúrese de que su sistema esté actualizado actualizando y actualizando su sistema ejecutando el siguiente comando.

sudo dnf update && sudo dnf upgrade

Desactivar SELinux

A continuación, debe deshabilitar SELinux, ya que entra en conflicto con OpenVPN y evita que se inicie.

Para deshabilitar SELinux, abra el archivo de configuración de SELinux usando el siguiente comando.

sudo nano /etc/selinux/config

Una vez que se abre el archivo con el editor nano. Busque SELinux y cambie su valor a disabled o simplemente reemplácelo con la siguiente línea de código.

SELINUX=disabled

Presione Ctrl + O y luego Ctrl + X para guardar y salir del archivo.

Habilitar el reenvío de IP

Ahora, debe habilitar el reenvío de IP para que los paquetes entrantes se puedan reenviar a diferentes redes.

Para habilitar el reenvío de IP, abra el archivo de configuración sysctl con el editor nano.

sudo nano /etc/sysctl.conf

Agregue el siguiente código al archivo.

net.ipv4.ip_forward = 1

Presione Ctrl + O y luego Ctrl + X.

Instalar el servidor OpenVPN

Asegúrese de instalar el paquete epel-release.

sudo dnf install epel-release -y

Ahora, puede instalar OpenVPN usando el siguiente comando.

sudo dnf install openvpn -y

Ahora que OpenVPN está instalado. Navegue a su carpeta de instalación y descargue easy-rsa. Easy-RSA crea y administra autoridades de certificación (CA).

cd /etc/openvpn
sudo wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz

Extraiga el archivo zip descargado.

sudo tar -xvzf EasyRSA-unix-v3.0.6.tgz

Y mueva el archivo EasyRSA a su carpeta.

sudo mv EasyRSA-v3.0.6 easy-rsa

Configurar Easy-RSA

A continuación, debemos agregar y crear un certificado SSL. Para hacer eso, primero, navegue hasta el directorio easy-rsa.

cd /etc/openvpn/easy-rsa

Para abrir el archivo vars en el editor nano, ejecute el siguiente comando.

sudo nano vars

Ahora copie y pegue las siguientes líneas de código en el archivo vars.

set_var EASYRSA "$PWD"
set_var EASYRSA_PKI "$EASYRSA/pki"
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "USA"
set_var EASYRSA_REQ_PROVINCE "Newyork"
set_var EASYRSA_REQ_CITY "Newyork"
set_var EASYRSA_REQ_ORG "osradar CERTIFICATE AUTHORITY"
set_var EASYRSA_REQ_EMAIL ""
set_var EASYRSA_REQ_OU "osradar EASY CA"
set_var EASYRSA_KEY_SIZE 2048
set_var EASYRSA_ALGO rsa
set_var EASYRSA_CA_EXPIRE 7500
set_var EASYRSA_CERT_EXPIRE 365
set_var EASYRSA_NS_SUPPORT "no"
set_var EASYRSA_NS_COMMENT "osradar CERTIFICATE AUTHORITY"
set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.cnf"
set_var EASYRSA_DIGEST "sha256"

Puede cambiar el valor del país, la ciudad, la provincia y el correo electrónico según sus requisitos.

Presione Ctrl + O y luego Ctrl + X.

Ahora, inicie el directorio PKI con el siguiente comando.

./easyrsa init-pki

Finalmente, puede crear su certificado CA.

sudo ./easyrsa build-ca

Generar archivos de certificado de servidor

Utilice el siguiente comando para obtener su par de claves y su solicitud de certificado.

sudo ./easyrsa gen-req vitux-server nopass

Firme la clave del servidor con CA

Para firmar su clave de servidor con la CA, ejecute el siguiente comando.

sudo ./easyrsa sign-req server vitux-server

Necesitamos la clave Diffie-Hellman para intercambiar claves. Genere la clave ejecutando el siguiente comando.

sudo ./easyrsa gen-dh

A continuación, copie todos estos archivos al / etc / openvpn / server / directorio.

cp pki/ca.crt /etc/openvpn/server/
cp pki/dh.pem /etc/openvpn/server/
cp pki/private/vitux-server.key /etc/openvpn/server/
cp pki/issued/vitux-server.crt /etc/openvpn/server/

Generar certificado y clave de cliente

Puede obtener la clave del cliente ejecutando el siguiente comando.

sudo ./easyrsa gen-req client nopass

A continuación, firme su clave de cliente con el certificado CA generado.

sudo ./easyrsa sign-req client client

Copie estos archivos en el / etc / openvpn / client / directorio

cp pki/ca.crt /etc/openvpn/client/
cp pki/issued/client.crt /etc/openvpn/client/
cp pki/private/client.key /etc/openvpn/client/

Configurar el servidor OpenVPN

Cree y abra un nuevo archivo de configuración en el directorio del cliente con el siguiente comando.

sudo nano /etc/openvpn/server/server.conf

Luego agregue las siguientes líneas de código en el archivo.

port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/vitux-server.crt
key /etc/openvpn/server/vitux-server.key
dh /etc/openvpn/server/dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
duplicate-cn
cipher AES-256-CBC
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
auth SHA512
auth-nocache
keepalive 20 60
persist-key
persist-tun
compress lz4
daemon
user nobody
group nobody
log-append /var/log/openvpn.log
verb 3

Presione Ctrl + O y Ctrl + X.

Iniciar y habilitar el servicio OpenVPN

Su OpenVPN está listo para lanzarse. Inicie y habilite el servidor usando los siguientes comandos.

sudo systemctl start [email protected]
sudo systemctl enable [email protected]

Puede ver y verificar el estado activo con el siguiente comando.

systemctl status [email protected]

Se creará una nueva interfaz de red en el inicio exitoso del servidor OpenVPN. Ejecute el siguiente comando para ver los detalles.

ifconfig

Genere el archivo de configuración del cliente

El siguiente paso es conectar el cliente al servidor OpenVPN. Necesitamos el archivo de configuración del cliente para eso. Para generar el archivo de configuración del cliente, ejecute el siguiente comando.

sudo nano /etc/openvpn/client/client.ovpn

Ahora, copie y pegue el siguiente código en el archivo.

client
dev tun
proto udp
remote vpn-server-ip 1194
ca ca.crt
cert client.crt
key client.key
cipher AES-256-CBC
auth SHA512
auth-nocache
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
resolv-retry infinite
compress lz4
nobind
persist-key
persist-tun
mute-replay-warnings
verb 3

Presione Ctrl + O para guardar los cambios y presione Ctrl + X para salir del editor.

Configurar el enrutamiento

Establezca la configuración del servicio OpenVPN con los siguientes comandos para permitirle atravesar el firewall.

firewall-cmd --permanent --add-service=openvpn
firewall-cmd --permanent --zone=trusted --add-service=openvpn
firewall-cmd --permanent --zone=trusted --add-interface=tun0

firewall-cmd --add-masquerade
firewall-cmd --permanent --add-masquerade

Configure el enrutamiento para reenviar el tráfico entrante desde la VPN a la red local.

routecnf=$(ip route get 8.8.8.8 | awk 'NR==1 {print $(NF-2)}')
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $routecnf -j MASQUERADE

Vuelva a cargar para que los cambios sean efectivos.

firewall-cmd --reload

Instalar y usar OpenVPN en la máquina cliente

Debe instalar epel-release y OpenVPN como lo hizo en el lado del servidor.

dnf install epel-release -y
dnf install openvpn -y

Ahora copie los archivos de configuración del cliente desde el servidor usando el comando que se proporciona a continuación.

sudo scp -r [email protected]:/etc/openvpn/client .

Vaya al directorio del cliente y conéctese al servidor OpenVPN usando los siguientes comandos.

cd client
openvpn --config client.ovpn

Ejecute ifconfig para ver la dirección IP asignada.

ifconfig tun0