Microsoft Lync Server
Header

MSFT ha publicado una Excel comparando la distintas versiones de Lync Server 2013 con Lync Hoster Pack y Lync Online (Office 365​), muy interesante

Comparativa_Versiones

Aquí os dejo el enlace para su descarga: http://www.microsoft.com/en-us/download/details.aspx?id=38816

Espero que os sea de utilidad!!

​Voy a mostraros algo súper sencillo, como podemos cambiar el sonido de la segunda llamada entrante en vuestro cliente Lync. En muchas ocasiones hay clientes que no quieren que en la segunda llamada escuchen el sonido de la misma o simplemente quieren modificarlo. Esto en principio es muy sencillo, para ellos nos vamos al cliente Lync – Opciones – Tonos de llamada y sonidos

Segunda_Llamada_Entrante_12.png

Como vemos nos lleva directamente a la ventana de configuración de Sonido de Windows, en la lista buscamos la sección de Lync y la opcion de Segunda llamada entrante

Segunda_Llamada_Entrante_3.png

Ahora podemos elegir un sonido nuevo o seleccionar el primero de la lista que es Ninguno

Segunda_Llamada_Entrante_4.png
Y ahora os preguntaréis, tengo que hacer esto cada usuario? La respuesta es si, de momento no hay otra forma que hacerlo por usuario…. pero también existen las GPO para aplicar esta configuración a los usuarios pero de forma automatizada. Para ello nos creamos una GPO que modifique los distintos valores de las subclaves .Current dentro de  cada clave principal dentro de HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Communicator

Segunda_Llamada_Entrante_5.png

Si establecemos NULO el valor de alguna de los valores dentro de HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Communicator\LYNC_secondcall\.Current no tendremos sonido cuando entre una segunda llamada:

Segunda_Llamada_Entrante_6.png

Y si queremos establecer un tono diferente a los predeterminados, podemos crear una GPO para que haga lo siguiente:

  • Crear una carpeta en local para guardar el fichero de audio
  • Copiar el fichero de audio que tengamos en un servidor de ficheros en una carpeta compartida
  • Cambiar el valor de registro en el cual queremos establecer el nuevo tono

Para este artículo no me he preparado una GPO porque se muy sencilla, pero si queréis ver alguna guía de como hacerlo aquí os dejo algunos artículos sobre GPOs para modificar el registro: GPO: Control de USB Store en Windows XP, Vista, 7 y 8. Es para que os podáis hacer una idea de lo que habría que hacer, pero tocando las claves adecuadas y la directiva que tenéis que modificar es de USUARIO no de equipo (que es la que os muestro en el artículo que os he referenciado ahora mismo). La idea es crear la GPO para que modifique el registro del usuario, es muy sencillo.

También podéis hacerlo vía powershell para ello utilizaremos el siguiente cmdlet:

Clear-Itemproperty -Path "HKCU:\AppEvents\Schemes\Apps\Communicator\LYNC_secondcall\.Curent\" -name "(Default)"

Pero si queremos que se aplique a todos los usuarios o parte de ellos, debemos crear una GPO para que lo ejecute al inicio de sesión, etc… ahora es cuestión vuestra si lo podéis hacer cambiando el Registro o por PowerShell

Espero que os sea de utilidad!!!

Seguramente muchos de vosotros utilizáis Lync como sustituto de vuestras antiguas PBX, y en vez de utilizar las líneas RTB/RDSI/PRI tenéis un SIP Trunk con un ITSP (Internet Telephony Service Provider) para realizar vuestras llamadas a la PSTN. ¿Pero cuantos de vosotros os preocupa la seguridad del SIP TRUNK? ¿Qué medidas estáis adoptando? Desde mi punto de vista es algo que debemos tener muy en cuenta, sobre todo en entornos en los cuales atravesamos la WAN para conectarnos con nuestro ITSP (Lync Server: Direct SIP, Trunk SIP e Inter-Trunk Routing). En el poder capturar tráfico SIP y digitalizarlo es un proceso sencillo, teniendo las herramienta adecuada es casi cuestión de segundos.

