ADMINISTRACION REMOTA DEL PC DESDE UNA PDA

Desde tiempos hoy aparentemente inmemoriales, la telecomunicación y la informática han estado ampliamente ligadas. Un ordenador aislado de poco servía si no era capaz de conectarse con otro/s. Hoy en día, con la proliferación de internet, esto se hace aún más patente.

Por tanto, hoy vamos a aprender una de las miles de formas que hay para configurar nuestro ordenador para podernos conectar y administrar de manera remota desde nuestra PDA usando herramientas totalmente gratuitas.

* EMPEZANDO!!!

Nuestro Ordenador (Fase de conceptualización):

Tras este título tan rimbombante, no se esconde otra cosa que definir el tipo de máquina en la que nos vamos a basar para realizar este pequeño taller. Aunque esta situación la podemos replicar bajo muchos tipos de sistemas operativos y plataformas, lo vamos a centrar bajo una plataforma habitual para la mayoría de los usuarios. Nuestro (para algunos) tan odiado Windows XP.

Aunque el origen de todas las herramientas que usemos fueran el unix/linux, estas han sido portadas con gran éxito a la plataforma más común dentro del mundo de usuarios… “El Windows”. Logicamente, esta misma implementación se podría llevar a cabo en plataformas unix/linux/bsd, exportando sesiones X o simples aplicaciones concretas, pero esto es otro cantar. Nos vamos a centrar en poder ver y toquetear nuestra pantallita de nuestro Windows.

También se puede implementar en cualquier versión de Windows, peeero, nos vamos a centrar en las basadas en NT modernas, a saber, Windows 2000, Windows XP y Windows 2003, y todas sus subversiones (incluyendo las de servidor). En el taller que comienza a continuación, tomaremos de equipo base un Windows XP con Service Pack 1.

* PRE-REQUISITOS:

Podemos calificar a este “proyectito” como de nivel medio, por lo que se requerirán de una serie de conocimientos previos que daremos por asumidos, tales como:

-> Ser capaces de entender lo que son puertos/sockets y direcciones IP’s privadas y públicas
-> Tener la capacidad de administrar y manejar nuestro firewall en caso de disponer de él
-> Ser capaces de “natear” puertos en nuestro router o gateway en caso necesario
-> Saber iniciar una consola de comandos y los fundamentos básicos de comandos MS-DOS (moverse por directorios, listar el contenido de los mismos, mover y copiar ficheros, etc.)
-> Saber instalar programitas en nuestra PDA
-> Saber manejar el teclado/ratón del ordenador, así como el puntero de nuestra PDA
-> Tener ganas de aprender

Respecto a requisitos “materiales”, se pueden resumir en los siguientes:

-> Conexión a internet
-> Un ordenador basado en las plataformas antes detalladas (W2000,WXP,W2003)
-> Disponer de una licencia o de la versión de evaluación del único programa de pago usado en este taller (el pocketTTy)

* COMENZAMOS, PRIMERA BOLA!!!

Como si se tratara de un bingo, empezamos por configurar nuestro PC. Para ello, primera herramienta básica a usar, el OpenSSH.

Aunque hay muchas portaciones de este a Windows, sin lugar a dudas, la más fácil de usar e instalar, sin tener que montar todo un “emulador linux” en nuestra máquina (CygWin, por ejemplo), es la de http://sshwindows.sourceforge.net/.

Lógicamente, como todo en la vida, esta opción también tiene sus inconvenientes entre los cuales, el más destacable es que es una portación que se actualiza muy de cuando en cuando (de echo, la última es la versión 3.8p1-1 de julio de 2004, cuando la última disponible de OpenSSH para otras plataformas o para usar bajo CygWin es la 4.2 de septiembre de este año).

Por tanto, tirando del enlace http://prdownloads.sourceforge.net/sshwindows/setupssh381-20040709.zip?download, nos descargamos el binario instalable para windows. Unos dos megas y medio después, tenemos en nuestro ordenador un magnífico paquete ZIP donde al descomprimirlo descubriremos con orgullo y sorpresa nuestro instalable “setupssh.exe”.

Tras la primera respiración profunda, nos dirigimos a atizarle cariñosamente un doble click, y podremos descubrir la siguiente imagen:

Tras un siguiente y una aceptación de las condiciones de licencia, nos pregunta que partes del paquete queremos instalar. En principio nos valdría con el servidor, pero vamos ya a aprovechar a instalar la parte también cliente y las utilidades por si acaso (total nos va a ocupar unos insignificantes 4,1Mb. dicha opción). Osea, que dejamos marcado todo y pulsamos siguiente.

Poco después, tras indicarle la ruta donde instalar la aplicación (IMPORTANTE SABER DONDE SE INSTALA, Y EN NUESTRO CASO USAREMOS LA DE DEFECTO, OSEA C:Archivos de ProgramaOpenSSH), y donde queremos los iconitos en nuestro menú de inicio (que todo sea dicho, no son más que los accesos a la documentación y poco más), nos aparece este mensaje importante a tener en cuenta:

