Microsoft Lync Server
Header

Publicar los servicios web de Lync con Web Application Proxy en Windows Server Technical Preview

marzo 11th, 2015 | Posted by Santiago Buitrago in Lync Server | Seguridad | Windows Server

Cómo ya he comentado en otras ocasiones, para publicar los distintos servicios Web de Lync debemos utilizar un Proxy​ Inverso o Reverse-Proxy, para ello he publicado distintos artículos sobre IIS ARR y TMG:

Pues ahora tocaba hacerlo con Web Application Proxy, un nuevo servicio disponible desde Windows Server 2012 que viene disponible con el Rol de Acceso Remoto. En este caso voy a mostraros como configurarlo pero ya con la versión de Windows Server Technical Preview. Para ello debemos configurar el servicio de federación (AD FS) en uno de los servidores internos de la red, y además configurar el servidor que hará de Proxy Inverso como un AD-FS Proxy. Necesitamos AD-FS para almacenar la configuración del Web Application Proxy y para la configuración de la autorización. Aquí os dejo como casi siempre un esquema de red en donde tenemos los elementos necesarios para configurar este servicio, además os he puesto a la derecha varias opciones de donde podemos situar el Proxy Inverso en nuestra red:

Web Application Proxy - Lync -1.jpg

Para configurar Web Applicatio Proxy debemos hacerlo en varias fases que veremos a continuación y son las siguientes:

  • Configuración AD FS en un servidor unido al dominio
  • Configuración de AD FS Proxy en el servidor que será nuestro proxy inverso con Web Application Proxy

Los requisitos para esta configuración son los siguientes:

  • Servidor unido a un dominio (o un controlador de dominio, pero no sería lo más idóneo)
  • Una entidad certificadora, puesto que no necesitamos certificados públicos para la configuración de AD FS puesto que será interno
  • Un servidor que no esté en el dominio en donde agregaremos el rol de Acceso remoto en donde se configurará el Web Application Proxy y el servicio de Federación.

Como la configuración del Web Application Proxy se almacenará vía AD FS, será lo primero que tenemos que hacer. Para ello utilizaremos un servidor con Windows Server 2012 R2 y agregaremos el rol de AD FS, por lo que desde el Administrador del servidor pulsamos en Administrar Agregar Roles y pulsamos en Siguiente

ADFS_WebProxy_Win10_1.png

Seleccionamos  Instalacikón basada en características o en roles y pulsamos en SiguienteADFS_WebProxy_Win10_2.png

Selecionamos el servidor sobre el cual queremos realizar la configuración de un nuevo rol y pulsamos en SiguienteADFS_WebProxy_Win10_3.png

Ahora debemos seleccionar Serviciosde federación de Active Directory y pulsamos en SiguienteADFS_WebProxy_Win10_4.png
Si seleccionar nada, pulsamos en Siguiente

ADFS_WebProxy_Win10_5.png
Pulsamos en Siguiente
ADFS_WebProxy_Win10_6.png

Para iniciar el proceso de instalación, pulsamos en Instalar
ADFS_WebProxy_Win10_7.png

Una vez que finalice la instalación del rol de Federación, debemos iniciar el asistente de configuración, para ello pulsamos en Configure el servicio de federación en este servidor
ADFS_WebProxy_Win10_8.png
Como es nuestro primer servidor de federación, seleccionaremos Crear el primer servidor de federación de una granja de servidores de federación y pulsamos en Siguiente
ADFS_WebProxy_Win10_9.png
Seleccionamos una cuenta con permisos de administrador de dominio y pulsamos en SiguienteADFS_WebProxy_Win10_10.png

Previo a este paso, debemos tener instalado en el servidor un certificado para poder utilizarlo en el servicio de federación, este certificado puede ser privado puesto que únicamente (en este artículo) será utilizado para conectarse el Web Application Proxy. Aquí os dejo un artículo como configurar una CA en Windows Server 2012:  Windows Server 2012, Instalación de una CA