Tenemos múltiples herramientas de análisis de tráfico de red, y que encima son capaces de convertir esos paquetes RTP en ficheros de audio (wav, mp3, etc..) para que podamos reproducirlos con total claridad. Aquí os muestro una captura (el audio me lo reservo) de Wireshark (www.wireshark.org). La captura se realiza interceptando tráfico RTP de un SIP TRUNK sin TLS, por lo que para el wireshark será una tarea sencilla:

vpn_con_certificados_ndes_35.png

Una vez que tenemos el tráfico deseado capturado, solo tenemos que convertir estos paquetes en ficheros de audio o reproducirlos directamente, para ello vamos al menú Telephony – VoIP Callsvpn_con_certificados_ndes_36.png
y aquí tenemos las llamadas de VoIP detectadas

vpn_con_certificados_ndes_37.png
Si queremos revisar flujo de las comunicaciones de esta llamada, pulsamos en Flown y mirad que "bonito"

vpn_con_certificados_ndes_39.png
Y si queremos escuchar la conversación de esa llamada, pulsamos en Player y luego en Decode

vpn_con_certificados_ndes_38.png

ya tenemos la conversación preparada para se reproducirla, pulsamos en la pista que queremos reproducir y se habilitará el botón de Play

vpn_con_certificados_ndes_40.png

Aquí lo único "complicado" ha sido interceptar el SIP Trunk y que desde una tercera máquina (mi portátil) he podido capturar el tráfico de red. Si implementamos un SIP TRUNK vía TCP, esto es lo que puede ocurrir si alguien nos intercepta este tráfico de red y es capaz de capturarlo. Por desgracia muchos ITSP es como os van a entregar el SIP TRUNK, así que siempre que sea posible solicitarles alguna de estas medidas de seguridad:

– Establecer una VPN con IPSec Site-to-Site

– Protocolo de Transport  SIP mediante TLS

En el caso de que no podamos obtener un SIP Trunk mediante alguno de los dos escenarios comentados, deberíamos realizar ciertas configuraciones (igualmente siempre recomendadas):

  • Añadir una segunda tarjeta de red al mediation server, para configurar el SIP Trunk mediante esa tarjeta y situarla en una DMZ.
  • Crear una subred lo más pequeña posible en el número de direcciones disponibles para hosts (/30), de tal forma que solo exista conectivdad "local" entre el dipositivo de seguridad y el mediation server. Ni hay que decir que la subred debe ser diferente a la de la red local
  • Establecer una puerta de enlace solo en la interface de red que utilizaremos para conectarnos al ITSP, y para el resto de redes utilizar rutas estáticas con interface de salida (Edge Lync: Configuración de Red (Parte I), mirad el esquema de host seguro)
  • Deshabilitar protocolos innecesarios o más bien solo dejar los necesarios: Protocolo de Internet versión 4 o 6, Programador de Paquetes QoS (si se ha implementado)
  • Configurar el filtrado de IP Origen (IP del ITSP) en la regla de publicación de vuestro dispositivo de seguridad
  • Definir únicamente los puertos necesarios en la regla de publicación, tanto de entrada como de salida
  • En la regla de publicación del SIP Trunk, definir la franja horaria en la que la regla estará activa y permitirá que se pueda utilizar el SIP Trunk
  • Habilitar la inspección del protocolo SIP siempre que sea posible y vuestro dispositivo de seguridad lo soporte
  • Habilitar registro de LOGS y configurar ciertas alertas (las justas y necesarias, porque sino luego se terminarán no revisando) a un servidor de recolección de registros (Syslog)

Como ya sabéis existen varias formas de conectar a Lync a una PBX o ITSP o Gateway de Voz, mediante SIP Trunk o Direct SIP. En este artículo de hace unas semanas había explicado las diferencias: Lync Server: Direct SIP, Trunk SIP e Inter-Trunk Routing. En todo caso por resumir aquí os dejo la explicación de las diferencias entre ambos términos:

