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
- Un servidor Linux (Ubuntu, CentOS, etc.) para instalar OpenVPN.
- Un Windows Server con Active Directory configurado.
- Acceso administrativo a ambos servidores.
- 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
- Configurar Easy-RSA
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
- Editar
vars
Edita el archivovars
en el directorioopenvpn-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"
- 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
- 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/
- Crear archivo de configuración del servidor
sudo nano /etc/openvpn/server.conf
Contenido básico deserver.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
- Instalar el plugin LDAP
sudo apt-get install openvpn-auth-ldap
- 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
- Crear archivo de configuración del cliente
nano ~/client.ovpn
Contenido básico declient.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
- Iniciar OpenVPN
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
- Verificar el estado
sudo systemctl status openvpn@server
Paso 6: Probar la conexión del cliente
- Transferir el archivo
client.ovpn
al cliente y probar la conexión.sudo openvpn --config client.ovpn
- 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.