Setup Synergy (Español)

/home/israel/setupsynergyes

Aqui explicare como configurar Synergy usando Windows XP como servidor y Linux Ubuntu como cliente comunicandose de manera encriptada por medio de SSH, *cough* Freak! *cough*.

Primero que nada, Isra, ¿Qué $%#& es Synergy (software)?

Synergy es una aplicación que realiza una conexión TCP entre dos equipos para que puedan ser controlados ambos con un teclado y un mouse (cliente - servidor), el servidor es donde esta conectado el teclado y el mouse, el cliente no tiene conectado nada.

¿Por qué SSH?

Bueno, estos equipos se conectan por medio de tu LAN y no quieres que vean en texto plano tus contraseñas, tal vez alguien desee realizar un ataque de "man in the middle" y ver nuestro trafico para sacar la contraseña de nuestra cuenta de Gmail :P.

Por lo cual, con SSH este trafico fluira libremente encriptado entre el cliente y el servidor haciendo dificil al posible atacante poder ver nuestro tráfico.

Entonces vamos a configurar todo rápido e indoloro (eso espero)...

Primero instalé y configuré synergy en Ubuntu (Client Mode):

PARTE LINUX

sudo apt-get install synergy(necesitamos tener activo nuestro repositorio universe).

Despues editamos el archivo /etc/gdm/Init/Defaulty agregamos las siguientes lines ANTES de xmodmap:

/usr/bin/killall ssh

sleep 1

/usr/bin/killall synergyc

sleep 1 

/usr/bin/synergyc --name[OurLinuxBox Name a.k.a. Hostname] [IP address]

Por ejemplo, 

/usr/bin/synergyc --name israelLinux 192.168.1.2

Editamos el archivo /etc/gdm/Init/PreSession/Default y agregamos las siguientes lineas ANTES de xsetroot:

/usr/bin/killall ssh 

sleep 1

/usr/bin/killall synergyc

sleep 1

Ok, ya nos podemos conectar al gdm utilizando Synergy, pero para seguridad necesitamos SSH, en una forma facil agregamos lo siguiente en Startup Programs:

System->Preferences->Sessions

En Startup Programs tab damos click en add e ingresamos lo siguiente...

Name: SSH Connection

Command: ssh -f -N -L 24800:[Server IP address]:24800 [Server IP address]

Comment: Connect using SSH

Donde Server IP address es la IP de la máquina Windows

i.e. ssh -f -N -L 24800:192.168.1.3:24800 192.168.1.3

Y despues agregamos el cliente de Synergy...

Name: Synergy

Command: synergyc localhost

Comment: Synergy Client

Ahora creamos las llaves SSH, esto por que no queremos conectarnos con usuario y contraseña de ssh, deseamos esto automagicamente...

Utilizamos el siguiente comando para crear las llaves (una por cada usuario):

israel@localhost$ ssh-keygen -b 1024 -f identity -P ' ' -t dsa

Donde identity es el archivo que contiene la llave SSH que va a ser utilizada después.

Bueno, hemos configurado la parte Linux ahora vamos a configurar Windows:

PARTE WINDOWS

En Windows necesitamos instalar Synergy y Cygwin:

Synergy es la parte fácil, solo lo instalamos, seleccionamos share this keyboard and mouse (Server), configuramos, agregamos el hostname de Linux y Windows, y agregamos los links dependiendo de nuestras opciones (configuración física):

Eso es todo para Synergy, ahora Cygwin...

Parte "pirateada" de Cygwin SSHd

Creamos un folder en c:\cygwin y bajamos el instalador ahi

Executamos el instalador

Cuando nos pregunte "Local Package Directory", escribimos c:\cygwin

Escogemos el sitio para bajar más cercano a nosotros. Cuando aparezca una pantalla de selección (podemos cambiar de tamaño la pnatalla para ver mejor), damos click en View para "Full" view.

Buscamos el paquete "openssh", click en "skip" para que aparezca en la columna B,

Buscamos el paquete "tcp_wrappers", click en "skip" para que aparezca en la columna B,

Buscamos el paquete "zlib", click en "skip" (debe de estar seleccionado) para que aparezca en la columna B.

Click en start para instalar cygwin y ssh.

El tamaño básico del sistema cygwin es más de 40 Meg, dependiendo de tu conexión tardara.

Damos click derecho en My Computer, Properties, Advanced, Environment Variables 

Click en el botón "New" para agregar una nueva entrada en System variables

nombre de la variable es  CYGWIN

valor de la variable es ntsec tty

Click derecho en My Computer, Properties, Advanced, Environment Variables 

Seleccionamos la variable Path y damos click en el botón "Edit": 

Agregamos  ;c:\cygwin\binal final de la cadena de variables.

Para Windows XP, pabrimos una ventana de cygwin dando doble click al iconog

Para Windows Vista , rdamos click derecho en el icono g y seleccionamos "run as administrator"; 

Una pantalla negra aparecera, escribimos ssh-host-config (en computadoras "lentas", puede tomar varios minutos para generar las llaves de seguridad dsa)

Cuando el script pregunte sobre "privilege separation", contestamos yes

Cuando el script pregunte sobre "create local user sshd", contestamos yes

Cuando el script pregunte sobre "install sshd as a service", contestamos yes

Cuando el script termine y pregunte por "CYGWIN=" la respuesta es ntsec tty

See Note 25 near the end of this web page if you need to run ssh-host-config again.

Aun estando en la pantalla (black) cygwin, iniciamos el servicio sshd, escribimos

net start sshd 

ó 

cygrunsrv  --start  sshd

Nos aseguramos que cada usuario deWindows tenga un password asignado, si no,

vamos a Control Panel....User Accounts en create password.

Nos aseguramos que cada usuario de Windows ha realizado lo siguiente por lo menos una vez:

Entrar como usuario de Windows, abrir una consola de command prompt por Start...Run....

Abrir Cygwin g, homologar la información del usuario Windows con Cygwin, de otra forma no se podran firmar

mkpasswd   -cl   >   /etc/passwd

mkgroup   --local    >   /etc/group

Ahora que tenemos instalado sshd en Windows, hay que recordar que el archivo identity contiene la llave SSH de nuestro equipo Linux, entonces ponemos esa información en el archivo authorized_keys bajo...

C:\cygwin\home\[username]\.ssh i.e. C:\cygwin\home\israel\.ssh

Importante: En Synergy hay que ir a Autostart y dar click en install donde dice When computer starts, synergy iniciara antes de que solicite el usuario y contraseña.

Y eso es todo, cada vez que encendamos nuestros equipos se conectaran entre si para poder utilizar un solo teclado y un solo mouse con comunicación encriptada.

Espero esto le pueda servir a alguien.