Para los un poco espesos en el ingles, nos dice que no deberemos arrancar el servicio de SSH hasta haber configurado “AL MENOS” el fichero passwd. Tranquilos que lo haremos… ;-p

Pues nada, ya tenemos instalada la primera herramienta… “amos” a configurarla.

* PRIMERA BOLA, FASE2. (Configuración del OpenSSH)

Enhorabuena, has llegado hasta aquí, pero esto no es un gran mérito, estas precisamente en la base del puerto; nos encaminamos a lo más complicado de nuestro proyecto.

Para empezar, vamos a crear los grupos y los usuarios. Para ello, abrimos una consola de comandos y nos vamos al directorio donde hemos instalado el OpenSSH. Una vez allí, usaremos las herramientas mkgroup y mkpasswd para crearlos. OJO!!! Porque este método es sólo válido para workstations; en caso de tratarse de servidores (y por tanto, disponer de directorio activo), la forma de actuar es diferente. Basta con cambiar el parámetro -l (que viene de local) por el parámetro -d (que viene de dominio).

# Nos vamos al directorio donde tenemos instalado el OpenSSH
cd /archivos de programa/openssh

# Lo primero, nos aseguramos que ni el fichero group ni el fichero passwd existe del etcgroup del etcpasswd

# ahora entramos en el directorio bin, donde tenemos las herramientas
cd bin

# usamos la herramienta mkgroup para crear los grupos (acordaros de cambiar el parámetro “-l” por “-d” en caso de tratarse de un servidor con dominio)
mkgroup -l >> ../etc/group

# usamos la herramienta mkpasswd para asignar acceso al usuario que queramos (acordaros de cambiar el parámetro “-l” por “-d” en caso de tratarse de un servidor con dominio)
mkpasswd -l -u nombre_usuario >> ../etc/passwd

Este último paso, lo tendremos que repetir por cada uno de los usuarios a los que les queramos dar permiso de acceso a través de SSH. Mi consejo es que no sean demasiados, a ser posible un único usuario, y que NUNCA sea administrador del equipo ni que pertenezca a dicho grupo. Es decir, que no tenga derechos de administración de la máquina.

Bueno, pues ya hemos añadido a los usuarios que van a tener la posibilidad de usar nuestro servidor. Vamos ahora a configurar los parámetros más importantes de nuestro servicio SSH.

Para ello, editamos el fichero que está en el directorio “etc” llamado sshd_config. Se pueden modificar un mogollón de parámetros, y hay todo un documento de ayuda en el directorio “docs” llamado sshd-config-manual.htm que os puede ayudar a “frikear” vuestro servidor. Yo os pongo los más importantes a usar/modificar, dejando en principio el resto tal y como viene de serie.

#nos vamos al directorio de configuración
cd /archivos de programa/openssh/etc

#editamos el fichero sshd_config
edit sshd_config

#modificamos los siguientes parámetros
o Port 22 ==> Este es el puerto que usará nuestro servidor SSH. Por defecto es el 22, aquí ya va a gusto del consumidor el modificarlo o no.
o Protocol 2 ==> Eliminamos la posibilidad de usar el protocolo 1 de SSH, pues era vulnerable a ataques.
o PermitRootLogin no ==> No permitimos que ningún administrador del sistema entre a través de SSH. Esto deberéis de ponerlo en yes si queréis permitirlo.
o StrictModes no ==> Este parámetro esta pensado para plataformas Linux/Unix/BSD. Es para el control de la propiedad de ficheros en el directorio /home. Sin embargo en Windows no tiene sentido, y se han detallado bugs por dejar esta opción tan y como viene por defecto en yes. Por tanto, lo pasamos a “no”.
o PermitEmptyPasswords no ==> Con esto le indicamos que no aceptaremos a usuarios cuya clave este vacía.
o UsePrivilegeSeparation no ==> Parecido a lo comentado con StrictModes. Es para prevenir que un usuario ejecute procesos con el UID de otro con más privilegios y así tomar control de la máquina. En windows esto obvia un poquito y no funciona demasiado bien, por tanto, lo desactivamos.
o Compression yes ==> Para activar la compresión de los datos y hacer más rápido por tanto el sistema, consumiendo menor ancho de banda.

Creo que con estas opciones tendremos un servidor bastante “sano” y “resultón”.

Con esto, terminamos la configuración del OpenSSH, que tampoco ha sido para tanto, verdad??. Ahora toca arrancarlo. Para ello, o bien lo hacemos a través de la ventana/herramienta de servicios (panel de control -> herramientas administrativas -> servicios), buscando ahora el servicio llamado OpenSSH Server y arrancándolo desde aquí (que por cierto, ya podemos comprobar que estamos aquí, que el servicio se encuentra en modo automático, y así sabremos si cada vez que iniciemos windows, podremos conectarnos a el a través de SSH), o bien a través de la consola de comandos con la sentencia:
net start opensshd