Una vez que ya tenemos nuestro certificado, únicamente debemos seleccionarlo (o importarlo en este momento), escribir un nombre para el servicio de federación (debéis crear el registro DNS correspondiente) y escribir un nombre para este servicio.
ADFS_WebProxy_Win10_11.png

Ahora debemos especificar una cuenta de dominio (sin privilegios) como cuenta de servicio, si queréis ampliar información sobre la cuenta de servicio aquís tenéis un KB de MSFT https://technet.microsoft.com/en-us/library/hh831782.aspx. Una vez que hemos creado la cuenta y la hemos configurado, pulsamos en Siguiente
ADFS_WebProxy_Win10_13.png
Debemos crear una base de datos para la configuración, bien podemos crearla usando Windows Internal Database o utilizando un servidor de SQL. En este caso utilizaremos la opción de Crear una base de datos en este servidor que usa Windows Internal Database
ADFS_WebProxy_Win10_14.png

Por último, nos muestra un resumen de la configuración que vamos a realizar a través del asistente, si todo está correcto, pulsamos en Siguiente
ADFS_WebProxy_Win10_15.png
Se comprueban los requisitos del sistema para verificar que nuestro servidor cumple con todos ellos, si es así  pulsamos en Configurar para iniciar el proceso
ADFS_WebProxy_Win10_16.png
Una vez que se ha completado el proceso de instalación, nos los mostrará con la siguiente pantalla, para cerrar esta ventana pulsamos en Cerrar
ADFS_WebProxy_Win10_17.png
Ahora lo  único que nos queda es probar que el servicio funciona correctamente, para ello accedemos a la siguiente URL: https://adfs.asirlab.com/adfs/ls/IdpInitiatedSignon.aspx y pulsamos en Iniciar sesión
ADFS_WebProxy_Win10_19.png
Nos solicitará credenciales y se las especificamos para comprobar que funciona correctamenteADFS_WebProxy_Win10_20.png
Si todo ha salido bien, veremos una pantalla similar a esta. Ahora sí que damos por finalizada la configuración de AD FS que necesitamos para almacenar la configuración del AD FS Proxy que será el servidor que tiene el rol de Proxy Inverso (Web Application Proxy)

ADFS_WebProxy_Win10_21.png
Hasta ahora hemos completado la primera parte de la configuración que necesita nuestro Proxy Inverso, por lo que ahora debemos realizar las distintas configuraciones en el propio servidor que hará de proxy. Antes comentaros que el debería tener la siguiente configuración:

  • Dos tarjetas de Red con una subred IP diferente en cada interface
  • Sólo configurar la puerta de enlace y servidores DNS públicos (8.8.8.8 u otro público) en la interface que tengamos como externa
  • Si tenemos una DMZ o distintas VLAN internas, debemos configurar las rutas estáticas necesarias  para que desde la interface interna podamos tener conexión con las redes privadas en donde tenemos los servidores que vamos a publicar y el acceso al servicio de AD FS
  • Un certificado para configurarlo en las reglas de publicación del Proxy Inverso
  • Un certificado (o el mismo que el de la publicación de servicios si procede) para el servicio de Federación
  • Modificar el fichero HOSTS del equipo para que pueda resolver los distintos nombres de los servidores que vamos a publicar o que necesitemos tener acceso (AD FS)
  • El FQDN del servidor debería ser con el sufijo del dominio interno que tenemos

Una vez dicho esto, vayamos paso a paso configurando todo lo necesario para configurar el rol de Acceso Remoto y preparar la configuración del Web Application Proxy. Para ello, una vez configuradas la tarjetas de red del servidor, establezcamos el FQDN del servidor y modifiquemos el fichero HOSTS del servidor:

WebProxy_Win10_1.png