Trunk SIP: Conexiones SIP entre dos dispositivos independientes,  por ejemplo nuestro servidor Lync y un ITSP o enlaces SIP entre dos sedes conectadas mediante VPN, MPLS, etc.
 
Direct SIP: Son conexiones SIP entre dos dispositivos que se conectan de forma directa en la misma red local, por ejemplo nuestro servidor Lync y un enlace de red telefónica conmutada (RTC) o un sistema IP-PBX. Pero siempre de forma local, en ningún momento se conecta fuera de la red local

Teniendo en cuenta esta, veamos que debemos hacer si configuramos un Direct SIP entre Lync y una IP-PBX:

  • Configurar en nuestros switch L2 o L3 una VLAN de Voz
  • Añadir una segunda tarjeta de red al mediation server y conectarla a la VLAN de Voz
  • Conectar la tarjeta de red de la IP-PBX  la VLAN de Voz
  • Deshabilitar protocolos innecearios o más bien solo dejar los necesarios: Protocolo de Internet versión 4 o 6, Programador de Paquetes QoS (si se ha implementado)
  • Crear una subred lo más pequeña posible en el número de direcciones disponibles para hosts (/30) si solo disponemos de un Mediation y una IP-BPX
  • Configurar Port-Security en los puertos del switch si lo soporta
  • Si tenemos un switch L3 filtremos el Inter-VLAN Routing con ACL u otro mecanismo
  • Evitar subir la VLAN por algún puerto troncal configurado en el Switch

Estas son algunas de las mediadas que creo que se deberían adoptar como básicas, pero entiendo que también es cuestión del hardware del que dispongáis. Sobre todo en entornos en los que no podemos utilizar TLS, que es lo que utiliza Lync por defecto. Además, como veis en las capturas de Wireshark se utilizan RTP (Real Time Protocol) pero en Lync por defecto utiliza SRTP (Secure Real Time Protocol). Aquí os dejo una tabla resumen de  la utilización de TLS o SRTP:

Tipo de tráfico Protegido por
Entre servidores
MTLS
De cliente a servidor
TLS
Mensajería instantánea y presencia
TLS (si se ha configurado para TLS)
Audio, vídeo y uso compartido de escritorio
SRTP
Uso compartido de escritorio (señalización)
TLS
Conferencia web
TLS
Descarga del contenido de las reuniones, descarga de la libreta de direcciones y expansión de grupos de distribución
HTTPS

 

Como podemos apreciar el tráfico de las conversaciones de audio serán encriptadas por defecto. Podemos cambiar este comportamiento (NO RECOMENDADO) con el siguiente cmdlet:

Set-CsMediaConfiguration [-EncryptionLevel <SupportEncryption | RequireEncryption | DoNotSupportEncryption>]

Si queremos ver la configuración actual escribimos el siguiente cmdlet:

Get-CsMediaConfiguration

vpn_con_certificados_ndes_41.png

Más info: http://technet.microsoft.com/es-es/library/gg398580.aspx

Como podéis observar yo he actualizado el EncryptionLevel a SupportEncryption porque es necesario para poder comunicase con sistemas de mensajeria pública (MSN). Para ello se tienen que ejecutar los dos siguientes cmdlets:

Set-CsMediaConfiguration -EncryptionLevel SupportEncryption

Set-CsExternalAccessPolicy Global -EnablePublicCloudAccess $true -EnablePublicCloudAudioVideoAccess $true

Más info: http://technet.microsoft.com/es-es/library/gg398177(v=ocs.14).aspx

Además en cada configuración de puerta de enlace IP/RTC es donde especificaremos el protocolo de transporte SIP:  TCP o TLS

vpn_con_certificados_ndes_42.png

