domingo, 26 de julio de 2015

Conexión Remota Desatendida

Este es un tutorial que hice a raiz de una petición un tanto rara en un cliente en el que estuve. Es una forma de crear un sistema tipo TeamViewer o LogmeIn. No es algo espectacular, pero puede dar ideas para otros casos similares. (Lo hice hace bastante tiempo y debería darle un repaso, habrán cambiado las versiones y se que DynDNS ya no ofrece servicio gratuito...pero para eso exista NO-IP)
Es un método basado en VNC para poder controlar remotamente un PC sin que ningún usuario tenga que actuar de ninguna manera y sin necesidad de abrir ninguna clase de puerto hacia Internet. Es viable incluso a través de un Proxy con autenticación.
Primero se explica la configuración del equipo que será monitorizado/gestionado en remoto (a partir de ahora SERVER), después el equipo desde el que se hará la administración (a partir de ahora VIEWER) y por último el software utilizado para poder pasar “sobre” el Proxy.
Todo el software es de uso gratuito.
SERVER
Vamos a utilizar una versión del popular software de administración remota VNC.
Normalmente este software consta de una parte servidor y una parte cliente que se instalan en el PC, y es el cliente el que se conecta al servidor, siendo preciso que haya una serie de puertos abiertos a Internet por lo que es precisa una configuración de cualquier enrutador o Proxy a través del cual nos conectemos a Internet.
Para evitar esto vamos a usar el VNC Single Click. Con esta versión no hace falta instalar ninguna aplicación en el SERVER, se basa en un ejecutable en el que se especifica la dirección IP o Host al que conectarse. Sólo es necesario ejecutar este archivo y la conexión contra el cliente se realiza automáticamente.
Para crear este ejecutable, hemos de descargarnos este archivo. Cuando lo descomprimimos, nos aparecen una serie de archivos para personalizar el ejecutable. Como el método que vamos a seguir es el de la conexión automática desatendida, no es necesario que lo personalicemos demasiado, por lo que tenemos que concentrarnos en el archivo helpdesk.txt. Este archivo es el que va a proporcionar las instrucciones de conexión.
En este caso nuestro archivo quedaría así


[HOST]
AFB
-id 2525 -autoreconnect -connect VIEWER:80 -noregistry
[DIRECT]
[TEXTTOP]
La conexión se realizará en breve
[TEXTMIDDLE]
[TEXTBOTTOM]
[TEXTRBOTTOM]
[TEXTRMIDDLE]
[TEXTRTOP]
[TEXTBUTTON]
[WEBPAGE]
[TEXTCLOSEBUTTON]
STOP
[BALLOON1TITLE]
Estableciendo comunicación ...
[BALLOON1A]
5 min de espera
[BALLOON1B]
Si falla, el software se autoeliminará
[BALLOON1C]
del sistema.
[BALLOON2TITLE]
Conexión activa.
[BALLOON2A]
Atención, el escritorio es visible remotamente

AFB es el nombre de la conexión, en este caso VIEWER (que tendremos que sustituirlo por la dirección, ya sea IP o HOST donde esté ubicado el nuestro).
Una vez que tengamos nuestro archivo helpdesk.txt correctamente configurado, volvemos a comprimir la carpeta donde están los archivos y entramos en el Online Creator . Introducimos el usuario foo y la contraseña foobar, e indicamos la ruta del archivo .zip que hemos creado. Le damos a SUBMIT y en unos instantes nos aparecerá un enlace para descargar un archivo ejecutable con el mismo nombre que el archivo .zip que habíamos creado. Pulsamos sobre el enlace con el botón derecho y le damos a Guardar destino como…
Este es el archivo que nos va a permitir conectarnos remotamente, si queremos que se ejecute automáticamente al arrancar el PC, sólo tenemos que colocarlo en Menú Inicio\Programas\Inicio y se conectará automáticamente cuando arranque el sistema.
De esta manera, si no se ha conectado a los 5 minutos, eliminará la conexión.
Si lo que queremos es que esté permanentemente intentando la conexión hasta que haya un VIEWER que tome el remoto, podemos hacerlo de la siguiente manera:
Creamos un archivo .bat con el siguiente texto

:StartSC
START /WAIT “nombredelejecutable”
GOTO StartSC

Comprimimos los 2 archivos, el .bat y el ejecutable con Winrar. Abrimos el archivo .rar resultante con Winrar, pulsamos el menú Herramientas/Convertir archivo en SFX.
Pulsamos el botón Opciones avanzadas SFX, en la pestaña General, en la casilla donde pone Ejecutar tras la extracción, ponemos el nombre completo del archivo .bat, en la pestaña Modos marcamos la casilla “Descomprimir en una carpeta temporal” y marcamos “Ocultar todo” un poco más abajo. Aceptamos todo hasta cerrar y tendremos un archivo .exe. Este ejecutable lo que hace es que lanza el programa de conexión remota, pero como este se desconecta a los 5 minutos si no ha tenido una conexión, lo vuelve a lanzar hasta que detecta la conexión desde un equipo remoto, pero no deberemos cerrar la ventana de Comandos que se abre, porque sino, no habría más reintentos.
VIEWER
Este es el equipo desde el que nos conectaremos para hacer la administración remota.
Aquí es imprescindible que tengamos instalado el UltraVNC y posiblemente el REPEATER.
Podemos trabajar de dos maneras, instalando el REPEATER en el mismo equipo que tenemos el UltraVNC o en un PC que tengamos conectado permanentemente a Internet.
En este último caso, si está conectado a una línea ADSL a través de un router/firewall/Proxy, tendremos que abrir una par de puertos para la máquina en la que tenemos instalado el REPEATER hacia Internet (cada sistema es distinto, así que eso no se va a explicar aquí). Estos puertos son los mismos que indicaremos en la configuración del REPEATER.
La otra manera de trabajar, es teniendo instalado el REPEATER y el UltraVNC en la misma máquina.
Configuración del REPEATER
Este software no lleva instalación, es simplemente un ejecutable.
La única configuración que tenemos que realizar es indicarle los puertos.
El puerto de arriba es al que se conectará el VIEWER y el de abajo al que se conectará el SERVER. Podemos cambiarlo a nuestro antojo, pero teniendo siempre en cuenta cuales son para configurar los otros 2 programas. Si los cambiamos en el REPEATER, tenemos que grabar los cambios y reiniciar el programa (los cambios se almacenan en un archivo llamado settings.txt que se aloja en la misma carpeta que el ejecutable).
El resto de las configuraciones no es necesario cambiarlas.