Editamos el fichero HOSTS, aquí solo he puesto el los del servidor de Lync, pero habría que poner el nombre del servicio de AD FS que hemos configurado previamente y también nos haría falta la URL de los servicios de nuestro WAC y Exchange si lo tenemos en On-Premises. Aquí no los he puesto porque me he centrado únicamente en Lync
WebProxy_Win10_0.png
Ahora que ya tenemos los requisitos previos realizados, iniciaremos el proceso de configuración del ROL de Acceso Remoto. Comentaros, que yo estoy utilizando un Windows Server Technical Preview, pero en la versión de Windows 2012 es muy similar su configuración. Dicho esto, nos vamos a la consola de administración del servidor y agregamos el rol de Acceso Remoto:
WebProxy_Win10_2.png
Seleccionamos Role-Based or feature-based installation y pulsamos en Next
WebProxy_Win10_3.png
Seleccionamos el servidor sobre el cual vamos a querer agrear el rol de acceso remoto, en este caso es el servidor sobre el cual estamos conectados y pulsamos en Next
WebProxy_Win10_4.png
Seleccionamos el Rol de Remote Access y pulsamos en Next
WebProxy_Win10_5.png
No seleccionaremos nada y pulsamos en Next para continuar con la instalación
WebProxy_Win10_6.png
Pulsamos en Next
WebProxy_Win10_7.png
Ahora debemos seleccionar el servicio que queremos instalar dentro del ROL de Remote Access que previamente hemos seleccionado, por lo que marcamos la casilla de Web Application Proxy
WebProxy_Win10_8.png
Nos muestra los componentes que tiene que agregar adicionalmente al servicio de Web Application Proxy y pulsamos en Add Features
WebProxy_Win10_9.png
ahora ya tenemos todo lo necesario para continuar, para ello pulsamos en Next
WebProxy_Win10_10.png
Nos muestra un resumen de lo que se va a instalar, si estamos de acuerdo pulsamos en Install para iniciar el proceso
WebProxy_Win10_11.png
Una vez que termine la instalación, nos mostrará la siguiente pantalla en donde nos mostrará una opción de configuración del Web Application Proxy para ellos pulsamos en Open the Web Application Proxy Wizard
WebProxy_Win10_12.png
Una vez abierto el asistente de configuración, nos mostrará una pantalla en donde nos indica que debemo configurar inicialmente el servicio de federación, para iniciar el proceso pulsamos en Next
WebProxy_Win10_13.png
Escribiemos el FQDN del servicio de federación que habíamos configurado previamente y las credenciales correspondientes con los permisos de administrador y pulsamos en Next
WebProxy_Win10_14.png
Seleccionaremos el certificado que vamos a utilizar en el AD FS Proxy, recordad que como el servidor no está en el dominio y si utilizáis certificados privados debéis instalar el certificado raíz en el servidor para que no tengáis problemas con el certificado que utilicéis. Como el certificado que he utilzado lo ha emitido mi CA interna, una vez que he importado el certificado también he instalado el certificado raiz en el contenedor de certificados raiz de confianza del propio servidor, de tal forma que vea el certificado como válido. Dicho esto, ya podemos seleccionar el certificado en la pantalla de AD FS Proxy Certificate y pulsamos en Next
8WebProxy_Win10_15.png
 Ahora nos muestra un resumen de los comandos de powershell que se ejecutarán en base a la configuración que hemos ido realizando a través del asistente y pulsamos en Configure  para continuar

WebProxy_Win10_15.png
Si tanto la URL, como las credenciales y el certificado presentado están correctos, nos mostrará la siguiente pantalla indicándonos que se ha completado de forma correcta.
WebProxy_Win10_17.png
Ahora lo único que nos queda es crear las reglas de publicación necesarias para nuestro Lync, para ello pulsamos en Publish
WebProxy_Win10_18.png
Pulsamos en Next
WebProxy_Win10_19.png
Cómo para los servicios de Lync no utilizamos preautenticación, seleccionamos Pass-through y pulsamos en Next
WebProxy_Win10_20.png
Debemos cubrir los siguientes campos disponibles en la publicación del servicio:

  • Nombre: Será el nombre descriptivo que tendrá la regla de publicación
  • External URL: Dirección web del servicio que vamos publicar, en este caso voy a publicarlos servicios web externos de Lync y este es el FQDN que había establecido en la topología de Lync (lync.asirlab.com)
  • External Certificate: Es el certificado que vamos a presentar a los usuarios externos cuando se conecten a los distintos servicios de Lync
  • Backend serve URL: Dirección web del servidor que vamos a publicar, al igual que hacemos con otros proxy debemos especificar la URL y el puerto 4443 que se corresponde con el sitio web externo que tenemos en nuestros front-END

