RDesktop
RDesktop es un cliente para el protocolo RDP de Microsoft que está bajo la licencia GNU/GPL y está disponible para los sistemas de origen *nix, por lo que es compatible con los actuales Unix (BSD) y Linux.
Desde Julio de este mismo año, trae implementadas muchas opciones del protocolo RDP 5. Además tiene características sin análogo directo en el cliente RDP oficial de Microsoft, como es:
- Modo “seamless” (que consiste en mapear las ventanas del lado del servidor al entorno X11 uno-a-uno).
Una pena para RDestkop, es que aún están sin implementarse las solicitudes de asistencia remota, ya que el protocolo para ello permanece sin documentar, y la redirección de los dispositivos USB.
RDesktop normalmente es usado en los diferentes Linux para conectar con máquinas Windows que tienen funcionando Terminal Services. El programa también ha sido integrado en muchas distribuciones de tipo “thin client” como Thinstation.
Bueno, la introducción siempre es necesaria para saber de qué estamos hablando, pero ahora lo que necesitamos es hacerlo funcionar y ver las diferentes opciones que nos ofrece. Por regla general, deberíamos tenerlo instalado de forma predeterminada cuando instalamos Mandriva, pero sino, buscando RDesktop en el CCM o en la consola lo encontraremos.
Para ejecutarlo es bien sencillo. Acudimos a la consola y tecleamos:
rdesktop [opciones] servidor[:puerto]
Las opciones las tenemos disponibles consultando la ayuda (# rdesktop –help). Entre ellas:
-u: user name
-d: domain
-s: shell
-c: working directory
-p: password (- to prompt)
-n: client hostname

Categoria: Acceso remoto | Dejar un comentario
Coversor de imágenes desde consola
Hace unos días, tuve que redimensionar 115 imágenes al mismo tamaño y claro, no era una opción abrir 115 imágenes con GIMP y pulsar otras tantas veces los botones de redimensionar, ponerlas a 800×600 y despues guardar y confirmar, así que me puse a buscar por ahí algun conversor, porque sabía que tenía que haberlos.
La solución llega de manos de ImageMagic. Se trata de un programa para la consola, que además dispone de algunas interfaces, en el que podemos realizar esta conversión de forma automática, pero no sólo eso, sino que podemos realizar muchas más operaciones. como ajustar colores, escalar, rotar, realizar una conversión en espejo, etc.
Según su página, puede leer, convertir y crear imágenes en una gran variedad de formatos (alrededor de 100) incluyendo DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF.
La instalación de este programa es tan sencilla como acudir a su web pinchando aquí y seleccionar el binario que más se adapte a nuestra arquitectura de ordenador. Para Mandriva tengo que decir que sirve con el .rpm de Fedora Core 8, por lo que la compatibilidad es completa. De todas formas, como vien dice Voltorz en el primer comentario, también disponemos de la aplicación en los repositorios de Mandriva, por lo que yendo al CCM o por consola lo podemos instalar:
# urpmi imagemagick
Para convertir formatos podemos usar algo tan sencillo como:
convert image.jpg image.png
Personalmente usé para realizar tanta conversión de fotos el comando:
convert *.jpeg -size 800x600 mini-.jpeg
Automáticamente, ImageMagic redimensiona todas las fotos (realmente los archivos acabados en .jpeg) en archivos de 800×600, pero os preguntaréis… ¿Y qué queda del nombre? Pues bien, el programa automáticamente establece un contador interno que lo que hace es autoincrementarse con cada operación. Esto quiere decir que las fotos tendrían el nombre: mini-0.jpeg, mini-1.jpeg, y así sucesivamente.
Es interesante visitar la página de ejemplos de uso para tener una idea de todo lo que se pude hacer con esta maravilla en comandos… o de forma gráfica. En una entrada futura analizaré las diferentes interfaces para el usuario que hay, pero de momento, os dejo que hagáis los frikis un rato convirtiendo imágenes.
Categoria: Acceso remoto, Programas útiles | 6 Comentarios
Wake on LAN/WAN
Hoy en día hay mucha gente que tiene en casa un ordenador conectado a Internet casi siempre encendido y al que se puede acceder desde cualquier lugar, normalmente por SSH y por VNC. En muchos casos, es bastante normal que además de ese ordenador siempre encendido se tenga algún otro que sólo se enciende cuando se está en casa.
Pero hay veces que, estando lejos, nos puede interesar encender ese otro ordenador de forma remota porque necesitamos un fichero que tenemos en él o necesitamos hacer algo en él. El problema viene porque WoL, como su nombre indica es en LAN, y esto quiere decir en red local. Lo que voy a explicar es como conectar el ordenador para poderlo enchufar desde cualquier sitio, lo que en idioma mundano es Wake on WAN.
La tarjeta de red permite quedarse dormida mientras el PC esta apagado completamente. Un software envía una señal a ese PC y la tarjeta de red, que esta conectada a la placa base, enciende el PC. Para apagarlo simplemente ingresáis por SSH y hacéis un poweroff desde la consola.
Actualmente todas las placas y tarjetas de red van preparadas para quedarse en stand-by. También las fuentes de alimentación, por lo que a no ser que el ordenador en cuestión tenga unos 15 años, no habrá problema ninguno.
Lo primero que tenemos que hacer es configurar la bios para permitir dejar la tarjeta de red en espera. En la bios, buscaremos mensajes del estilo de “Power-on by External Modems”, “Power On by PCI Devices” o el “Power On by PCI Cards”. Además posiblemente veréis una opción “Wake on Lan” que tendréis que poner a Enabled.
Una vez hecho esto ya no tenemos que volver a tocar nada a tan bajo nivel. Todo lo que queda son un par de configuraciones básicas.
El paso de ahora es bastante sencillo. Primero, tenemos que asegurarnos que la targeta de red tiene la opción de Wake on Lan activada.
Antes de nada nos hace falta tener instalados un par de paquetes:
# uprmi ethtool wakeonlan
Para saber si la tarjeta tiene el modo Wake-on activado, tendremos que hacer:
# ethtool eth0

En la imagen vemos como la opción Wake-on esta en modo “d”, que quiere decir disabled, por lo que tendremos que activarla:
# ethtool -s eth0 wol g
Con esto ya tendríamos activada la tarjeta y podríamos arrancar el ordenador remotamente. Antes de deciros cómo hacerlo, quiero comentaros un problema muy común.
Como comentaba antes, el problema más común es que al iniciar el ordenador, la tarjeta de red vuelve a poner Wake-on a su estado natural, que suele ser disabled. Para evitar esto, vamos a colocar la sentencia anterior en forma de script para que lo ejecute en el runlevel 0, osea, cuando el ordenador se apaga, de forma que nos aseguramos de que funcione. Nos colocamos en la carpeta /etc/init.d/ y hacemos:
# nano wol
Script:
#!/bin/bash
ethtool -s eth0 wol g
Este fichero lo guardamos con Ctrl+Alt+x y creamos un enlace simbólico dentro de /etc/rc0.d/:
ln -sf /etc/init.d/wol /etc/rc0.d/S00wol
Esto genera un enlace simbólico al archivo ”wol”. El enlace lo he llamado S00wol por varias cosas. S indica al sistema que se trata de un script de arranque, el 00 es el orden. Me fijé en que existía 00killall, por lo que yo quería que mi script se ejecutase a continuación de este. Por eso 00 y a continuación el nombre: wol.
Otro problema es el de no acordarse de abrir los puertos pertinentes, en este caso el puerto 9. Y otro es no redireccionar el puerto 9 de nuestra IP externa al puerto 9 de nuestra IP interna. Siempre deben hacerse estos pasos.
Para arrancar el ordenador de forma remota, sólo tenemos que ejecutar la siguiente orden:
# wakeonlan XX:XX:XX:XX:XX:XX
Las XX:XX:XX:XX:XX:XX se trata de la MAC de nuestra tarjeta de red, que podemos saber haciendo ifconfig eth0, en el caso de que nuestra tarjeta esté configurada como eth0.
Con esto conseguimos arrancar en red local, (LAN) pero, ¿y si queremos hacerlo desde internet?
La solución es sencilla; nos descargamos de aquí una aplicación Windows (en tener tiempo creo un script en PHP para esta web) que ejecutándola con Wine nos aparece esto:

Como antes, las XX-XX-XX-XX-XX-XX es la dirección MAC de la tarjeta de red (antes se separaba con dos puntos (:) ahora con un guión (-)). Lo siguiente es nuestra IP externa, que podemos consultar haciendo la búsqueda pertinente en Google. Lo tercero es la máscara de subred, que pondremos a 255.255.255.255 siempre. Por último el puerto 9 y pulsamos “Wake me up”.
Categoria: Acceso remoto | 4 Comentarios
FreeNX y NXServer
NX es un programa informático que realiza conexiones remotas X11 muy rápidas, lo que permite a los usuarios acceder a escritorios remotos de Linux o Unix incluso bajo conexiones de 56k. Trabaja por el puerto 5000, cosa que no hay que olvidar a la hora de abrirlo en el firewall de Mandriva.
El tráfico del servidor X se comprime y transmite por SSL usando una conexión SSH que puede ser resumida automáticamente en caso de ser interrumpida. Es por esto que es más veloz que VNC.
Realiza una eficiente compresión del tráfico X, lo que permite ejecutar aplicaciones tanto entre redes externas como entre ordenadores en una LAN. También utiliza mecanismos de cache para almacenar y reusar la información transferida entre cliente y servidor. NX utiliza un método de cache innovador que divide el mensaje X en dos partes, uno de identificación y otro de datos.
El tiempo consumido en realizar roundtrips es prácticamente nulo. Además utiliza un algoritmo de codificación perezoso para las actualizaciones de pantalla.
En la red existe una pequeña confusión acerca de FreeNX. Pues esta aplicación es libre (despues de la apertura del código por parte de NoMachine). Esta empresa posee una aplicación servidor propia y es la que suministra el cliente mas utilizado. La diferencia entre el servidor libre y el de NoMachine, radica en que el primero no tiene los asistentes y facilidades del segundo, y no tiene soporte.
Ambos están disponibles para Debian (y familia), Centos, Fedora (y familia Red Hat), Mandriva, Gentoo, FreeBSD, Solaris (SPARC).
La instalación es bastante fácil en los dos. Por ejemplo en el software de NoMachine. La dirección es: http://64.34.161.181/download/3.1.0/Linux/# wget nxclient-3.1.0-6.i386.rpm
# wget nxnode-3.1.0-6.i386.rpm
# wget nxserver-3.1.0-5.i386.rpm
Instalamos:# rpm -i nxclient-3.1.0-6.i386.rpm
# rpm -i nxnode-3.1.0-6.i386.rpm
# rpm -i nxserver-3.1.0-5.i386.rpm
Una vez instalado todo a la perfección toca configurar el cliente. Por defecto usa la clave publica/privada de NoMachine. Esto atenta seriamente a la seguridad, lo ideal es importar las claves publicas que genera para los clientes; así sólo tenemos que copiarlas mediante sftp o scp y cargarlas:
Para generar la clave:# /usr/NX/bin/nxserver --keygen
Importamos la clave de la máquina remota a la nuestra:# sftp usuario@host
# get /usr/NX/share/keys/default.id_dsa.key /home/usuario/
Una vez hecho esto solo queda configurar el tipo de la sesión, y conectarnos:
Nombre de sesión y máquina a la que nos conectaremos
Configuramos la sesión e importamos la clave con: Key -> Import (Buscamos el directorio donde la habíamos copiado mediante SFTP)
FreeNX conectandose
Categoria: Acceso remoto | Dejar un comentario
VNC
VNC (Virtual Network Computing, realvnc.com) es un software cliente-servidor que permite compartir una sesión gráfica mediante el protocolo RFB (Remote framebuffer). El escritorio compartido puede ser la pantalla actual o un nuevo escritorio:
- Compartir un nuevo escritorio sirve para que varios usuarios puedan trabajar en el servidor desde sus propias máquinas simultáneamente, en un entorno gráfico.
- Compartir la pantalla actual es muy útil, por ejemplo, para mostrar a un técnico un problema remotamente o para que un profesor comparta su pantalla con los alumnos.
Trabaja por el puerto 5900, cosa que no hay que olvidar a la hora de abrirlo en el firewall de Mandriva. Por defecto VNC ya viene instalado en el sistema, en caso de que no fuera así simplemente usaríamos el gestor de paquetería que más nos guste ara hacer la instalación:#urpmi vncAntes que nada convendría repasar teóricamente para que sirven algunos archivos que vamos a usar mas tarde:
- Xvnc: servidor X VNC, es más conveniente que la llamada a este programa se haga a través del script “vncserver”.
- vncviewer: cliente de VNC con el que se visualizan los escritorios para poder modificarlos.
- vncpasswd: programa para cambiar la clave de acceso a los escritorios.
- vncconnect: para conectarnos a un servidor VNC.
- vncserver: script en Perl que arranca el servidor X VNC. En la primera llamada por usuario y máquina ejecuta “vncpasswd”, para establecer la clave de acceso a dichos escritorios.
Antes de acceder tenemos que configurar el archivo xstartup. Por defecto VNC carga solo el entorno X-Window, por lo que si lo que queremos es que nos muestre nuestro ordenador tal como está, con la sesión en el entorno de escritorio que queramos, sea KDE o Gnome, tendremos que descomentar las primeras dos líneas:unset SESSION_MANAGERLa utilización de VNC es bastante sencilla. Para abrir una nueva sesión sólo tenemos que poner:
exec /etc/X11/xinit/xinitrc# vncserver :1
Esto nos creará una sesión del escritorio en el display:1, por lo que si queremos acceder a nuestro sistema, lo deberemos hacer hacia aquí. En caso de que quisiéramos modificar los parametros por defecto:# vncserver :1 −name xesco −depth 16 −geometry 640x480Para matar el proceso, y con ello el display:# vncserver -kill :1Para entrar al escritorio en remoto tenemos que hacerlo desde vncviewer:# vncviewer :1
Hasta ahora hemos accedido de forma remota a un display creado por nosotros, pero no es la sesión que está manejando el usuario, la cual se encuentra en display:0. Para conectarnos al dislplay:0, cosa realmente útil si lo que queremos es asistir remotamente, tendríamos que crear la contraseña de la sesión a la que queremos acceder y copiarla en el directorio /home/ Al principio aparecerá una pantalla de configuración. Solo aparecerá una vez, por lo que las demás veces cogerá la configuración que lo hayamos dado. Ahora por fin podemos conectarnos desde la máquina que queramos a nuestro ordenador remoto, de la misma forma que antes: Esto es lo que pasa cuando ejecutamos VNC sobre el display en uso (:0) siendo el ordenador de acceso el mismo que al que queremos acceder Puede haber casos en los que el equipo remoto no pueda o no sepa abrir el puerto necesario para la conexión. Existe una forma de hacer una conexión invertida, es decir, que el usuario remoto nos lance su escritorio al nuestro y no que nosotros lo pidamos. Antes que nada el ordenador con el que queremos acceder, debe estar en modo esucha: Categoria: Acceso remoto | 1 Comentario Basado en el post hermano de Entre tuxes y pepinos. SSH son las siglas de Secure SHell. Lo que te ofrece es una consola en un ordenador remoto con los privilegios que tenga la cuenta con la que conectes. Se trata de un protocolo de acceso remoto que permite copiar datos de forma segura, pasar datos de cualquier aplicación mediante tunneling con SSH. Y todo esto con encriptación de datos. Trabaja por el puerto 22, cosa que no hay que olvidar a la hora de abrirlo en el firewall de Mandriva. Los archivos de configuración que se ocupan de SHH, son: Nosotros sólo necesitamos retocar el primero. Puede ser que venga ya instalado y solo tengáis que ir al Centro de Control de Mandriva para abrir los puertos, pero por si no lo estuviera, como root ejecutamos: La parte descomentada es la que se ejecutará de forma predeterminada. Ahora nosotros vamos a configurar el archivo para tener unas mínimas condiciones de seguridad en cuanto a proteger el acceso por usuario. El acceso por clave pública/privada lo veremos más adelante. Cambiaremos el puerto para evitar los robots que atacan directamente al de SSH. Esto no quita que el caco pueda intentar averiguar “el portal” si sabe cómo hacerlo, pero al menos, le ponemos impedimentos. También hay scripts que atacan directamente el puerto 22, por lo que el cambio de puerto es algo obligatorio. Para esto pondremos la variables siguientes en el archivo anterior: La generación de una pareja de claves pública-privada se realiza ejecutando en el cliente ssh-keygen. Nos dará la opcion de crear una palabra de paso aunque en caso de pulsar intro nos creará una en blanco, la cual no nos será requerida cuando accedamos. Las claves se almacenan por defecto en ~/.ssh/, quedando el directorio así: Los ficheros id_rsa e id_rsa.pub contienen respectivamente las claves privada y pública. El fichero known_hosts contiene la lista de las claves públicas de las máquinas reconocidas. Ahora se debe copiar la clave pública al fichero ~/.ssh/authorized_keys de cada usuario que vamos a usar, dentro del servidor al que queremos acceder. Para ello se utiliza el comando ssh-copy-id: Ahora la conexión debería funcionar sin necesidad de introducir la clave. Si no es así es posible que sea un problema de permisos en los ficheros. Los permisos correctos deben ser similares a estos: CP viene junto a SSH, y se trata de una herramienta para transmitir archivos y directorios entre ordenadores de forma remota. La sintaxis es muy simple teniendo las mismas opciones que SSH, las cuales hereda. El modo de empleo sería el siguiente en caso de que queramos copiar archivos de nuestro ordenador al remoto: El protocolo de transferencia de archivos SFTP es un protocolo de red que proporciona la transferencia de archivos y la funcionalidad de manipulación de datos fiables sobre cualquier secuencia ya que los datos circulan cifrados por la red. Se utiliza normalmente con SSH a fin de asegurar la transferencia de archivos. Categoria: Acceso remoto | Dejar un comentario# vncpasswd ~/.vnc/passwdUna vez hecho esto, sólo queda habilitar el servidor VNC en el display 0. Es necesario mantenerlo en ejecución, de ahí el ”&”.:# x0rfbserver &

# vncviewer :0
# vncviewer -listen &Ahora es cuando vamos a hacer que el ordenador al que queremos acceder, nos mande la petición. Para esto emplearemos un paquete llamado x11vnc (# urpmi x11vnc). La sentencia queda de la siguiente forma:# x11vnc -connect ip:puertoLa IP será la de nuestra máquina (la que controlará a la otra) y el puerto sólo será necesario si la conexión se realiza a través de Internet, de ser así además la IP debe ser la pública. Si es una conexión en una red local, se trata de la IP privada.SSH
- sshd_config (Para los servidores)
- ssh_config (Para los clientes)# urpmi opensshEsto automáticamente nos instalará las dependencias openssh-clients y openssh-server. Una vez instalado pasamos a la configuración del sistema. En el archivo sshd_config, que se encuentra en /etc/ssh/, encontraremos un apartado con lineas comentadas y otras descomentadas tal que así:#Cambiamos el puertoRespecto a las opciones de autentificación, encontramos dos. La primera es el número de segundos que tendrá el usuario remoto para hacer login en tu máquina. Como no deberíamos tardar mucho en hacer login si sabemos la cuenta y la password, vale la pena poner un valor pequeño. De esta forma evitamos ciertos scripts que se aprovechan de ese tiempo.
Port 9918
#Especificamos que use el protocolo versión 2
Protocol 2LoginGraceTime 15Otra opción fundamental que tenemos que desactivar es permitir el acceso en modo “root”. Si queremos usar comandos de administrador, o instalar algun paquete o cualquier cosa para la que necesitemos ese tipo de permisos, lo podemos hacer mas tarde estando ya dentro del sistema remoto, con el comando “su”.PermitRootLogin noTambién podéis señalar con el dedo las cuentas que tienen permitido el uso SSH (AllowUsers). Esto es muy útil para restringir el uso de SSH en el acceso a nuestra cuanta a quien nosotros queramos. Además de restringir el acceso de esta forma, también se puede hacer mediante la IP desde donde nos vamos a conectar.AllowUsers mandriva amigoQuien intente conectar debe acordarse de su login y password, por lo que es tontería darle un número grande de intentos. En principio con dos son más que suficientes. Si al segundo intento no lo ha conseguido se cortará la conexión SSH. Siempre se puede volver a conectar y reintentarlo, pero así nos quitamos de encima ciertos scripts que intentan encontrar el login por fuerza bruta a base de ensayo y error.
AllowUsers nuestra_cuenta cuenta_amigo@IP_amigoMaxAuthTries 2Otra opción interesante es marcar un máximo de conexiones simultáneas. En nustro caso al ser 5 personas en el grupo de SO, vamos a configurarlo para poder entrar todos al mismo tiempo.MaxStartups 5Ahora solo queda reiniciar el servicio ssh para que los cambio se apliquen:# service sshd restartSSH tiene infinitas opciones de configuración y de ejecución, si queréis ampliar más es conveniente mirar el manual (# man ssh).# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub user@machine1ssh-copy-id es un script que se conecta a la máquina y copia el archivo (indicado por la opción -i) en ~/.ssh/authorized_keys, y ajusta los permisos a los valores adecuados.
# ssh-copy-id -i ~/.ssh/id_rsa.pub user@machine2# chmod go-w $HOME $HOME/.sshPara poder acceder al servidor desde cualquier cliente, debemos copiar los ficheros id_rsa e id_rsa.pub dentro de ~/.ssh/ de la cuenta de usuario de cada cliente desde el que queramos realizar la conexión hacia el servidor. Además de esto, en el archivo sshd_config debemos habilitar las opciones de acceso mediante clave publica/privada:
# chmod 600 $HOME/.ssh/authorized_keysRSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys# scp archivo usuario@servidor.com:rutaY para copiar a la inversa, desde el computador remoto al tuyo, simplemente tienes que invertir el orden de los elementos:# scp usuario@servidor.com:ruta/archivo ruta_localPara mandar carpetas completas se puede emplear el siguiente comando# scp -r carpetaSO/ usuario@host:/carpeta_padreLa forma inversa sería exactamente igual a la de los archivos, solo que cambiaríamos el susodicho por una carpeta:# scp -r usuario@host:/carpeta_padre/carpetaSOSi queremos copiar el contenido de la carpeta pero no la misma, la sintaxis es:# scp carpetaSO/* usuario@host:/carpeta_padre/carpetaSOHay que decir que por defecto la ruta a la que copia es en /home/usuario, así que en caso de querer copiar archivos allí podemos omitir la ruta, pero no los dos puntos:# scp fichero.txt usuario@host:# sftp usuario@hostImplementa muchas de las opciones que tenemos por defecto en consola. Para copiar datos tenemos el método put, y para importar tenemos get:# get [-P] /ruta/remota/del/archivo /ruta/local/del/archivo# put [-P] /ruta/local/del/archivo /ruta/remota/del/archivo-P Cuando esta opción está presente, copiará todos los permisos y accesos del archivo.





