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

Instale el servidor OpenVPN en Debian 11/Debian 10

En esta guía, aprenderemos cómo instalar OpenVPN Server en Debian 11/Debian 10.

Instalar servidor OpenVPN en Debian 11/Debian 10

Ejecutar actualización del sistema

actualización apt

Instalar OpenVPN en Debian 11/Debian 10

El paquete OpenVPN está disponible en los repositorios predeterminados de Debian 11/Debian 10.

instalación apt openvpn -y

Crear infraestructura de clave pública OpenVPN

Inicialice la PKI de OpenVPN. La PKI consta de:

  • una clave pública y una clave privada para el servidor y cada cliente
  • un certificado maestro de la autoridad de certificación (CA) y una clave que se utiliza para firmar cada uno de los certificados de servidor y cliente.

Por lo tanto, copie el directorio de configuración de easy-rsa en una ubicación diferente para asegurarse de que las futuras actualizaciones del paquete OpenVPN no sobrescriban sus modificaciones.

cp -r /usr/share/easy-rsa /etc/

A continuación, inicialice la PKI.

cd /etc/easy-rsa/
./easyrsa init-pki

Salida de comando de muestra;

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/easy-rsa/pki 

Cree el certificado y la clave de la autoridad certificadora (CA)

A continuación, genere el certificado de CA y la clave para firmar los certificados de servidor y cliente de OpenVPN.

cd /etc/easy-rsa/./easyrsa build-ca

Esto le pedirá la contraseña de la clave de CA y el nombre común del servidor.

Uso de SSL:openssl OpenSSL 1.1.1d 10 de septiembre de 2019Ingrese la nueva frase de contraseña de la clave de CA:vuelva a ingresar la nueva frase de contraseña de la clave de CA:genere la clave privada RSA, módulo de 2048 bits de longitud (2 números primos)........... ...................................+++++.......... .........................+++++e es 65537 (0x010001) No se puede cargar /etc/easy-rsa/pki/. rnd en RNG139670192284800:error:2406F079:generador de números aleatorios:RAND_load_file:No se puede abrir el archivo:../crypto/rand/randfile.c:98:Filename=/etc/easy-rsa/pki/.rndSe le pedirá que ingrese la información que se incorporará a su solicitud de certificado. Lo que está a punto de ingresar es lo que se denomina un nombre distinguido o un DN. Hay bastantes campos, pero puede dejar algunos en blanco. Para algunos campos habrá un valor predeterminado. ingrese '.', el campo se dejará en blanco.-----Nombre común (por ejemplo:su nombre de usuario, host o servidor) [Easy-RSA CA]:Kifarunix-demo CACA creación completa y ahora puede importar y firmar solicitudes de certificado. Su nuevo archivo de certificado de CA para publicación es un t:/etc/easy-rsa/pki/ca.crt

El certificado de CA se genera y almacena en /etc/easy-rsa/pki/ca.crt .

Generar parámetros Diffie Hellman

Genere claves Diffie-Hellman utilizadas para el intercambio de claves durante el protocolo de enlace TLS entre el servidor OpenVPN y los clientes que se conectan. Este comando se ha ejecutado dentro del directorio Easy-RSA;

./easyrsa gen-dh

Los parámetros DH de tamaño 2048 se crearán en /etc/easy-rsa/pki/dh.pem .

Generar certificado y clave de servidor OpenVPN

Para generar un certificado y una clave privada para el servidor OpenVPN, ejecute el siguiente comando;

cd /etc/easy-rsa
./easyrsa construir-servidor-servidor completo nopass

Ingrese la frase de contraseña de la clave de CA creada anteriormente para generar los certificados y las claves.

nopass deshabilita el uso de la frase de contraseña.

Salida de muestra;

Uso de SSL:openssl OpenSSL 1.1.1d 10 de septiembre de 2019Generación de una clave privada RSA................................. ...........++++++................................... .....+++++escribiendo una nueva clave privada en '/etc/easy-rsa/pki/private/server.key.MMFHTTtpKD'-----Usando la configuración desde /etc/easy-rsa/pki/ safessl-easyrsa.cnfIngrese la frase de contraseña para /etc/easy-rsa/pki/private/ca.key:Verifique que la solicitud coincida con la firma. certificado hasta el 10 de octubre 18:23:08 2024 GMT (1080 días) Escriba la base de datos con 1 nuevas entradas Base de datos actualizada

Generar clave de código de autenticación de mensajes basado en hash (HMAC)

La clave de autenticación precompartida TLS/SSL se utiliza como una firma HMAC adicional en todos los paquetes de protocolo de enlace SSL/TLS para evitar ataques DoS e inundaciones de puertos UDP. Esto se puede generar usando el comando;