Ahora que ya tenemos todos los campos cubiertos, pulsamos en Next
WebProxy_Win10_22.png
Nos muestra un resumen de la configuración que se va a aplicar vía powershell (Add-WebApplicationProxyApplication) y para que se cree la regla de publicación pulsamos en Publish
WebProxy_Win10_23.png

Y por último en Close y ya tenemos nuestra primera regla de publicación de los servicios web de Lync
WebProxy_Win10_24.png
Y aqui tenemos nuestra primera de Lync en el Web Application Proxy, ahora tendremos que hacer todas las necearias como por ejemplo:

  • meet.asirlab.com (Reuniones en línea)
  • dialin.asirlab.com (Conferencias Telefónicas)
  • lyncdiscover.asirlab.com (Cliente Lync Móvil)
  • office.asirlab.com (Office Web App)
  • mail.asirlab.com (EWS de Exchange)

WebProxy_Win10_26.png
Por mostraros una diferente a Lync, aquí tenéis la regla de publicación del Office Web, en mi caso he puesto la dirección externa y el servidor interno siempre con la misma URL pero puede ser diferente sin problema alguno.
WebProxy_Win10_27.png

Claramente lo que nos quedaba por haacer es probar que podíamos conectarnos, por lo que tratamos de conectarmos por ejemplo a la URL de las reuniones en línea y vemos que funciona perfectamente.
WebProxy_Win10_32.png
Algo que debemos hacer es configurar el tiempo de desconexión de las conexiones que pasan por el Proxy, como por ejemplo el cliente Lync Móvil. Si recordáis había pulicado este articulo sobre las desconexiones del cliente Lync móvil através del IIS ARR (Cliente Lync Móvil 2013: La información del servidor ha cambiado. Reinicia Lync). Por defecto MSFT recomendaba poner un valor de 200 segundos Your_server_configuration_has_changed_3.jpg
y con este valor los clientes Lync de móvil cuando no tenían la aplicación en primer plano a los 200 segundos se desconectaban y claro eso genera problemas a los usuarios finales que deben reconectar cada poco tiempo. Para esto se configuraban las desconexiones a los 960 segundos, algo más razonable y que permite tener la aplicación en segundo plano iniciada durante un tiempo prudencial:

Your_server_configuration_has_changed_4.jpg

Dicho esto, ahora debemos ver como hacerlo en el Web Application Proxy, para ello debemos hacerlo mediante PowerShell. Lo primero es ver el valor por defecto y luego cambiar si fuese necesario, para ello ejecutamos el siguiente cmdlet: Get-WebApplicationProxyApplication y vemos todas las reglas de publicación. Si ahora ejecutamos Get-WebApplicationProxyApplication -Name Lync | fl nos muestra la configuración de cada publicación y vemos que el valor InactiveTransactionsTimeoutSec está establecido a 300
WebProxy_Win10_28.png
Por lo que debemos cambiarlo a 950 y así ajustarlo de forma adecuada, para ello ejecutamos el siguiente cmdlet: Set-WebApplicationProxyAppliation -ID xxxxxx.xxxxxx.xxxxxx.xxxxxxx -InactiveTransactionsTimeouts 950. El ID de la aplicación lo veis con ejecutando el cmdlet  Get-WebApplicationProxyApplication -Name Lync | fl
WebProxy_Win10_31.png
De esta forma el valor por defecto de desconexión establecido a 300 segundos (más que la recomendación de 200 segundos en el IIS ARR), lo hemos pasado a 950.
 