Siempre que sea posible, claramente debemos utilizar TLS. Si bien también es cierto, que no todos los Gateway de Voz o IP-PBX a los que nos queremos conectar soportan TLS de ahí que busquemos alternativas que nos permitan garantizar el aislamiento del tráfico de red de posibles escuchas o  llamadas fraudulentas. Se  pueden aplicar más medidas de seguridad, pero para ello se necesaria hardware específico y más carga administrativa en algunos casos, la idea inicial del artículo era dar una visión sencilla de lo que debemos hacer como mínimo para proteger vuestro sistema. Si bien es cierto que Lync ya tiene implementado sus mecanismos de seguridad, pero cuando queremos conectarlos con otros sistemas ya habéis visto que puede ser vulnerable.

Debemos ser conscientes que existen múltiples formas de atacar a los sistemas de telefonía, por lo menos debemos tener claro ciertos conceptos antes de implementar este tipo de servicios en cualquier cliente.

Espero que os sea de utilidad!!!

​Como sabéis no todas las tareas administrativas en Lync se pueden realizar desde el ​Panel de Control, sino que tenemos que configurar ciertas características mediante PowerShell. Seguramente en alguna ocasión no tenéis acceso al servidor vía RDS o Consola, por lo tanto no podéis conectaros y realizar las tareas encomendadas.  Podemos utilizar Powershell ISE para establecer una sesión remota, y  para ello tenemos estos tres comandos:

$cred = Get-Credential “dominio\usuario”

$session = New-PSSession -ConnectionURI “https://fqdn_lync_server/OcsPowershell” -Credential $cred

Import-PsSession $session 
 
Para poder conectaros remotamente con PowerShell debéis cumplir los siguientes requisitos:

  • Actualizaciones instaladas de .Net Framework y PowerShell
  • Si utilizáis certificados privados debéis tener instalado el certificado raíz de confiaza en el equipo desde el cual queremos conectanos
  • Es posible que tengáis que ejecutar el siguiente cmdlet: Set-ExecutionPolicy Unrestricted para establecer sesiones remotas
  • Debemos tener instalado PowerShell ISE

Por parte del servidor debemos tener habilitado la conexión remota de Windows mediante PowerShell, para ello debemos ejecutar el cmdlet  Enable-PSRemoting en cada servidor de Front-END de Lync
power_shell_remoto_1.png
Si queremos verificar que el servicio se ha iniciado escribimos el siguiente cmdlet: Get-Service WinRM
power_shell_remoto_2.png
Con el script anterior lo que haremos será establecer una sesión vía HTTPS (recomendado) contra el servidor Front-END o Pool en el directorio OcsPowerShell  del Sitio Web Interno 

 power_shell_remoto_9.png

Una vez que iniciamos la conexión al servidor de Lync nos solicitará las credenciales del usuario establecido en la primera línea del script:

$cred = Get-Credential “dominio\usuario”

En la segunda línea del script le indicamos la URL del servidor Front-END o Pool y que nos solicite las credenciales para el usuario indicado en la primera línea mediante la variable $cred
 
$session = New-PSSession -ConnectionURI “https://fqdn_lync_server/OcsPowershell” -Credential $cred
 
power_shell_remoto_13.png

Si introducimos correctamente las credenciales y tenemos los privilegios necesarios se establecerá la sesión y nos descargaremos los cmdlets disponibles (no tenemso todos los cmdlets disponilbes de forma remota). Esto se lo indicamos en el tercer comando del script: Import-PsSession $sessionpower_shell_remoto_14.png

Ahora podemos empezar a administrar nuestro servidor de Lync, además tenemos disponibles la ayuda sobre cada cmdlet y la función de autocompletar 
power_shell_remoto_15.png

 
Una vez que escribrimos el cmdlet aceptamos el comando  y nos mostrará el resultado
power_shell_remoto_16.png
cuando queramos desconectar la sesión, tenemos el siguiente cmdlet que desconectará la sesión remota del servidor

 
Remove-PsSession $session
 
Como vemos una vez desconectados, no tenemos los cmdlets de Lync disponibles 

power_shell_remoto_17.png

