Continuando con la entrada de Blog anterior, donde nuestro compañero Hugo Margallo explicó cómo construir una granja de servidores Windows Server 2016 empleando los roles de Remote Desktop Services y desplegándose sobre una infraestructura jerárquica en nube de 4 servidores, en este nuevo post completaremos la información explicando qué es y cómo se crea un Servidor de Ficheros y una colección de Escritorios Remotos. ¡Vamos allá!

1. Servidor de Ficheros

Lo primero que debemos hacer es configurar un servidor de ficheros para compartir carpetas en todo el dominio y que sirvan de ayuda para la granja. Concretamente se compartirán dos carpetas: una para almacenar los “userprofiles” (lo veremos más adelante) y otra que sirva de almacén temporal para facilitar la transferencia de ficheros entre el Session Host y la máquina anfitriona. También utilizaremos esta última carpeta para facilitar la función de autoescalado (lo veremos más adelante), pues sirve de apoyo a los scripts que usaré.

En primer lugar, es necesario instalar el rol de File Server. Lo haremos en EnimbosBroker1, aunque podríamos hacerlo en cualquiera.

Es importante marcar la casilla “File Server Resource Manager” si queremos utilizar características avanzadas de Samba, como veremos ahora.

El siguiente paso es dirigirse a la opción “File and Storage Services” del menú de la izquierda y seleccionar “Shares”. En la esquina superior derecha del marco principal clickeamos sobre “Tasks” y luego en “New Share”. Se iniciará un asistente.

La opción que debemos seleccionar es “SMB Share -Advanced”.

Luego debemos seleccionar el servidor EnimbosBroker1 y, muy importante, marcar que vamos a compartir rutas específicas. En este caso he creado una carpeta llamada “RDS” dentro C: y, a su vez, dos carpetas dentro de esta: “UserProfiles” y “Datos”, y ambas las compartiré. Se puede ver que las carpetas pueden ser creadas en el propio asistente.

Ya tenemos las carpetas preparadas para ser usadas en todo el dominio. La forma de acceder es mediante el siguiente formato \\(nombredelequipo)\(nombredelacarpeta)

El asistente te muestra otras opciones como la de gestionar permisos o aplicar cuotas, pero las obviaremos por ser irrelevantes en el ejemplo que estoy ilustrando.

2. Colección de Escritorios Remotos

 Ahora viene el paso más importante, pues debemos facilitar el acceso al RDHost actual y a los que se irán creando por autoescalado, por lo que debemos crear lo que en RDS se conoce como “Colección”, que no es más que una forma de agrupar varios Session Hosts a los que se puede acceder remotamente (o a aplicaciones remotas) bajo las mismas políticas de seguridad, de tal forma que el bróker sabe dónde y cómo debe aplicar sus reglas de balanceo así como restringir o permitir el acceso a un determinado grupo de usuarios, además de otras reglas como las relacionadas con la autenticación  y los tiempos y límites máximos de cada sesión. Esta parte está sujeta al criterio del administrador.

Para crear una colección debemos seleccionar “Collections” en el menú de los RDS y, acto seguido, clickear sobre “Task”, donde podremos ver la opción “Create Session Collection”. También completamos más abajo con información sobre qué equipos tienen el rol de RDHost.

Una vez dentro disponemos de un asistente donde, entre otras cosas, debemos autorizar a los usuarios que podrán acceder remotamente a los equipos de la colección y, sobretodo, qué RDHosts pertenecerán a la colección. Estos deben tener ese rol instalado.

Otra opción importante es la de los UserProfiles, que consistirá en una carpeta (en este caso compartida), donde se almacenarán imágenes de disco de cada usuario que acceda a la granja desde la primera vez y que se cargarán durante los inicios de sesión del usuario.

Podemos usar un programa llamado “Sidder” que no requiere instalación y que nos permite gestionar los archivos de imagen de disco, pudiendo comprobar a quién pertenecen y pudiendo borrarlos si no están en uso (se marcan en rojo). En la siguiente foto podemos ver un ejemplo de su función, que es bastante intuitiva y sencilla.

