Cuando implementamos herramientas críticas como ADSelfService Plus de ManageEngine, la seguridad de la infraestructura debe ser la máxima prioridad. Exponer el servidor de ADSelfService directamente a internet no es una buena práctica de seguridad, ya que aumenta significativamente la superficie de ataque hacia nuestra red interna.
La mejor manera de protegerlo es colocando un Proxy Inverso (Reverse Proxy) dentro de una zona desmilitarizada (DMZ). De esta manera, el tráfico de internet llega primero al proxy aislado, y nuestro firewall solo permite que este proxy se comunique específicamente con el servidor interno de ADSelfService a través del puerto requerido. Esto crea una barrera protectora esencial.
Esta guía está basada en la documentación oficial de ManageEngine. Sin embargo, en la práctica, dicha guía oficial está incompleta. A la hora de implementarlo, faltan detalles críticos sobre la configuración de los certificados SSL y el archivo de hosts, especialmente cuando el proxy está totalmente aislado en la DMZ sin acceso a los servidores DNS internos de nuestra red. A continuación, veremos paso a paso cómo configurarlo correctamente para un entorno de producción real.
Arquitectura Recomendada
Como mencioné, el objetivo es colocar el servidor proxy inverso de AD360 en la DMZ, manteniendo el servidor principal de ADSelfService Plus protegido en la red interna.

Paso 1: Descarga e Instalación de AD360
1. Descarga el Instalador
Ve a la página oficial, descarga el instalador de ManageEngine AD360 e inícialo.

2. Clic en Siguiente
Haz clic en Siguiente.

3. Acepta el EULA
Acepta el acuerdo de licencia (EULA).

4. Instalación Mínima
¡Atención aquí! Selecciona Minimal Installation. Como este servidor estará en la DMZ, solo queremos tener activo el componente de proxy y descartar todos los demás servicios que incluye AD360. Esto no solo ahorra recursos de hardware, sino que también minimiza drásticamente la superficie de ataque al no correr servicios innecesarios en una red expuesta.

5. Carpeta de Instalación
Selecciona la carpeta de instalación.

6. Registro de Soporte
(Opcional) Ingresa tus datos para soporte técnico.

7. Continuar Instalación
Continúa con la instalación.

8. Esperar a Finalizar
Espera a que el proceso termine.

9. Finalizar Instalación
Finaliza la instalación.

Paso 2: Configuración Inicial de AD360
1. Iniciar Sesión en AD360
Una vez instalado, abre la consola de AD360 iniciando sesión como administrador en: http://127.0.0.1:8445

2. Integrar ADSelfService Plus
Navega al menú Admin > AD360 Integration para integrar ADSelfService Plus.
En este punto, debes ingresar el nombre del servidor. Ojo: Es fundamental usar exactamente la misma URL de acceso que los usuarios usarán para resolver la página (por ejemplo, adselfservice.tudominio.com). Si ingresas una IP u otro nombre interno, se generarán conflictos más adelante. Al terminar de llenar los datos, haz clic en Integrate Now.

El campo de Server Name es sumamente delicado. Si usas una dirección IP en lugar del FQDN público, romperás integraciones de seguridad avanzadas. Por ejemplo, con Duo Security, te enfrentarás al siguiente error si entras por IP:
Invalid Access URL: You have accessed the ADSelfService Plus portal using IP address, which is prohibited for enrollment into Duo. Please log into ADSelfService Plus using the URL given by your administrator and try again.
Paso 3: Configurar el Reverse Proxy
1. Configuración de Proxy
Navega a Admin > Administration > Reverse Proxy.