Por último comentaros, que si publicáis algún servicio vía HTTP tendréis que permitir la conexión en el Firewall Local de Windows, porque por defecto se ha creado solo una regla para el tráfico HTTPS. Si abrimos la consola avanzada del firewall la regla AD FS HTTPS Services (TCP-in), por lo que permitirá todas las conexiones al puerto 443 de entrada a cualquiera de las interfaces del Proxy.
WebProxy_Win10_34.png
Si creamos una regla para publicar una web vía HTTP, la conexión no funcionará …
WebProxy_Win10_32-1.png
Si vemos las conexiones activas en el servidoa al puerto 80 y el firewall activado vemos que no tenemos ninguna conexión activa
WebProxy_Win10_33.png
Lo que debemos hacer es crear una reglapara el tráfico HTTP de entrada y listo, ya tendremos acceso a los servicios web publicados en el PROXY  através del puerto 80 en TCP
WebProxy_Win10_42.png
Si ahora volvemos a conectarmos al servicio web publicado, ya tendremos acceso al mismo
WebProxy_Win10_43.png
Si nuevamente volvemos a revisar las conexiones activas, vemos que ya las vemos establecidas y con el Firewall activo
WebProxy_Win10_44.png
Por último hacer un breve comentario sobre las tres posibles (hay más, pero como norma general) ubicación del Proxy Inverso en nuestra red, he esquematizado los más habituales:
 
Opción 1: Situaremos el Proxy (fuera del dominio) en una DMZ protegido por dos Firewall corporativos, realizando filtrados a nivel 3 desde todas las zonas de red (Internet, LAN). Esta es la mejor opción posible de las que os expongo, puesto que tenemos distintas barreras de seguridad antes de tener acceso a la red interna, además de que podemos realizar distintos filtrados en distintas zonas de la red. Si fuese posible, que los dos Firewalls fuesen de compañias diferentes, evitando así que si uno  de ellos tuviese alguna vulnerabilidad, no estuviese afectada toda la red. Ni que decir tiene que debemos mantener nuestra infraesctructura de red adecudamente actualizada
WebProxy_Win10_001.png
Opción 2: La más común de todas, tenemos un firewall / Router a nivel de perímetro co un interface LAN con una subred IP diferente a la de la LAN. De esta forma el Proxy se conectará directamente al router (o switch intermedio) con una interface y subred IP y con la otra internface y subred IP a la LAN. Para esto podremos utilizar VLAN o simplemente configurar dos subredes diferentes pero todos compartiendo el mismo medio físico (Switch). Si es así no es lo más recomendable aun para este escenario  lo suyo sería una VLAN para poner las interfaces LAN del Router y WAN del Proxy, y otra VLAN en el switch para configurarlo para la red local e interface LAN del Proxy.
WebProxy_Win10_002.png

Opción 3: Menos común y la peor opción, es tener el proxy con dos interfaces en la misma subred, no tiene ni sentido tenerlo así. El proxy también puede funcionar con una sola IP, por lo que es lo mismo que tener dos interfaces con la misma subred. Es común en las empresas pequeñas tener este esquema, porque tienen un router y una interface LAN que está en la misma subred IP que la red interna para que los equipos se puedan conectar a internet. Pero si bien es cierto que con este escenario no tenemos una capa de seguridad a nivel de filtrado IP, puesto que si un atacante compromenten el Proxy, por lo menos a nivel IP ya se encuentra en la misma subred. Esto facilitará al atacanque descrubrir distintos servicios de la red local, los equipos, etc… si estuviese en otra subred IP se podrían aplicar de forma "más efectiva" distintos filtrados, porque realmente el Proxy Inverso solo necesita comunicarse con los equipos de la red coporativa que van publicar sus servicios a internet (para más cosas, pero vamos por se escueto)

WebProxy_Win10_003.png

Y ya dicho esto, ahora que cada uno tome las decisiones que crea oportunas para situar su Proxy Inverso en su red, el riesgos que quiera asumir cada uno ya …

Como veis un Proxy Inverso no es un servicio muy complicado de configurar, únicamente debemos cumplir  todos los requisitos y tener claros los conceptos de publicación, DNS, certificados, etc… pero hay que tenerlo claro :-).
 

Os dejo algunos artículos que os podrían ser de interés con respecto al Proxy Inverso para una topología de Lync:

Espero que os sea de utilidad!!!

You can follow any responses to this entry through the RSS 2.0 You can leave a response, or trackback.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *