# Configurar un servidor OpenVPN y autenticar contra un Active Directory (AD) de Windows Server

- Link: https://binariocero.com/linux/configurar-un-servidor-openvpn-y-autenticar-contra-un-active-directory-ad-de-windows-server
- Published: 2024-05-28T09:45:20+02:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

Configurar un servidor OpenVPN que use el mismo certificado para todos los usuarios
y autenticar contra un Active Directory (AD) de Windows Server implica varios pasos.
Aquí te dejo una guía paso a paso para lograrlo:

### Prerrequisitos

 1. Un servidor Linux (Ubuntu, CentOS, etc.) para instalar OpenVPN.
 2. Un Windows Server con Active Directory configurado.
 3. Acceso administrativo a ambos servidores.
 4. Conocimiento básico de la terminal y configuraciones de red.

### Paso 1: Instalar OpenVPN en el servidor Linux

#### Ubuntu

    ```wp-block-preformatted
    sudo apt-get updatesudo apt-get install openvpn easy-rsa
    ```

#### CentOS

    ```wp-block-preformatted
    sudo yum install epel-releasesudo yum install openvpn easy-rsa
    ```

### Paso 2: Configurar Easy-RSA para generar los certificados

 1. **Configurar Easy-RSA**
    `make-cadir ~/openvpn-ca ``cd ~/openvpn-ca`
 2. **Editar `vars`**
    Edita el archivo `vars` en el directorio `openvpn-ca` para establecer
    los parámetros de tu CA.`nano vars `Cambia las siguientes líneas según tus necesidades:`
    set_var EASYRSA_REQ_COUNTRY "US" ``set_var EASYRSA_REQ_PROVINCE "California" ``
    set_var EASYRSA_REQ_CITY "San Francisco" ``set_var EASYRSA_REQ_ORG "MyOrg" ``set_var
    EASYRSA_REQ_EMAIL "email@example.com" ``set_var EASYRSA_REQ_OU "MyOrgUnit"`
 3. **Construir la CA y generar certificados**
    `./easyrsa init-pki ``./easyrsa build-
    ca nopass ``./easyrsa gen-req server nopass ``./easyrsa sign-req server server ``./
    easyrsa gen-dh openvpn --genkey --secret ta.key ``./easyrsa build-client-full client1
    nopass`

### Paso 3: Configurar el servidor OpenVPN

 1. **Copiar archivos necesarios**
    `cd ~/openvpn-ca/pki ``sudo cp ca.crt issued/server.
    crt private/server.key /etc/openvpn/ ``sudo cp dh.pem /etc/openvpn/ ``sudo cp ta.
    key /etc/openvpn/`
 2. **Crear archivo de configuración del servidor**
    `sudo nano /etc/openvpn/server.
    conf `Contenido básico de `server.conf`:`port 1194 ``proto udp ``dev tun ``ca ca.
    crt ``cert server.crt ``key server.key ``dh dh.pem ``server 10.8.0.0 255.255.255.0``
    ifconfig-pool-persist ``ipp.txt ``push "redirect-gateway def1 bypass-dhcp" ``push"
    dhcp-option DNS 8.8.8.8" ``push "dhcp-option DNS 8.8.4.4" ``keepalive 10 120 ``
    tls-auth ta.key 0 ``cipher AES-256-CBC ``user nobody ``group nogroup ``persist-
    key ``persist-tun ``status openvpn-status.log ``log-append /var/log/openvpn.log``
    verb 3 ``plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth/ldap.conf`
 3. **Instalar el plugin LDAP**
    `sudo apt-get install openvpn-auth-ldap`
 4. **Configurar LDAP**
    Crea el archivo `/etc/openvpn/auth/ldap.conf`:`<LDAP> URL ldap://
    your-ldap-server ``BindDN "CN=binduser,OU=users,DC=example,DC=com" ``Password "
    bindpassword" ``Timeout 15 TLSEnable yes ``TLSCACertFile /etc/ssl/certs/ca-certificates.
    crt ``FollowReferrals yes ``DerefAliases yes ``</LDAP> ``<Authorization> ``BaseDN"
    OU=users,DC=example,DC=com" ``SearchFilter "(sAMAccountName=%u)" ``RequireGroup
    false ``</Authorization>`

### Paso 4: Configurar el cliente OpenVPN

 1. **Crear archivo de configuración del cliente**
    `nano ~/client.ovpn `Contenido básico
    de `client.ovpn`:`client ``dev tun ``proto udp ``remote your-server-ip 1194 ``resolv-
    retry infinite ``nobind ``persist-key ``persist-tun ``remote-cert-tls server ``
    tls-auth ta.key 1 ``cipher AES-256-CBC ``verb 3 ``auth-user-pass ``<ca> ``-----
    BEGIN CERTIFICATE----- ``# Certificado CA ``-----END CERTIFICATE----- ``</ca>`

### Paso 5: Iniciar y habilitar OpenVPN

 1. **Iniciar OpenVPN**
    `sudo systemctl start openvpn@server ``sudo systemctl enable
    openvpn@server`
 2. **Verificar el estado**
    `sudo systemctl status openvpn@server`

### Paso 6: Probar la conexión del cliente

 1. **Transferir el archivo `client.ovpn` al cliente y probar la conexión**.
    `sudo 
    openvpn --config client.ovpn`
 2. **Autenticarse con las credenciales de Active Directory**.

### Notas adicionales

 * Asegúrate de que los puertos necesarios estén abiertos en el firewall.
 * Verifica que el servidor LDAP y el servidor OpenVPN puedan comunicarse.
 * Puedes ajustar configuraciones adicionales según tus necesidades específicas 
   de seguridad y rendimiento.

Con estos pasos, deberías tener un servidor OpenVPN configurado para autenticar 
usuarios contra un Active Directory de Windows Server usando el mismo certificado
para todos los usuarios.