* TARARITO, LA SEGUNDA BOLA Y UN FULANITO

Tras esta cutre rima se inicia la fase 3 de nuestro proyecto; hemos avanzado bastante y tenemos el SSH ya listo para conectarnos con el. Ahora, vamos a preparar la segunda herramienta en el PC, el VNC.

Del VNC podríamos estar hablando muuuuucho tiempo, y hay muchas versiones, distribuciones sobre las mismas. Yo me voy a basar sobre la proveniente de la original, la REALVNC, y concretamente lo voy a hacer sobre la versión 3.3.7. Aunque ya existen versiones más modernas, a mí, la 3.7 es la que mejor “performance” me ha demostrado, y sólo existe un pequeño bug para mí totalmente espúreo, que se trata en que no es capaz de recuperar el fondo del escritorio cuando nos hemos desconectado. Si, si, la imagen de fondo. Visto que dicho bug es una tontería, procedemos a su uso. Bien es cierto que sois libres a usar otras versiones y/o distribuciones, yo simplemente os doy la noción de como implementarlo.

Así pues, echa esta consideración de inicio, nos descargamos el RealVNC Server versión 3.3.7. Para ello, usamos “aqueste” enlace:http://www.realvnc.com/dist/vnc-3.3.7-x86_win32.exe

A penas quinientos y pocos kb’s más tarde, tenemos un bonito ejecutable para poder instalar el RealVnc.

Tras varios “Next”, “Yes” y tal, llegamos hasta la fase donde nos pregunta el tipo de instalación (le diremos que full-install), y luego nos pregunta sobre tareas especiales a la hora de configurar la instalación. Las dos primeras opciones (Create desktop icon y create launch icon) podéis marcarlas o no según gusto. Respecto a las otras dos opciones, MARCAREMOS QUE SI a ambas.

Tiramos ‘pa lante, y poco después tenemos un bonito cuadradico blanco con unas coloristas letras VNC junto a nuestro reloj.
Sin embargo, como esto ha sido demasiado fácil, vamos a complicarlo un poco. Lo primero que haremos será asignarle un password a nuestro control remoto. Para ello, vamos con el botón derecho al recién creado cuadradico y seleccionamos la opción “properties”. En el recuadro password, ponemos la clave que queramos usar. Mantendremos “Enabla Java Viewer”, si a demás de a través de la PDA queremos conectarnos vía navegador Web (supongamos que estamos en un ciber). Podemos marcar la opción que queramos en “When Last Client Disconnects”, así como las opciones de “Connection Settings”, siendo muy interesante tener marcada la de “Remove Desktop Wallpaper”, pues los gráficos de fondo entorpecen mucho la transferencia de datos. Del resto no tocaría nada, y lo dejaría tal y como está. Podeis ver como lo tengo en la siguiente captura:

Sin embargo, aún nos falta un pequeño detallito freak para aumentar aún más la seguridad (paranoico que es uno, oiga). Con fin de evitar tener, tanto para la red local como para la red pública, el menor número de servicios y puertos abiertos en nuestro ordenador/servidor, vamos a hacer que el VNC sólo pueda ejecutarse desde la propia máquina local; es decir, a través del loopback. ¿Y para qué esto entonces?, muy sencillo, porque cuando nos conectemos mediante SSH y tunelemos el puerto del VNC, será como si la propia máquina se conectara a sí misma… Para ello, haremos uso del regedit, o bien, lo haremos aún más sencillo creando un fichero llamado “PCDEMANO.REG” donde meteremos el siguiente texto:

========================================================
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/ORL/WinVNC3]
“AllowLoopback”=dword:00000001
“LoopbackOnly”=dword:00000001

[HKEY_LOCAL_MACHINE/SOFTWARE/ORL/WinVNC3/Default]
“AllowLoopback”=dword:00000001
=========================================================

# ¿cómo lo hago fácil?, abre una consola de comandos y escribe:
notepad pcdemano.reg

# ahora se te abre un notepad y preguntará si crea un fichero nuevo, le dices obviamente que si. Copia y pega el texto que hay entre las líneas (es decir, desde la frase que empieza con Windows Registry hasta la línea donde esta el AllowLoopback último ambas inclusive). Cierra y guarda el contenido del notepad.

# ahora desde la misma consola que ejecutaste el notepad, escribe:
start pcdemano.reg

# te preguntará si aceptas la introducción de datos en el registro, y le dices que SI

# de vuelta a la consola, ya podemos borrar el fichero REG que hemos usado
del pcdemano.reg

# y listo!!!