Aqui os dejo el script para que podáis utilizarlo, pero antes debéis modificar los valores de usuario y servidor Frotn-END o Pool por vuetros datos PowerShellLync.rarPowerShellLync.rar. Si queremos conectarmos mediante internet debemos crear la regla de publicación necesario y debemos tener en cuenta el sistema de autenticación para la delegación de la misma desde el Reverse-Proxy.

Espero que os sea de utilidad!!

La integración con OWA habilita la IM desde la interface web, facilitando la posibilidad de comunicación con los contactos de Lync desde cualquier parte sin tener que instalar el cliente Lync. Únicamente tenemos disponible el mostrar nuestro estado y la mensajería instantánea, pero resulta muy interesante. Para poder integrar el cliente Lync en el OWA debemos realizar las siguientes configuraciones, teniendo en cuenta de que el tráfico entre el servidor Lync y Exchange será cifrado tenemos que utilizar un certificado digital para tal fin.

 

Lo primero que debemos hacer es crear un grupo de aplicaciones en Lync, para ello podemos hacerlo mediante un cmdlet:
 
New-CsTrustedApplicationPool -Identity mail.asirsl.com -Registrar pool.asirsl.com -Site "Asir Lync" -RequiresReplication $False
 
Después de crear el grupo de aplicaciones de confianza, debemos crear la identidad de la aplicación y un puerto para OWA
 
New-CsTrustedApplication -ApplicationId OutlookWebApp -TrustedApplicationPoolFqdn mail.asirsl.com -Port 5199
 
Ahora nos queda como pendiente publicar la topología con el siguiente cmdlet: Enable-CsTopology

 
Si ahora vamos  a Panel de Control de Lync – Topología – Aplicación de Confianza vemos la aplicación creada
Integracion_Lync_OWA_2.png
Ahora nos queda configurar la parte de Exchange, para ello debemos revisar la configuración del certificado que tenemos en el IIS del Exchange y ver el FQDN que utilizaremos posteriormente en Lync. En mi caso he utilizado un certificado SAN, y tiene como nombre principal mail.asirsl.com y como alterantivos entre ellos *.asirsl.com (para poder utilizar el mismo certificado para otros servicios web)
Integracion_Lync_OWA_3.png

Lo primero que haremose será habilitar la mensajería instantánea en todos los directorios virtuales de Outlook Web Access (Microsoft recomienda no habilitarlo en los servidores de back-end)
 
Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -InstantMessagingEnable $True -InstantMessagingType OCS
Integracion_Lync_OWA_4.png
Podemos verificar que el cambio se ha aplicado correctamente, para ello escribimos el siguiente cmdlet: Get-OwaVirtualDirectory | fl Instant*,Servername
Integracion_Lync_OWA_5.png

Lo siguiente tarea es agregar las siguientes líneas que os muestro al archivo Web.config de Outlook Web Access ubicado en  C:\Archivos de programa\Microsoft\Exchange Server\V15\ClientAccess\Owa), justo después de la etiqueta <appSettings>

 
<appSettings>
    <add key="IMCertificateThumbprint" value="Valor_Thumbprint_Certificado"/> 
    <add key="IMServerName" value="FQDN_POOL_o_Front-END de Lync"/>
Para conseguir este número ejecutamos el siguiente cmdlet: Get-ExchangeCertificate | fl Services, Thumbprint
Integracion_Lync_OWA_7.png
Debemos copiar el Thumbprint del certificado asignado al servicio de IIS, por lo que el resultado sería el siguiente:
 
<add key="IMCertificateThumbprint" value="ACE64A98323BCBD79CB0CEE2959E4BFAB5412A8C"/>
<add key="IMServerName" value="pool.asirsl.com"/>

Integracion_Lync_OWA_6.png