Esta imagen muestra únicamente un usuario, que es con el que iniciaré sesión en el ejemplo que mostraré más adelante. La otra imagen es simplemente un “template”.

La colección la he llamado “Escritorios Remotos”, y será ese el nombre con el que se muestre en la web que nos proporcionará la máquina de rol “RDWeb” (EnimbosBroker2).

Podemos editar las características de la colección clickeando en el nombre de la colección en el menú de la izquierda y, posteriormente, en “Tasks” y “Edit Collection” en el marco superior del menú. Estas opciones también están sujetas a los criterios del administrador.

Entre otras posibilidades, podemos configurar las reglas de balanceo, los criterios de conexión y desconexión de las sesiones de usuario y, muy importante, aquello que va a compartir la máquina anfitriona con los Session Hosts de la colección. En este caso he escogido, por motivos de seguridad, que solo se comparta el audio y el portapapeles.

Por último, debemos revisar la configurar general del despliegue de la granja. Para ello debemos situarnos en el menú “Overview” de Remote Desktop Services y clickear sobre “Tasks” en la esquina superior derecha del esquema de la granja, una vez ahí pulsamos sobre “Edit Deployment Properties”. Este menú nos permite configurar cada uno de los elementos principales de la granja: RDWeb, RDBrokers, RDLicensing, y RDGateway. En nuestro caso solo nos interesan los dos primeros, aunque ya tenemos el RDBroker bien configurado. Sin embargo, necesitamos saber la URL desde la que podremos descargar el archivo “rdp” personalizado de la colección que hemos creado:

Ahora solo debemos acceder a esa URL y autenticarnos. Esta web es accesible desde todos los equipos del dominio y conviene añadir una entrada DNS concreta al igual que hicimos para los RDBrokers, aunque solo sería para una IP. El acceso a la web lo haremos desde Google Chrome y nos autenticaremos con el usuario administrador, aunque podría ser cualquiera que pertenezca al dominio siempre y cuando los hayamos autorizado.

Como aún no hemos configurado los certificados (se puede hacer desde el menú anterior), la página se muestra como no segura, pero solo tenemos que añadir una excepción y entrar igualmente. Más adelante accederemos a ella por https con certificado seguro.

En la siguiente página disponemos de los archivos RDP (uno por colección de escritorio remoto) con los nombres que hayamos puesto a cada colección. Si hubiésemos creado una colección de Remote Apps, veríamos las aplicaciones remotas que hemos publicado, que también se descargarían como ficheros RDP. Descargamos “Escritorios Remotos”.

Ahora solo debemos ejecutarlo y nos dirigiremos a uno de los brokers (según Round Robin), y de este al RDHost correspondiente según el criterio de balanceo.

Al ejecutar el fichero RDP podemos ver un mensaje de advertencia. Esto es debido a que el “Publisher” del fichero es desconocido. Más adelante lo solucionaremos cuando configuremos los distintos certificados que usará la granja. Le damos a “conectar”.Podemos ver en la imagen que nos encontramos conectados al equipo EnimbosHost1, pero sin embargo la aplicación de Escritorio Remoto nos indica que estamos en EnimbosBroker1, pues la función del bróker es precisamente hacer de puente entre la máquina anfitriona y los Session Host, aplicando el balanceo que corresponda.

Ya tenemos la granja RDS en pleno funcionamiento. De hecho, podemos visualizar desde el Server Manager en EnimbosDC los usuarios que han iniciado sesión en la colección.

En la siguiente entrada veremos la configuración de los certificados y la función de autoescalado mediante scripts de Powershell y Tareas Programadas.

About Hugo Margallo

Hugo Margallo Gracia / Cloud Consultant. Hugo is Technical Engineer in Computer Systems by Extremadura University and he has a masters in Information and Communication Technology Management. He started his professional career in 2005 managing and setting up networks, joining Enimbos in 2018 as Cloud Consultant.