Cuando tenemos arrancado el REPEATER, se nos aloja en la bandeja de sistema, desde ahí podemos elegir cambiar la configuración, cerrar el programa o ver el log.
Esto último es muy útil tenerlo levantado para poder ver cuando se nos conecta el SERVER.


Configuración del VIEWER
Iniciamos el programa desde Inicio/Todos los Programas/UltraVNC/ UltraVNC Viewer.
Nos aparecerá una ventana como esta.

VNC Server


En el primer campo tenemos que poner el mismo ID que pusimos en el archivo helpdesk.txt que creamos para el SERVER. Pero tenemos que ponerlo exactamente como aparece en la imagen (con ID en mayúsculas).
Las opciones de conexión, a gusto del usuario.
No es necesario marcar el uso de DSMPlugin, pero si hay que tenerlo.
Lo que si marcaremos será la casilla de Proxy/Repeater e indicaremos la dirección y el puerto de la máquina donde tenemos instalado el REPEATER. En caso de que esté en la misma máquina que el VIEWER, nos basta con poner localhost y el puerto que configuramos en el REPEATER (el de la casilla de arriba, no lo olvidemos).
Ya sólo tenemos que darle al botón Connect para que inicie la conexión contra el REPEATER. Si en ese momento el SERVER está conectado contra el REPEATER a su vez, se iniciará la conexión entre SERVER y REPEATER. Este es uno de los motivos por el que es útil tener el REPEATER en la misma máquina que el VIEWER, ya que de esta manera sabremos seguro que el SERVER está conectado contra el REPEATER.
Cuando queramos acabar la sesión, no es aconsejable cerrarla desde el VIEWER, ya que de esta manera, el SERVER se quedará bloqueado y no aceptará más conexiones entrantes, por lo que es preferible o reiniciar la máquina remota o cerrar el proceso desde el Administrador de Tareas de Windows de la máquina remota.
¿Qué hacer en caso de que no tengamos una IP fija para el REPEATER?
Lo mejor es utilizar un servicio de DNS Dinámico, hay bastantes por Internet.
Uno de los más conocidos, y más compatible con la mayoría de dispositivos que soportan este protocolo es WWW.DYNDNS.COM. Aquí tendremos que crearnos una cuenta gratuita y configurarnos un HOST que será el que utilicemos para tener localizado el REPEATER.
Si el REPEATER está conectado permanentemente a Internet a través de un router o firewall, la mayoría de estos equipos se pueden configurar para usar este servicio.
Si vamos a tener el REPEATER por ejemplo en un equipo que sale a Internet a través de un dispositivo de conexión tipo módem o 3G, podemos usar un programa que hará las funciones de actualización de la IP contra el servidor DynDNS y que podemos descargar en su web.
¿Y si el SERVER está detrás de un Proxy?
Pues esto sería un problema, ya que el Proxy seguramente nos bloqueará el tráfico de salida desde un programa que no sea un navegador.
Bueno, esto se puede solucionar con una aplicación llamada FreeCAP
Aquí podemos configurar los parámetros de conexión de nuestro Proxy (servidor, puerto, tipo, usuario, pass) e indicarle que aplicación queremos que salga a través del Proxy. En nuestro caso la aplicación que tendríamos que indicar sería el archivo .exe que creamos con el Winrar. Podemos configurarlo de tal manera que el FreeCAP se inicie con Windows y que se ejecute la aplicación SERVER automáticamente.

¿Y para ampliar información?
Pues para eso tenemos Internet
http://www.freecap.ru/eng/?p=index
http://www.ultravnc.com/ (muy interesante su foro)
http://www.dyndns.com/

domingo, 19 de julio de 2015

Conversor tiempo NT

El Directorio Activo de Microsoft, gestiona el tiempo para algunos de sus parámetros (pwdLastSet, accountExpires, LastLogon, LastLogonTimestamp y LastPwdSet) contando el número de nanosegundos transcurridos desde el 1 de enero de 1601.
Este número puede ser algo farragoso de entender, aunque se puede calcular fácilmente con el comando de Windows w32tm /ntte
w32tm


De esta manera, podremos saber la fecha en un formato "humano" de un resultado que nos ha mostrado una query de Active Directory.
El problema surge cuando queremos hacer una consulta de alguno de los parámetros y hay que indicarle la fecha en este formato.
Para convertirlo, nos encontramos con que no hay un comando que realice este operación. Una solución es crearse una función de Excel que lo calcule. Pero como no siempre hay un Excel cuando se necesita, he hecho esta pequeña función que nos devuelve en Tiempo NT la fecha que le indiquemos.
La fecha hay que meterla en formato YYYY/MM/DD