openvpn --genkey secret /etc/easy-rsa/pki/ta.key

Generar certificado de revocación de OpenVPN

Para invalidar un certificado firmado anteriormente, debe generar un certificado de revocación.

Ejecute el script dentro del directorio Easy-RSA;

./easyrsa gen-crl

El certificado de revocación se genera y almacena en /etc/easy-rsa/pki/crl.pem .

Salida de muestra;

Uso de SSL:openssl OpenSSL 1.1.1d 10 de septiembre de 2019Uso de la configuración de /etc/easy-rsa/pki/safessl-easyrsa.cnfIngrese la frase de contraseña para /etc/easy-rsa/pki/private/ca.key :Se ha creado una CRL actualizada.Archivo CRL:/etc/easy-rsa/pki/crl.pem

Copiar certificados y claves del servidor en el directorio de configuración del servidor

Copie todos los certificados/claves de servidor generados en el directorio de configuración del servidor OpenVPN. etc/openvpn/servidor/

Generar certificados y claves de cliente de OpenVPN

Los certificados de clientes OpenVPN y las claves privadas se pueden generar de la siguiente manera

cd /etc/easy-rsa
./easyrsa build-client-full koromicha nopass
  • donde koromicha es el nombre del cliente para el que se generan el certificado y las claves.
  • Utilice siempre un nombre común único para cada cliente para el que genere certificados y claves.

Salida de comando de muestra;

Uso de SSL:openssl OpenSSL 1.1.1d 10 de septiembre de 2019Generación de una clave privada RSA..................+ ++++.................................................. .................................................... ...........................+++++escribiendo una nueva clave privada en '/etc/easy-rsa/pki/private/koromicha .key.saAaE6L0tX'-----Usando la configuración de /etc/easy-rsa/pki/safessl-easyrsa.cnfIngrese la frase de contraseña para /etc/easy-rsa/pki/private/ca.key:Verifique que la solicitud coincida la firma Firma ok El nombre distinguido del sujeto es el siguiente nombre común:ASN.1 12:'koromicha' El certificado se certificará hasta el 10 de octubre 18:25:37 2024 GMT (1080 días) Escriba la base de datos con 1 entrada nueva Base de datos actualizada

Para generar para el segundo cliente,

./easyrsa build-client-full janedoe nopass

Puedes ver cómo usar easyrsa comando con ./easyrsa --help .

Copiar certificados y claves del cliente en el directorio del cliente

Cree directorios de clientes OpenVPN. Por ejemplo, hemos generado certificados y archivos clave para dos clientes, koromicha y janedoe, por lo que creamos directorios como;

mkdir /etc/openvpn/client/{koromicha,janedoe}

Después de eso, copie los certificados/claves generados por el cliente y el certificado de CA del servidor en el directorio de configuración del cliente OpenVPN. Puedes

cp -rp /etc/easy-rsa/pki/{ca.crt,emitido/koromicha.crt,private/koromicha.key} /etc/openvpn/client/koromicha
cp -rp /etc/easy-rsa/pki/{ca.crt,emitido/janedoe.crt,private/janedoe.key} /etc/openvpn/client/janedoe/

Configurar servidor OpenVPN en Debian 11/Debian 10

El siguiente paso es configurar el servidor OpenVPN. Copie la configuración del servidor OpenVPN de muestra en /etc/openvpn/server directorio como se muestra a continuación;

En Debian 10;

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/

Extraiga la configuración.

cd /etc/openvpn/server/gunzip server.conf.gz

En Debian 11;

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server/ 

Modifique el archivo de configuración, server.conf , para satisfacer sus necesidades;

Así es como se ven nuestras configuraciones sin comentarios.

cp /etc/openvpn/server/server.conf{,.bak} 
cat> /etc/openvpn/server/server.conf <<'EOL'port 1194proto udpdev tunca ca.crtcert emitió/server.crtkey private/server.key # Este archivo debe mantenerse en secretodh dh.pemtopology subnetserver 10.8. 0.0 255.255.255.0ifconfig-pool-persist /var/log/openvpn/ipp.txtpush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 8.8.8.8"client- to-clientkeepalive 10 120tls-auth ta.key 0 # Este archivo es secretcipher AES-256-CBCcomp-lzopersist-keypersist-tunstatus /var/log/openvpn/openvpn-status.loglog-append /var/log/openvpn/openvpn. logverb 3explicit-exit-notify 1auth SHA512EOL

Guarde y salga de la configuración una vez que haya terminado de editar.

