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

Artículos Guías Manuales Sistemas Linux Windows Binario 0

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

sudo apt-get update
sudo apt-get install openvpn easy-rsa

CentOS

sudo yum install epel-release
sudo 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 protected]"
    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.