Guardamos el fichero Web.config y reiniciamos el grupo de aplicación de aplicación con el siguiente comando:

 
C:\Windows\System32\Inetsrv\Appcmd.exe recycle apppool /apppool.name:"MSExchangeOWAAppPool"
Integracion_Lync_OWA_9.png
Si queremos también podemos reinicar el grupo de apolicación desde el administrador del IIS, vamos a la opción de Grupo de Aplicaciones MSExchangeWOAAppPool y pulsamos en Reciclar
Integracion_Lync_OWA_8.png
Por último debemos ejecutar el siguiente comando para configurar la mensajería instantánea en las correspondientes directivas de buzón de Outlook Web Access

 
Set-OwaMailboxPolicy -Identity "Default" -InstantMessagingEnabled $True -InstantMessagingType "OCS"
 
Y este otro comando habilita la mensajería instantánea para todas las directivas de buzón de OWA:
 
Get-OwaMailboxPolicy | Set-OwaMailboxPolicy -InstantMessagingEnabled $True -InstantMessagingType "OCS"
 
Si queremos deshabilitar la MI en OWA tenemos el sigiuente cmdlet:
Para verificar que funciona correctamente, debemos iniciar sesión en el OWA y posteriormente iniciar sesisón en Lync. Para ello pulsamos en nuestro nombre en la parte superior derecha, se nos desplegará un menú  en el cual tenemos la opción Iniciar sesión en la mensajería instantánea
Integracion_Lync_OWA_10.png

esperamos unos segundos y estaremos conectados, pero si por el contrario obtenemos este error debéis revisar certificado que habéis elegido (en el 90% de los casos), puesto que puede no ser el adecuado. Debéis tener en cuenta que el nombre del sujeto en el certificado debe corresponder con el nombre del servidor configurado en la aplicación de confianza

Integracion_Lync_OWA_24.png
si todo está correcto, iniciaremos sesión en cuestión de segundos y mostraremos nuestra presencia e imagen al resto de usuarios
Integracion_Lync_OWA_1.png
Integracion_Lync_OWA_23.png
Integracion_Lync_OWA_22.png
 
Si alguien inicia una conversación de MI con nosotros, nos mostrará una alerta visual
Integracion_Lync_OWA_11.png
si pulsamos en aceptar se nos abrirá una nueva ventana iniciando la conversación de MI
Integracion_Lync_OWA_12.png

O bien podemos ir la pestaña de Personas  y buscamos al usuario con el que queremos iniciar una conversión, ahora pulsamos en el icono de Enviar mensaje instantáneo

Integracion_Lync_OWA_13.png
con esto ya podemos iniciar una conversación con el usuario seleccionado
Integracion_Lync_OWA_14.png
También podemos iniciar una conversación de IM desde un correo que tengamos en nuestro buzón, pero además si recibimos el correo en CC o en el PARA tendremos opciones diferentes habilitadas. Si abrimos cualquier correo y pulsamos en los puntos de la parte superior derecha se nos desplegan las distintas opciones disponibles.
 
En función de la cantidad de destinatarios existan en el correo tendremos la opoción de Responder por MI o Responder a todos por MI
Integracion_Lync_OWA_15.png
Integracion_Lync_OWA_16.png

Integracion_Lync_OWA_18.pngIntegracion_Lync_OWA_17.png
Como novedad también tenemos la posibilidad de cambiar la foto que mostramos al resto de usuarios (Lync: Fotos en Alta Resolución con Exchange 2013), para ello pulsamos en nuestro nombre en la parte superior derecha del OWA y pulsamos en la opción cambiar que tenemos debajo de nuestra foto
Integracion_Lync_OWA_20.png

pulsamos en examinar y podemos elegir una nueva imagen almacenada en nuestro equipoIntegracion_Lync_OWA_21.png

Creo que está bastante bien, tenemos muchas opciones disponibles (Exchange 2013 CU1: Programación de Reuniones en Línea desde OWA para Lync) y se hace muy cómodo trabajar con este cliente. Indudablemente lo ideal sería tener la posibilidad de Audio y Video pero … imagino que la gente de MSFT estará pensando en ello

 

Espero que os sea de utilidad!!