También, los espabiladillos pueden hacerlo “a manubrio” desde el regedit; cada uno a su gusto señora!!!.

* ANSIOSOS POR LA PDA, TERCERA BOLA Y REMATANDO

Bueno, abandonamos ya el PC para centrarnos en nuestra querida y abandonada, al menos durante un buen rato, PDA. Asumiremos que ya tienes instalada en ella al menos, la versión demo del magnífico programa ya revisado llamado PocketTTY), así como uno de los innumerables visores de VNC (Yo uso el .net vnc viewer, que me parece que es el más rápido ). En mi caso concreto, me voy a conectar al PC a través de mi red local; si lo quisiérais hacer vía internet, lógicamente deberéis “natear” el puerto donde hayáis configurado el SSH (en nuestro ejemplo el 22) hacia la IP de vuestro equipo.
Así pues, tras arrancar el PockeTTY, nos vamos a “Session” y pulsamos “Connect”.

Seleccionamos New SSH2 Connection y luego pulsamos el botón Configure. Ponemos en Hostname, la IP (o en caso de tener servidor DNS el nombre) de nuestro equipo. En username, uno de los usuarios que creamos en su momento en el servidor de OpenSSH con el comando mkpasswd, en Port, ponemos el puerto configurado en el fichero sshd_config (en nuestro caso el 22).

Ahora pulsamos PortForward, que es el que usaremos para tunelar nuestro VNC. Damos al botón Add y nos pide una serie de datos, a saber:
Local Port: Aquí pondremos 5900
Remote host: Aquí pondremos la IP PRIVADA!!! de la máquina donde nos vamos a conectar; esto es importante, pues es exactamente igual que nos estemos conectando a través de internet o a través de la red local; aquí va la IP PRIVADA del equipo Windows.
Remote port: Aquí también ponemos 5900
Dejamos sin marcar la opción de “Allow access by non-local host”

Pulsamos OK y veremos algo parecido a lo siguiente:

Pulsamos a Done y estamos ya casi preparados para volaaaaar.

En este punto, volvemos a la pantalla de conexión. Marcamos la opción de Debug Messages por si no lo estaba (para ver lo que ocurre mientras intentamos conectarnos), y ahora ya podemos pulsar el botón de Connect.

Tras un ratico, y una pequeña espera en la verificación de las claves, nos pide el password para el usuario. Esta, lógico advertirlo, será la misma que atengas en el windows…

Una vez verificada la misma, ya estamos dentro de nuestro windows…

Podemos ahora, antes de seguir, aprovechar a grabar la sesión, para que la próxima vez no nos toque meter otra vez todos los parámetros. Para ello vamos a File -> Save Session y le indicamos nombre de fichero y localización del mismo. Así, para próximas veces, para conectarnos otra vez simplemente vamos a File -> Open Session, le indicamos el nombre anteriormente usado y listo…

Pues nada, ya tenemos conexión con nuestro PC, estamos conectados por SSH mediante consola, y ahora ya sólo nos falta el VNC.

Ejecutamos el VNCVIEWER sin cerrar lógicamente el pockeTTY, y dentro de todas las opciones que trae, nos vamos a limitar de momento a poner el Server y la clave; el resto lo dejo para vosotros y que veáis dichas opciones.

Así pues, donde pone Server pondremos localhost::5900, y donde pone password, pues la clave que le pusimos al vnc.

Si todo ha ido bien, os habréis conectado al PC, el cuadradillo del VNC se habrá vuelto negro, y tendéis control desde la PDA como es mi caso, donde podéis ver el original del documento que estáis leyendo…

* CON TRES PELOTAS ME QUEDO CORTO.

Pues con esto da finalizado el primero de los talleres dedicados al tunneling y control remoto. Seguro que han quedado muchos flecos sueltos por ahí, pero que se pueden ir completando a través de este link al foro.

En próximas jornadas, complicaremos un poco más el asunto, cambiando el uso de claves (password) por certificados (DSA), que hacen aún más seguro si cabe nuestro sistema de gestión remota…

Así pues, me despido hasta la CUARTA PELOTA… Besotes para tod@s…

Muchas gracias a Carlos… Cpasoft… “pequeño” saltamontes… pero “gran” amigo de PCDM.
Pharizna

NOTA IMPORTANTE: Por un problema con el PHP-NUKE… las “contrabarras” que separan los directorios, etc… aparecen como “barras normales /de dividir”. Como sóis muy inteligentes… vosotros mismos podéis usar vuestras neuronas y “ver” barras maricas / barras invertidas / contrabarras en donde aparecen como normales, especialmente en la parte en la que se habla de los cambios a realizar en el registro de Windows

769
Suscribirse
Notificación
0 Comments
Inline Feedbacks
Ver todos los comentarios
0
¡Aquí puedes dejar tus comentarios!x