Firmando código con signtool

Siguiendo la estela de los últimos post que publiqué sobre certificados, esta semana también voy a hablar sobre ellos, aunque esta vez sobre cómo emplear los certificados de firma de código. Estos certificados son un tipo especial que  permiten marcar digitalmente la autoría nuestro software.

Para la generación de este certificado (al igual que con otros) tendremos que elaborar un request a una CA verificada que procesará la petición. Una vez expedido el certificado y exportado a pfx podremos firmar digitalmente nuestros ejecutables. Para firmarlo usamos la herramienta Signtool. Se trata de una  herramienta de línea de comandos, que viene incluida dentro de las herramientas SDK de Microsoft.  Entre las acciones principales disponibles destacan entre otras las siguientes: sign: que va a permitir firmar, verity: verificamos el binario y remove: podremos eliminar los certificados del ejecutable. Para nuestro caso concreto emplearemos la opción sign, así pues la sintaxis sería la siguiente:

signtool sign /f “fichero_pfx” /p “contraseña_pfx” /t “timestamp_server” “aplicacion.exe”

El servidor timestamp que pongamos nos va a permitir establecer una marca de tiempo que determinará la fecha en la que se firmó. Con esta opción (/t) agregamos la url de una Time Stamp Authority (ej:  http://tsa.starfieldtech.com;  http://timestamp.globalsign.com/scripts/timstamp.dll; http://timestamp.comodoca.com/authenticode; http://www.startssl.com/timestamp; http://timestamp.verisign.com/scripts/timstamp.dll; etc) . Una vez firmada la aplicación si accedemos a las propiedades del ejecutable (o si lo ejecutamos), podremos ver el autor.

image

Por último, cabe destacar que además de esta herramienta para gestionar certificados, con el SDK de Microsoft  dispondremos de makecert, certmgr, cert2spc y pvkpfx que suponen un amplio abanico de utilidades para administrarlos. Y con esto, me despido de momento ¡Nos vemos en el siguiente post!

Notas post-evento: Non Stop IT!– Soluciones de backup y disaster recovery

Cómo muchos sabréis, el tiempo encima de un escenario es limitado, por lo que siempre que preparamos los eventos lo hacemos teniendo en cuenta los tiempos para que al menos podáis ver un ejemplo práctico de una solución funcionando. Sin embargo los tiempos en la nube son muy variables y pueden ir totalmente en contra de uno cuando está haciendo la demo. Hoy Alberto Marcos y servidor hemos estado mostrando Azure Site Recovery como herramienta de migración a Azure desde máquinas físicas o VMWare usando Amazon Web Services como ejemeplo. Aunque os hemos enseñado el escenario montado, en el momento de hacer failover los tiempos se han extendido mucho y no hemos podido mostraros como lo hacía, así que escribimos este mensaje en el blog para mostraros al final cómo quedaba la situación:

image

Aquí podéis ver como el failover tardó aproximadamente 15 minutos en hacerse. Ojo, esto no quiere decir que perdiéramos 15 minutos de información –que en realidad fue a penas un par de minutos- sino que desde que presionamos el botón hasta que la operación se inicia pasan 15 minutos. La nota mental que hacemos de esta experiencia es darle al botón al principio de charla y no en la demo. Aquí podéis ver cómo las máquinas aparecieron migradas a Azure:

image

Por supuesto, eventualmente Alberto, servidor o algún integrante del equipo dedicaremos un post a esta tecnología de migración que nos ha parecido apasionante.

¡Gracias por seguirnos!

SmartCard en Hyper-V y Microsoft Azure

Hace poco me ví en la necesidad de utilizar smartcard dentro de una máquina virtual de Hyper-V para llevar a cabo la autenticación en un servicio de VPN. Como la mayoría sabréis, Hyper-V no tiene de-facto soporte para dispositivos USB, que es la interfaz a través de la cual se conectan la mayoría de estos dispositivos. Sin embargo, existe una alternativa obvia en caso de que nuestra máquina virtual use Windows: utilizar la redirección de Smart Card integrada en el cliente de Remote Desktop. Esto que comento es igualmente válido para las máquinas virtuales de Microsoft Azure.

¡Dicho y hecho! Inserto la Smart Card en la ranura, arranco el cliente y lo configuro adecuadamente:

sc_1

Sin embargo, tras iniciar la conexión en la máquina virtual, podemos ver que nuestra smartcard no es reconocida y por tanto no la podemos utilizar:

sc_2

Después de un par de horas investigando qué podía estar pasando, di con este post de Benjamin Armstrong, el viejo Virtual PC Guy; que fue realmente revelador. La razón por la que esto ocurre es que el soporte de smartcard de Remote Desktop realiza una redirección de la misma a nivel de controlador de dispositivo, no de dispositivo físico conectado por USB, por lo que esta no se detecta como tal en la sesión de escritorio remoto y no se instalan sus controladores adecuadamente. La sólución a este problema pasa por volver a la época donde no existía el Plug and Play e instalar el controlador adecuado manualmente.

En mi caso, la smartcard era compatible con el driver .NET de Gemalto (un alto porcentaje de smarcards funcionan con este driver), en cuyo caso hay que dirigirse a http://test.catalog.update.microsoft.com/v7/site/home.aspx y descargar el controlador manualmente.

sc_3

Una vez encontrada y seleccionada la versión de nuestro sistema operativo, deberemos desempaquetar el CAB descargado, acción que podemos llevar a cabo desde el mismo explorador de Windows:

sc_4

Y veremos los archivos del controlador de la smartcard, con lo que hacemos clic en el botón derecho del archivo INF y seleccionamos Instalar:

sc_5

Tras lo cual ya veremos nuestra smarcard correctamente reconocida:

sc_6

sc_7

¡Y con esto finalmente tenemos nuestra smartcard lista para usar en la máquina virtual! Espero que esto os ahorre horas de investigación y diagnóstico.

Happy smartcarding!

Evento: Non Stop IT! – Soluciones de backup y disaster recovery

Seguimos de eventos en este mes de septiembre, y esperamos que los siguientes. En esta ocasión la semana que viene estaremos Alberto Marcos y servidor vamos a hablar de Azure Disaster Recovery y de cómo puede ayudarnos a migrar a Azure. Si estás pensando en mover tu infraestructura, ¡esta es tu charla!

¡Te esperamos en las oficinas de Microsoft Ibérica!

  • Título: Yendo más allá, entornos híbridos o migración a la nube
  • Fecha: martes 22 de septiembre de 2015
  • Hora: 9:30 a 14:00 CET (nuestra charla es de 12:30 a 13:15)
  • Ubicación: Oficinas de Microsoft Ibérica: Paseo Club Deportivo, 1 – 28223 Pozuelo de Alarcón (Madrid) 
  • Idioma: Español
  • Abstract: El disponer de un centro de respaldo secundario de respaldo bajo demanda a nuestra infraestructura existente es atractivo. Sin embargo, puede ser que queramos ir un paso más allá y aprovechar la escalabilidad, agilidad y economía de la nube para empezar a desplegar nuevas cargas de trabajo o migrar las ya existentes. Veremos cómo es posible realizarlo con Site Recovery y el resto de mecanismos disponibles para hacer la transición lo más asequible.
  • Ponentes:
    • Carlos Milán Figueredo – Enterprise Team Lead
    • Alberto Marcos González – Enterprise Architect

– REGISTRO GRATUITO –

¡Os esperamos!

Activar administrativamente el Out of Office de un buzón en Microsoft Exchange

Me gustaría empezar mi andadura en este blog con un artículo que puede ser útil a la hora de establecer la disponibilidad o no de cualquier usuario. Esto se llevará a cabo mediante el mensaje “Out Of Office” (OOF). Dicha tarea se puede llevar a cabo de forma administrativa, por lo menos, de tres formas diferentes. Dos de estas maneras implicarán el uso de Powershell en Exchange, mientras que la tercera requerirá de un lenguaje de programación .NET, como C#. En este artículo hablaré de una de ellas, para la cual se empleará Powershell.

El cmdlet que nos permitirá establecer el mensaje OOF es ‘Set-MailBoxAutoReplyConfiguration‘. Dicho cmdlet se encuentra disponible para Exchange Server 2010, 2013 y Online, y cuenta con una serie de parámetros que se explicarán a continuación:

  • Identity: el correo o alias del usuario a establecer el OOF.
  • AutoReplyState: activa/desactiva el mensaje. Valores: ‘Enabled’, ‘Disabled’, ‘Scheduled’.
  • ExternalAudience: a quien va dirigido el mensaje. Valores: ‘None, ‘Known’, ‘All’.
  • InternalMessage: el mensaje OOF a nivel interno de la empresa. También se puede indicar un archivo de texto o html (longitud máxima de 100KB).
  • ExternalMessage: el mensaje a nivel externo. Análogo al anterior.
  • StartDate: fecha de inicio a partir de la cual se activa el mensaje OOF. Parámetro solo necesario en caso de que se indique en el parámetro AutoReplyState el valor ‘Scheduled’.
  • EndDate: fecha en la que se desactiva el mensaje. Este parámetro solo es necesario en el mismo caso que el anterior.

La mejor forma de ilustrar todo lo anterior es mediante un ejemplo práctico. Partiendo de la base de que se haya realizado una conexión a Exchange (como indica Antonio en este post) , supongamos que se quiere establecer el mensaje “Out Of Office” del usuario ‘usuario@empresa.com”, estando activo dicho mensaje desde las 9:00h del dia 1/08/2015 hasta las 9:00 del dia 1/09/2015:

Y ésto es todo por ahora. Como se puede ver, este método es bastante directo y su aplicación no conlleva demasiada dificultad.

Migración de correo con Imapsync

Anteriormente, he hablado acerca de cómo migrar buzones  de correo a Office 365 utilizando las herramientas que esta plataforma nos otorgaba.  Por supuesto, mencioné que  existía más software que  nos permitían realizar migraciones IMAP.  En este artículo,  centrándome en dicho punto, hablaré de  imapsync una aplicación que  permite migrar buzones a distintas plataformas (incluyendo Office365) de forma diferente a las metodologías ya habladas.

¿Que ventajas  nos proporciona imapsync frente a otras herramientas ?

  • Es sencilla.  Tan sólo es necesario ejecutar un único comando para poder realizar una migración de un buzón de una plataforma a otra.
  • Permite el acceso administrativo. Útil en los casos en los que se requiera que  el administrador   sea el que realice el movimiento de buzones y no conozca las contraseñas de los usuarios para poder acceder a sus cuentas.
  • Permite migrar grandes lotes de buzones.
  • Soporta múltiples plataformas de correo como  Dovecot, Cyrus, Yahoo, Google Apps, Office 365 , etc.
  • Se puede instalar en diferentes sistemas operativos como en Mac OS X, Windows o Linux (con Perl previamente instalado).

¿Qué desventaja tiene?

  • Es una aplicación de pago, con lo que tendríamos un gasto extra frente a las herramientas de migración de Office 365 pese a que su precio no es tan caro como si lo comparamos con software similar.

Conocidas las capacidades y los defectos de la aplicación, podemos observar que la herramienta nos es muy útil cuando no deseamos que el usuario intervenga en la migración y  debemos migrar una cantidad significativa de buzones a Office 365 , pese a que ello suponga un gasto extra. Tan sólo nos quedaría la duda de cómo realizaríamos la migración con imapsync .

Como ya se ha dicho, no es una operación compleja  y requiere de un único comando para poder mover un buzón de una plataforma a otra.  Advertir que  los ejemplos que detallaré a continuación se han hecho desde una máquina con un sistema operativo basado en Unix,  existiendo pequeñas diferencias para los usuarios que utilicen la herramienta en Windows.  No se procederá a explicar todas y cada una de las opciones, por lo que se sugiere consultarlas dependiendo de cómo se desea realizar la migración de buzones.

Si se desea  mover un buzón  de una plataforma a otra basta con ejecutar el siguiente comando indicando la información de la plataforma de origen  y destino del buzón (el host IMAP y la información de logado de la cuenta correspondientes) :

Si  no se conoce la información de los usuarios, siempre podemos utilizar el acceso administrativo, permitiéndonos realizar el movimiento sin necesidad de conocer la contraseña del usuario propietario (previamente, deberemos haber otorgado permisos de acceso al administrador a los buzones que queramos migrar, tanto en origen como destino) :

A diferencia, del fragmento de código anterior, se aprecia que  en vez de indicar la contraseña de los usuarios, se indica el identificador de login del administrador y su correspondiente contraseña.

Vistas las dos formas básicas de mover un buzón,  es fácil intuir cómo resultaría la migración de múltiples lotes. De hecho el propio creador,  sugiere realizarlo mediante un sencillo script que a partir de un fichero de texto ir leyendo los datos necesarios  e ir ejecutando el comando por cada buzón a mover :

Una vez hemos comprobado la sencillez del proceso, es inevitable hacernos preguntarnos qué hubiese pasado, si en vez de utilizar el servicio de cuentas conectadas de Office 365 hubiéramos utilizado imapsync.

Como recordaréis, cuando se escribió el artículo, Google Apps no permitía el acceso administrativo, con lo que no hubiese sido factible el emplear dicha herramienta. Sin embargo,  actualmente y gracias al uso de XOAUTH para acceder a las cuentas de los usuarios de dicha plataforma, la aplicación puede  mover el buzón a Office 365 sin problema alguno. Previamente  configurado dicho mecanismo, ejecutaríamos imapsync con las siguientes opciones :

Analizando el código,  se puede ver cómo para la información de la cuenta de Google Apps,  se indica que, mediante la opción authmech1,   se va a utilizar XOAUTH como método de autenticación.  Además,  mediante las opciones ssl1 y ssl2 se indica  que se emplearán una conexión ssl para conectarse a los host y mover el correo de forma segura.

En conclusión, con imapsync se tardaría menos tiempo en ejecutar el proceso de migración, pero requeriría una preparación previa por parte del administrador para que esta migración sea efectiva. Queda en manos de los lectores, elegir el mejor mecanismo que mejor se adapta a sus propósitos a la hora de mover los buzones desde cualquier plataforma de correo a Office 365.

Skype meeting broadcast

Una de las funcionalidades más demandas en Lync Online, sobre todo en entornos educativos, era una forma sencilla y rápida de poder ofrecer clases o eventos por Internet, muchas veces con una asistencia abierta a cualquier persona. Imaginar una jornada de puertas abiertas virtual, una graduación, una fiesta de fin de curso o una clase magistral sobre cualquier tema en la que la institución sea referencia.

En Lync Online (y ahora con Skype for Business Online) contamos con una limitación de un máximo de 250 personas en una misma sesión, además que hacerles llegar una URL de acceso compleja a todos los destinatarios puede ser un poco tedioso.

Pero sobre todo el principal problema era el número de asistentes, muy corto en numerosos casos como los que veíamos antes, y esto es lo que viene a solucionar Skype Meeting Broadcast.

Skype Broadcast es una funcionalidad de Skype for Business Online, la que viene con Office 365, y permite programar una reunión que se emitirá por Internet y donde podrán unirse hasta 10.000 personas.

Este servicio está en Preview, por lo que para poder utilizarlo a día de hoy es necesario 2 cosas:

    1. Lógicamente tener una suscripción de Office 365 con Skype for Business Online.
    2. Tener activada la opción de “First release”, lo que nos convierte en early adopters como veíamos en este artículo.

Una vez lo tengamos disponible, usarlo es muy sencillo:

    • Entramos en la web para programar este tipo de reuniones: https://sched.services.skype.net/. Supongo que en el futuro contaremos con el botón correspondiente en Outlook y OWA.
    • Iniciamos sesión con nuestra cuenta corporativa:

image

  • Una vez dentro, podremos ver un calendario con las reuniones que hemos programado:

image

  • Pinchamos en “New meeting” para crear una nueva reunión y esto es lo que nos aparece:

image

Como veis, podemos editar las propiedades de nuestra reunión, añadir moderadores, asistentes, e incluso configurar la URL de acceso o las Apps con las que podrán interactuar los asistentes:

image

image

image

image

  • Una vez creada nuestra reunión, desde el mismo panel podemos copiar el enlace con la invitación para hacérsela llegar a nuestros contactos:

image

  • Y podremos ver la reunión para acceder a los detalles desde el panel principal:

image

 

  • Cuando llegue el momento de la retransmisión, podremos acceder a través del enlace, iniciar sesión como moderadores o como invitados, y disfrutar directamente desde la web de nuestro evento:

image

image

¡Y esto ha sido todo! Como veis no paran de salir nuevas funcionalidades para Office 365, pero esta en concreto creemos que especialmente importante, sobre todo para entornos de formación.

¡Un abrazo y hasta la próxima!