2. Enfoque Port-Based
En las configuraciones, asegúrate de utilizar el enfoque Port-Based (Basado en puerto) en lugar de Context-Based.
El modo Context-Based agregaría un subdirectorio a la URL (ej. https://adselfservice.tudominio.com/context), lo cual puede ser confuso para los usuarios. Al usar un proxy aislado en la DMZ y dedicado únicamente a este servicio, el modo Port-Based nos permite servir la aplicación directamente en la raíz (/).

3. Protocolo y Puerto
Define el protocolo (HTTPS) y el puerto.
Es altamente recomendable usar el mismo puerto en ambos lados. Si tu ADSelfService corre en el 443, tu Access URL en el proxy también debe ser 443. Esto evita desajustes en la aplicación móvil de ManageEngine y exime a los usuarios de tener que teclear puertos extraños en el navegador.

4. Guardar Cambios
Guarda los cambios.
Paso 4: El Archivo de Hosts (El detalle que omite la guía oficial)
Este es el paso clave cuando tu servidor DMZ está totalmente aislado.
Al estar en la DMZ, fuera del dominio y sin acceso a los controladores de dominio internos, el servidor proxy será incapaz de resolver por DNS el nombre adselfservice.tudominio.com. Si no puede resolverlo, no sabrá a dónde enviar el tráfico.
Para solucionarlo, recurrimos al confiable archivo hosts.
1. Editar Archivo Hosts
Abre el bloc de notas como administrador y edita el archivo en C:\Windows\System32\drivers\etc\hosts.
2. Hardcodear IP Interna
Escribe de forma “hardcodeada” la IP interna del servidor ADSelfService real apuntando al dominio público.

De esta forma forzamos al proxy a enrutar el tráfico correctamente.
Paso 5: Aplicar el Certificado SSL
Otro punto vital: si no aplicas el certificado SSL en el proxy, todas las peticiones externas devolverán errores de seguridad en el navegador.
1. Herramienta de Certificación SSL
Ve a Admin > General Settings > SSL Certification Tool.
2. Aplicar Certificado
Aplica tu certificado (CRT y Key, o PFX) para que se aplique tanto en AD360 como en el proxy hacia ADSelfService Plus.

Paso 6: Configurar server.xml en ADSelfService
Finalmente, necesitamos que ADSelfService conozca la IP real del usuario (y no la IP del Proxy) para que los logs de auditoría sirvan para troubleshooting.
Para añadir la IP del proxy inverso a la configuración:
1. Ubicar Carpeta Conf
Ve al servidor principal de ADSelfService y abre la carpeta conf (ruta por defecto: C:\Program Files\ManageEngine\ADSelfService Plus\conf).
2. Abrir server.xml
Abre el archivo server.xml con un editor de texto.
3. Buscar Sección Comentada
Busca la siguiente sección que estará comentada:
<!--Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="x-forwarded-for" proxiesHeader="x-forwarded-by" requestAttributesEnabled="true" internalProxies="127\.0\.0\.1|0\:0\:0\:0\:0\:0\:0\:1"/-->
4. Modificar internalProxies
Descomenta la línea y modifica el valor de internalProxies colocando la IP de tu servidor AD360 (Proxy):
<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="x-forwarded-for" proxiesHeader="x-forwarded-by" requestAttributesEnabled="true" internalProxies="<IP_DEL_PROXY_AD360>"/>
5. Guardar y Reiniciar
Guarda el archivo y reinicia el servicio de ADSelfService Plus.
Con estos cambios, el proxy pasará correctamente la IP de los clientes.
Conclusión
Implementar un proxy inverso con AD360 en una DMZ es la forma oficial y segura de exponer ADSelfService, aunque requiera pasos adicionales como modificar el archivo hosts y la configuración de Tomcat que la documentación original no detalla a profundidad.
En un futuro post, veremos cómo aplicar un concepto similar pero usando Cloudflare Tunnels. Esta alternativa no requiere licenciamiento extra (lo cual reduce los costos adicionales que sí tiene la implementación del proxy de AD360), no obliga a abrir puertos de entrada en tu firewall, y te permite aplicar políticas Zero Trust como bloquear directamente la página de administración /admin desde la nube.