Configurar el reenvío de IP de OpenVPN

Para asegurarse de que el tráfico del cliente se enruta a través de la dirección IP del servidor OpenVPN (ayuda a enmascarar la dirección IP del cliente), debe habilitar el reenvío de IP en el servidor OpenVPN.

Quite el comentario de la línea, net.ipv4.ip_forward=1 , en /etc/sysctl.conf para habilitar el reenvío de paquetes para IPv4

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

Aplique los cambios sin reiniciar el servidor.

sysctl -p

Permitir puerto de servicio OpenVPN a través de firewall;

ufw permitir 1194/udp

Configurar enmascaramiento de IP en UFW

Encuentre su interfaz predeterminada a través de la cual se envían sus paquetes.

ruta ip obtener 8.8.8.8
8.8.8.8 a través de 10.0.2.2 desarrollador enp0s3 src 10.0.2.15 uid 0

A continuación, actualice las reglas de UFW;

vim /etc/ufw/before.rules

Agregue las siguientes líneas resaltadas justo antes del *filter ajustes de la mesa. Tenga en cuenta que la interfaz utilizada debe coincidir con el nombre de la interfaz anterior.

...
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/8 -o enp0s3 -j MASQUERADE
COMMIT
# Don't delete these required lines, otherwise there will be errors
*filter
... 

Guarde y salga de la configuración.

Habilitar el reenvío de paquetes UFW;

sed -i 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/' /etc/default/ufw

Recargar UFW;

recargar ufw

Ejecución del servidor OpenVPN en Debian 11/Debian 10

Inicie y habilite el servidor OpenVPN para que se ejecute en el arranque del sistema;

systemctl enable --now [email protected] 

Comprobando el estado;

systemctl status [email protected] 
[email protected]:servicio OpenVPN para el servidor Cargado:cargado (/lib/systemd/system/[email protected]; habilitado; valor preestablecido del proveedor:habilitado) Activo:activo (en ejecución) desde el martes 2021-10- 26 15:06:18 EDT; Hace 9 segundos Documentos:man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage https://community.openvpn.net/openvpn/wiki/HOWTO PID principal:1595 (openvpn) Estado:" Secuencia de inicialización completada" Tareas:1 (límite:2359) Memoria:2,4 M CGroup:/system.slice/system-openvpn\x2dserver.slice/[email protected] └─1595 /usr/sbin/openvpn --status /run /openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf 26 de octubre 15:06:18 debian systemd[1]:Iniciando el servicio OpenVPN para el servidor... 26 de octubre de 15 :06:18 debian systemd[1]:Se inició el servicio OpenVPN para el servidor.

Cuando se ejecuta el servicio OpenVPN, creará una interfaz de tunelización, tun0;

ip agregar s
...
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::bf6a:bdf4:58e1:ec24/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever 

Además, asegúrese de revisar los registros;

tail /var/log/openvpn/openvpn.log 
/sbin/ip link set dev tun0 up mtu 1500/sbin/ip addr add dev tun0 10.8.0.1/24 broadcast 10.8.0.255 No se pudo determinar el protocolo IPv4/IPv6. Uso de búfer AF_INETSocket:R=[212992->212992] S=[212992->212992]Enlace UDPv4 local (enlazado):[AF_INET][undef]:1194Enlace UDPv4 remoto:[AF_UNSPEC]MULTI:multi_init llamado, r=256 v =256 IFCONFIG POOL:base=10.8.0.2 size=252, ipv6=0IFCONFIG POOL LIST Secuencia de inicialización completada

El servidor OpenVPN ahora está listo para aceptar y enrutar conexiones de clientes.

Eso marca el final de nuestra guía sobre cómo instalar OpenVPN Server en Debian 11/Debian 10.

Ahora puede configurar sus clientes en consecuencia.

Tutoriales relacionados

Instale y configure el cliente OpenVPN en CentOS 8/Ubuntu 18.04

Configurar la autenticación basada en LDAP de OpenVPN

Configurar IPSEC VPN usando StrongSwan en Ubuntu 18.04

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

  2. Cómo instalar el servidor Redis en Debian 11

  3. Cómo instalar MySQL 8.0/5.7 en Debian 11/Debian 10

  4. Instale el servidor Wireguard en Debian 10/11

  5. Cómo instalar ProFTPD en Debian 8

Cómo instalar FastPanel en Debian 11

Instale un servidor Redis en Debian 11

Cómo instalar I2P en el servidor Debian:

Instale Firefox Sync Server en Debian 11

Cómo instalar OpenVPN en Debian 9 Stretch

Cómo instalar el servidor OpenVPN en Debian 11