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

Asigne direcciones IP estáticas para clientes OpenVPN

En esta guía, vamos a aprender cómo asignar direcciones IP estáticas para clientes OpenVPN. En la mayoría de los casos, por ejemplo, si tiene algunos controles en su entorno que requieren que los hosts tengan una dirección IP estática para poder administrar dichos controles, lo más probable es que necesite asignar una dirección IP estática a sus clientes específicos. OpenVPN admite la asignación de direcciones IP estáticas.

Asignar direcciones IP estáticas para clientes OpenVPN

OpenVPN tiene la capacidad de asignar a los clientes direcciones IP específicas del conjunto de IP definido. Para lograr esto, utiliza tres tipos de algoritmos de selección de direcciones IP de clientes. Estos incluyen, en el orden en que se usan;

  1. Uso de --client-connect script . Esto implica la ejecución del script especificado que genera un archivo que contiene direcciones IP estáticas en el servidor cuando se conecta un cliente. Este método suele ser la primera opción para ser considerado.
  2. Uso de --client-config-dir . Esto implica el uso de un archivo que contiene direcciones IP estáticas para los clientes según su nombre común de certificado de cliente (CN) (segunda opción ).
  3. Uso de --ifconfig-pool para la asignación de IP dinámica (última elección ).

Para obtener más información, consulte man openvpn .

En esta guía, vamos a utilizar la segunda opción, mediante la cual configuraremos nuestro servidor OpenVPN para leer un archivo específico, que contiene los nombres comunes de los clientes y las direcciones IP asignadas. Esto garantiza que a un cliente que se conecta se le asigne una dirección IP estática en función del nombre común definido en su certificado de cliente.

En nuestra guía anterior, cubrimos la instalación y configuración de un servidor OpenVPN en el sistema CentOS 8.

Cree un archivo para almacenar direcciones IP estáticas

El uso de client-config-dir opción, requiere que las direcciones IP estáticas que se asignarán a los clientes que se conectan se almacenen en un archivo que pueda ser leído por el servidor OpenVPN.

Por lo tanto, abra el archivo de configuración del servidor OpenVPN, /etc/openvpn/server/server.conf y configure su ruta al archivo de asignación de IP estática como el valor para client-config-dir parámetro.

vim /etc/openvpn/server/server.conf
...
# EXAMPLE: Suppose you want to give
# Thelonious a fixed VPN IP address of 10.9.0.1.
# First uncomment out these lines:
client-config-dir /etc/openvpn/ccd
...

En esta demostración, configuramos la ruta para almacenar el archivo de asignación de direcciones IP fijas/estáticas, /etc/openvpn/ccd . Bueno, traté de usar la ruta predeterminada, /etc/openvpn/server/ccd, pero resultó en el siguiente error:

Could not access file 'ccd/koromicha': Permission denied (errno=13)
Could not access file 'ccd/DEFAULT': Permission denied (errno=13)

Entonces, como solución alternativa, optamos por usar una ruta diferente, como se muestra arriba.

Asignar direcciones IP estáticas a clientes OpenVPN

Para cada cliente OpenVPN al que desee asignar una dirección IP estática, debe extraer el nombre común de ese certificado de cliente específico.

En nuestra demostración, tenemos dos clientes OpenVPN creados, koromicha y johndoe . Para extraer los nombres comunes del certificado del cliente, use openssl comando como se muestra a continuación. Asegúrese de reemplazar los certificados de los clientes .

openssl x509 -subject -noout -in /etc/openvpn/client/koromicha/koromicha.crt
subject=CN = koromicha
openssl x509 -subject -noout -in /etc/openvpn/client/johndoe/johndoe.crt
subject=CN = johndoe

Una vez que tenga los nombres comunes para los clientes, puede asignarles direcciones IP estáticas usando ifconfig-push opción. Por ejemplo, para asignar el cliente usando el certificado con koromicha como nombre común una dirección IP, 10.8.0.50 y el cliente usando el certificado con johndoe como CN y direcciones IP de 10.8.0.60 , así es como se hace la asignación;

echo "ifconfig-push 10.8.0.50 255.255.255.0" > /etc/openvpn/ccd/koromicha
echo "ifconfig-push 10.8.0.60 255.255.255.0" > /etc/openvpn/ccd/johndoe

Tenga en cuenta que la forma en que asigna las direcciones IP estáticas depende de la topología que configuró en su servidor OpenVPN. En nuestro caso, configuramos la topología en subred;

# Network topology
...
topology subnet

Obtenga más información sobre los conceptos de direccionamiento de OpenVPN.

Reinicie el servidor OpenVPN;

systemctl restart [email protected]

Asegúrese de comprobar siempre los registros;

tail -f /var/log/openvpn/openvpn.log

Verificar la asignación de direcciones IP estáticas en clientes OpenVPN

Suponiendo que ya tiene el archivo de configuración OpenVPN del cliente respectivo en sus clientes, inicie la conexión y verifique la asignación de la dirección IP.

sudo openvpn johndoe.ovpn

Comprobando la dirección IP asignada;

ip add show tun0
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.60/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::ea62:fbae:5b45:2d78/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

En el otro cliente;

ip add show tun0
12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.50/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::c928:c76d:fbd4:6c6a/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

Comprobando la conectividad entre los dos clientes;

ping 10.8.0.60 -c 3
PING 10.8.0.60 (10.8.0.60) 56(84) bytes of data.
64 bytes from 10.8.0.60: icmp_seq=1 ttl=64 time=4.67 ms
64 bytes from 10.8.0.60: icmp_seq=2 ttl=64 time=3.86 ms
64 bytes from 10.8.0.60: icmp_seq=3 ttl=64 time=4.05 ms

--- 10.8.0.60 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 3.864/4.196/4.670/0.351 ms

Eso es. Hemos llegado al final de nuestra guía sobre cómo asignar direcciones IP estáticas para clientes OpenVPN.

Tutoriales relacionados

Conéctese a OpenVPN usando Network Manager en CentOS 8/Ubuntu 18.04

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

Configure el cliente VPN strongSwan en Ubuntu 18.04/CentOS 8

OpenVPN
  1. CLIENTE OPENVPN Para Windows y Linux

  2. Configurar clientes OpenVPN para usar un servidor DNS específico

  3. Los 5 principales clientes de Google Drive para Linux

  4. Los 7 mejores clientes de BitTorrent para Linux en 2021

  5. ¿Cómo asignar nombre a una pantalla?

PiVPN:instalación y configuración de OpenVPN más simple, diseñada para Raspberry Pi

Configuraciones de direcciones IP estáticas y dinámicas para DHCP

Cómo asignar una dirección IP estática en Ubuntu Linux

Creación de certificados y claves para su servidor OpenVPN

¿Cómo asignar una dirección IP dedicada para un sitio web en Plesk?

Dirección IP estática con NetworkManager para Fedora