Seguridad en OpenSSH: adiós a las contraseñas

23 08 2007

Adiós… o al menos parcialmente, para aquellas personas que accedemos diariamente por SSH a una o varias máquinas en las que tenemos que introducir gigantes contraseñas para identificarnos, o para los que busquen un poco más de seguridad en sus servidores a la vez que comodidad.

Lea el resto »



VPN con KAME IPsec y kernel 2.6

19 08 2007

En el blog de Jaume veo un artículo muy interesante sobre la implementación de una VPN utilizando KAME IPSec y Kernel 2.6.

Les recomiendo su lectura.



VPNC - Cliente de VPN Libre

6 08 2007

VPNC es un cliente de VPN totalmente libre y que funciona contra las siguientes plataformas:

* Cisco VPN concentrator 3000 Series
* Cisco IOS routers
* Cisco PIX firewalls
* Juniper/Netscreen

Lea el resto »



Guía rápida de comandos Unix/Linux

3 08 2007

A veces, sobre todo para los que están esperando con GNU/Linux, es interesante disponer de una guía rápida de los principales comandos que agilicen nuestro trabajo. En FOSSwire.com han diseñado una guía rápida de comandos Unix/Linux que me he permitido traducir al castellano por si a alguien le resulta útil. Lea el resto »



iptables y NAT para vagos

13 07 2007

A pesar que en Bulma hay varios artículos explicando estos temas, es una pregunta recurrente en la lista Bulmailing. Además no se suelen usar las características, muy buenas, de control de conexiones del netfilter. Aquí doy un par de ejemplos concretos, especialmente preparados para los vagos que no se leen ningún tutorial :-)

En nuestros ejemplos vamos aprovechar las capacidades de control de conexiones que tienen las iptables. Primero, hay que tener en cuenta que el forwarding debe estar habilitado:

echo 1 > /proc/sys/net/ipv4/ip_forward

Y también recordar que para cambiar las reglas, primero hay que “borrar” las anteriores, por ejemplo:

iptables -F
iptables -t nat -F

Ahora veremos ejemplos particulares, en todos los ejemplos suponemos que las direcciones de nuestra red privada son 192.168.0.0/24 (es decir la máscara es de 24 bits: 255.255.255.0)

Sólo quiero hacer masquerading de una IP asignada dinámicamente

Caso común para un Linux que obtiene direcciones dinámicas de su proveedor de Internet, en el ejemplo lo doy con la interfaz ippp0, que es la que se usa para RDSI, pero podéis sustituirla por caulquier interfaz que uséis (eth0, ppp0…).

Además de hacer el NAT, vamos a permitir el tráfico ICMP (de los pings…) ya que está recomendado que así funcione. Veremos que las última 3 reglas, que no son obligatorias, peri os las recomiendo, lo que haces es descartar cualquier paquete que no sea de uina conexión previamente establecida.

# Habilito el NAT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQUERADE
# Dejo pasar los paquetes ICMP
iptables -A INPUT -i ippp0 -p ICMP -j ACCEPT
# Acepto paquetes de conexiones ya establecidas
iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
# Rechazamos paquetes de conexiones nuevas
iptables -A INPUT -i ippp0 -m state --state NEW,INVALID -j DROP
# Rechazamos paquetes de forwarding de conexiones no establecidas
iptables -A FORWARD -i ippp0 -m state --state NEW,INVALID -j DROP

Pero también quiero permitir conexiones entrantes SSH y HTTP

Eso es fácil, antes de las últimas reglas “DROP” hay que poner unas que permitan las conexiones nuevas a esos puertos. Las reglas nos quedan de la siguiente forma:

# Habilito el NAT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQUERADE
# Dejo pasar los paquetes ICMP
iptables -A INPUT -i ippp0 -p ICMP -j ACCEPT
# Permito conexiones al puerto 80 (HTTP)
iptables -A INPUT -i ippp0 -p TCP --dport 80 -m state --state NEW -j ACCEPT
# Permito conexiones al puerto 22 (SSH)
iptables -A INPUT -i ippp0 -p TCP --dport 22 -m state --state NEW -j ACCEPT
# Acepto paquetes de conexiones ya establecidas
iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
# Rechazamos paquetes de conexiones nuevas
iptables -A INPUT -i ippp0 -m state --state NEW,INVALID -j DROP
# Rechazamos paquetes de forwarding de conexiones no establecidas
iptables -A FORWARD -i ippp0 -m state --state NEW,INVALID -j DROP

Si queréis “abrir” otros puestos, sólo tenéis que agregar esas nuevas reglas.

Tengo dirección IP fija, ¿como lo hago?

Es muy fácil, en vez de usar masquerading, vamos a usar una solución mejor: source NAT. Sólo hay que cambiar la regla del nat (la primera en los ejemplos anteriores). Si la interfaz que tiene la IP fija es la eth0, y la IP fija es la 111.111.111.111, nos quedaría:

# Habilito el SNAT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 111.111.111.111
# Dejo pasar los paquetes ICMP
iptables -A INPUT -i eth0 -p ICMP -j ACCEPT
# Permito conexiones al puerto 80 (HTTP)
iptables -A INPUT -i eth0 -p TCP --dport 80 -m state --state NEW -j ACCEPT
# Permito conexiones al puerto 22 (SSH)
iptables -A INPUT -i eth0 -p TCP --dport 22 -m state --state NEW -j ACCEPT
# Acepto paquetes de conexiones ya establecidas
iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
# Rechazamos paquetes de conexiones nuevas
iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
# Rechazamos paquetes de forwarding de conexiones no establecidas
iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP

Vale, pero ahora quiero redireccionar las conexiones a un puerto hacia un ordenador interno de mi LAN

Esto se llama destination NAT es bastante sencillo, sólo hay que poner una regla adicional. Por ejemplo, si queremos redireccionar las conexiones al puerto 80 hacia el puerto 80 de un ordenador en la red interna (192.168.0.111).

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.111:80

Otro ejemplo sencillo y muy útil, redireccionar el puerto 2022 del ordenador haciendo de NAT o firewall hacia el puerto 22 (ssh) de un ordenador de la red interna.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2022 -j DNAT --to 192.168.0.111:22

Voilà, funciona. También podéis leer los Howtos y tutoriales, que están hasta en castellano.

Fuente: http://bulma.net/body.phtml?nIdNoticia=1522

Nota: Este artículo es bastante antiguo, pero me ha sido muy útil varias veces por lo que quería postearlo aquí.



Instalar Beryl en Feisty+NVIDIA+AIGLX

13 07 2007

En mi caso al menos, tras instalar una nueva versión de Ubuntu lo primero que hago es instalar Beryl. El motivo es que sus plugins son tan prácticos que lo primero que hago en cuanto estoy en mi escritorio y abro un par de aplicaciones o ventanas es desplazarme por ellos con un movimiento de ratón, o ver todo lo que tengo abierto con otro.

Vamos a ver cómo de fácil se ha convertido el meter el driver propietario de NVIDIA y la posterior instalación de Beryl.

Recordemos que una de las novedades de las que podía presumir Feisty Fawn en relación a Edgy Eft era la facilidad de instalar los drivers restringidos (no libres) de ciertos componentes hardware como pueden ser nuestra tarjeta de red inalámbrica o nuestra tarjeta de vídeo, dos drivers que prácticamente todos acabamos instalando por un motivo u otro.

Para poder ejecutar Beryl correctamente necesitamos tener previamente configurada la tarjeta de vídeo con su aceleración gráfica. Recordad que Beryl hace uso de la GPU (es el procesador de la gráfica) para no saturar la CPU (el procesador de nuestro ordenador) y así hacer el equipo más liviano en sus tareas.

Así pues dividiré este tutorial en dos secciones:

1. Instalar el driver de NVIDIA

Los que hayáis metido este driver en otra versión de Ubuntu, aunque no era difícil, sabréis que llevaba cierto tiempo y lo que es peor, era algo complicado para los novatillos: consola, parar las X, instala los headers y los build, instala el driver, bla bla bla…

Esto es parte del pasado. ¿Qué tenéis que hacer para instalar el driver propietario de NVIDIA y activar la aceleración?

Vete a Sistema > Administración > Gestor de Controladores Restringidos

Tras meter tu clave verás una ventana como esta:

Entre todos los controladores (como por ejemplo la tarjeta WIFI si tenéis) veréis el “Controlador para tarjetas gráficas NVIDIA” como sale en la captura anterior, sólo que la casilla sin activar y la luz en rojo en lugar de en verde.

Lo único que tenéis que hacer es hacer click en la casilla de verficación. Después automáticamente se descargará e instalará el driver y os avisará que tenéis que reiniciar para que se realicen los cambios. De hecho veréis en el panel, cerca del reloj un nuevo icono con un círculo compuesto por flechas. Es un indicativo de que se ha hecho algo que precisa de reiniciar. Pinchad y hacedlo.

Tras reiniciar si queréis volved a abrir el Gestor de controladores restringidos para comprobar que ahora sí tenéis la casilla habilitada y la luz en verde. Si es así, enhorabuena, habéis instalado el driver de NVIDIA. Fácil, ¿no?

Instalar Beryl

Antes, lo que más costaba para tener Beryl era el paso anterior, sin embargo como habéis visto, ya no resulta tan difícil. Podría poneros las pocas líneas que tenéis que escribir para instalar beryl y listo, pero soy de los que piensan que no hay mejor forma de aprender que saber lo que se está haciendo, así que en cada paso añadiré una pequeña descripción de lo que estamos haciendo.

Lo primero que hay que hacer es añadir los repositorios de beryl para que nuestro sistema sepa dónde buscarlo para instalarlo. Para los novatos, los repositorios son como unas URL donde el sistema busca las aplicaciones a instalar. Digamos que esas URL son las que nos dan acceso a nuestros proveedores de software.

Abrimos un terminal: Alt + F2, escribimos dentro gnome-terminal y le damos a enter. O bien en Accesorios > Terminal.

Una vez dentro tenemos que añadir el repositorio al archivo que los contiene todos. Escribimos en consola:

$ sudo gedit /etc/apt/sources.list

Se nos abrirá un fichero de texto con los repositorios que tenemos. Ponemos abajo del todo (por seguir un orden) lo siguiente:

#beryl
deb http://ubuntu.beryl-project.org feisty main

La primera línea empieza por # porque es el modo de hacer un comentario en el fichero. Viene bien que lo pongáis en cada repositorio que ponéis para saber de un vistazo rápido de qué es el repositorio que le sigue.

Guardamos, cerramos gedit y volvemos a la consola. Tras modificar el sources.list hay que decirle al ordenador que actualice sus fuentes. Esto lo que hace es tomar cada uno de los repositorios y bajarse una especie de índice del contenido de cada repositorio. Por lo tanto aunque hemos añadido uno, nuestro sistema aún no lo sabe, ni qué contiene.

Pero antes de hacerlo, para que no nos dé un aviso de autentificación para los archivos de beryl, copiad y pegad lo siguiente en la consola (seleccionad y copiad ambas líneas juntas, en el fondo es sólo una pero se corta en el blog):

$ wget http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add -

Y ahora ya podemos actualizar nuestros repositorios:

$ sudo aptitude update

En este momento nuestro sistema ya tiene accesible la instalación de beryl, pero antes vamos a comprobar que todo está preparado para el mismo. Vamos a abrir el xorg.conf y vamos a ver si está todo como tiene que estar, pero por si algo saliera mal, vamos a hacer una copia de seguridad del mismo, lo llamaremos xorg.conf.backup:

$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Y ahora vamos a abrirlo:

$ sudo gedit /etc/X11/xorg.conf

Veréis distintos fragmentos de texto bien estructurados en secciones. Buscad una sección llamada Module y comprobad que os aparecen:

load "dri"
load “glx”
load “vbe”

El orden es indferente. Si os falta alguno añadidlo de tal forma que os quede algo así:

Section "Module"
Load “bitmap”
Load “ddc”
Load “dri”
Load “extmod”
Load “freetype”
Load “glx”
Load “int10″
Load “vbe”
EndSection

En alguna parte del fichero (seguramente al final del todo) debería aparecer la siguiente sección:

Section “DRI”
Mode 0666
EndSection

Una vez más si no sale, añadidla vosotros mismos. Y en la sección “Screen” aseguraros de que esta variable tenga el valor que se indica a continuación:

Defaultdepth "24"

Bien, en principio esto sería todo. Podéis guardar el archivo y cerrar gedit. Si habéis hecho algún cambio reiniciad, pero no todo el ordenador, sólo el servidor gráfico. Para ello pulsad las teclas Ctrl + Alt + Backspace (borrar hacia atrás). En 3 ó 4 segundos os aparecerá de nuevo la pantalla para hacer login.

En el remoto caso de que no fuera así y os saliera una pantalla azul en modo texto diciendo que no ha podido iniciar el servidor gráfico, aceptad y desde consola recuperad el fichero de configuración del servidor gráfico:

$ sudo cp /etc/X11/xorg.conf.backup /etc/X11/xorg.conf

Ahora volved a arrancar el servidor gráfico:

$ startx

y volved a hacerlo pues es probable que os hayáis confundido al escribir (si no habéis copiado y pegado) o bien lo habéis puesto en el lugar incorrecto.

Para los que no hayan tenido problemas o lo hayan solucionado, ya en el escritorio volved a abrir la consola de nuevo, vamos a instalar beryl y algunos marcos de ventana para emerald:

$ sudo aptitude install beryl beryl-manager emerald-themes

Cuando acabe, ya podéis cerrar la consola. Vamos a abrir Beryl: pulsad Alt+F2, escribid beryl-manager, dadle al enter. Os aparecerá el diamante cerca del reloj y si movéis las ventanas ya veréis ese efecto gelatinoso, o bien con Ctrl+Alt+click_izquierdo_ratón, al moverlo veréis cómo aparece y se mueve el famoso cubo:

Si tenéis algún problema como que no veis el marco de la ventana, con los respectivos botones de minimizar, maximizar y cerrar, haced lo siguiente:

Abrid de nuevo xorg.conf:

$ sudo gedit /etc/X11/xorg.conf

Buscad la sección “Device” y añadid esto dentro de la misma:

Option "AddARGBGLXVisuals" "True"

Guardad el archivo, cerrad el gedit y volved a reiniciar el servidor gráfico (Ctrl+Alt+Backspace). Volved a abrir beryl-manager y ahora debería saliros los marcos de la ventana.

Para configurar Beryl tan sólo tenéis que hacer botón derecho sobre el diamante rojo y seleccionar la opción “Gestor de ajustes de Beryl“; Y para cambiar el tema del marco de la ventana, pues botón derecho de nuevo sobre el diamante y seleccionad “Gestor de temas Emerald“. Se pueden añadir más si queréis desde webs como gnome-look.

Por último, para que no tengáis que abrir beryl manualmente cada vez que encendáis el ordenador, id a: Sistema > Preferencias > Sesiones. Situaros en la pestaña de “Programas de inicio“, dadle a “Nuevo” y lo rellenáis con “Beryl” en nombre y “beryl-manager” en el comando. Aceptad y listo.

Quería recordaros también para los que tengáis fobia a la consola, que existen aplicaciones gráficas como “Orígenes del software” (para añadir repositorios) o “Synaptic” (para buscar/instalar paquetes), ambos en Sistema > Administración.

Y para los que tengan problemas con las pantallas negras, aquí tenéis una solución hasta que NVIDIA corrija el bug en sus drivers.

Este tutorial está basado parcialmente al ofrecido desde beryl-project para NVIDIA y bajo AIGLX. Aquellos que quieran seguir el original o tengan una ATI, tenéis disponibles los enlaces desde aquí.

Fuente: http://tuxpepino.wordpress.com/2007/04/23/beryl-en-feistynvidiaaiglx/



Instalar Dreamweaver y Photoshop en Ubuntu

13 07 2007

Los usuarios que migran de Windows o tantean por primera vez un sistema GNU/Linux echan en falta algunas aplicaciones específicas. Las más demandadas son Adobe Photoshop y Macromedia Dreamweaver. En este tutorial os voy a enseñar cómo instalarlas en vuestro Ubuntu.

Personalmente no estoy a favor de este tipo de usos ya que son las desarrolladoras las que tenían que poner facilidades para que podamos ejecutar sus aplicaciones en nuestros sistemas, y no que la comunidad linuxera se las tenga que ingeniar para poder ejecutar aplicaciones y juegos nativos de Windows en GNU/Linux.

Cierto es que inicialmente sí que eché mucho en falta ambas aplicaciones, pero con un poco de paciencia y ganas estoy aprendiendo a desenvolverme con Gimp (en sustitución de Photoshop) y para crear o retocar código web siempre puedes hacerlo con un editor u otra serie de aplicaciones (NVU).

En cualquier caso esto es algo personal y me consta que hay muchos usuarios que usan o quieren usar GNU/Linux y no quieren aprender a usar otro programa parecido después de haberle dedicado mucho tiempo a otro que ya dominan. Se sienten resentidos cuando tienen que reiniciar en Windows para poder usar estas aplicaciones. No, no es necesario que lo hagan.

¿Cómo vamos a conseguirlo?

Vamos a usar Wine. En contra de lo que se dice, Wine no es un emulador de la API (un conjunto de funciones para que una aplicación se comunique con el sistema operativo) de Windows, sino que es una implementación propia de la misma.

Digamos que Wine es un intermediario entre la aplicación para Windows y el sistema GNU/Linux, las llamadas a las funciones de Windows que hace la aplicación para instalarse y ejecutarse, Wine las traduce para que las entienda GNU/Linux y así puedan hablarse mutuamente. Obviamente esto conlleva un consumo de recursos, aunque no es excesivamente elevado.

Instalar Wine

Wine está en repositorios de Ubuntu Feisty, con lo que en teoría valdría con un (no lo hagas):

$ sudo aptitude install wine

De momento no es una opción válida ya que la versión que hay actualmente en los repositorios de Feisty (0.9.33) tiene ciertas incompatibilidades con algunas de las aplicaciones que supuestamente están soportadas, como por ejemplo Dreamweaver.

En su lugar vamos a instalar una versión ligeramente previa, la 0.9.29, que nos funcionará correctamente. Descargar el paquete desde este enlace. Los que lean este tutorial en el futuro, si quieren pueden comprobar qué versión está subida a sus repositorios, y si es superior a las 0.9.33, probablemente ya esté solucionado este error y puedan descargar e instalar Wine con el aptitude anterior.

Mientras tanto usaremos el que os he proporcionado en el enlace. Una vez descargado lo instalamos haciendo doble click sobre él o si eres un amante de la consola, nos vamos al directorio donde está y escribimos:

$ sudo dpkg -i wine_0.9.29~winehq0~ubuntu~6.10-1_i386.deb

Si queréis que no se actualice vuestro Wine cuando hagáis un “upgrade” o “dist-upgrade“, podéis retener el paquete de tal forma que se actualice todo menos los paquetes retenidos, en este caso wine:

Para retenerlo (Ojo con los guiones que hay antes de “set-selections“, son dos antes del set y uno entre “set” y “selections“):

echo “wine hold” | sudo dpkg –set-selections

Y para quitar retención:

echo “wine install” | sudo dpkg –set-selections

Configurar wine

Aquí no vamos a hacer mucho realmente. Vamos a la consola (o pulsamos Alt+F2) y escribimos:

winecfg

Se nos abrirá una ventana al estilo de Windows. Aseguraros que en la pestaña “Aplicaciones“, en la zona inverior la “Versión a imitar” sea “Windows XP“. Dadle a los botones Aplicar y Aceptar.

Instalar y ejecutar Dreamweaver 8

Una vez tenemos Wine instalado y configurado, vamos a instalar Dreamweaver, en su versión 8, como reza el título de este punto. En consola, situaros en la carpeta donde tenéis el instalador ejecutable y escribir:

$ wine nombre_del_instalador_de_dreamweaver.exe

Automáticamente se os abrirá el instalador de Dreamweaver con la misma apariencia que tiene en Windows. El proceso de instalación es idéntico, por lo que no merece muchas más explicaciones.

Tras instalarlo una aplicación, Wine la añade bajo la misma jerarquía de Windows dentro de “/home/tu_cuenta/.wine/drive_c“. Si queréis meteros dentro y comprobaréis que están las carpetas “windows” y “Archivos de programa“.

Si hemos hecho la instalación por defecto, el ejecutable está en “Archivos de programa/Macromedia/Dreamweaver 8″. Así que para ejecutar Dreamweaver lo que tenemos que escribir en consola es lo siguiente (es una sóla línea):

$ wine /home/tu_carpeta/.wine/drive_c/Archivos\ de\ programa/Macromedia/Dreamweaver\ 8/Dreamweaver.exe

Las barras ‘\’ son para que el intérprete de comandos pueda interpretar los espacios en blanco. Si usáis el tabulador el propio intérprete irá escribiendo correctamente la ruta, incluidos los espacios.

Otra forma sería usando la ruta fake de Wine (conservando las comillas):

$ wine "C:\Archivos de programa\Macromedia\Dreamweaver 8\Dreamweaver.exe"

Este estos son claros ejemplos para usar lo que aprendimos ayer, los alias. Quien no sepa qué son ni cómo funcionan, os aconsejo encarecidamente su lectura, les puede ser muy provechoso.

Tras este comando, Dreamweaver debería abrirse correctamente:



Más adelante verán un vídeo al respecto.

Instalar y ejecutar Photoshop 8 CS

El procedimiento que hay que seguir para instalar Photoshop y cualquier otra aplicación instalable es el mismo. Ejecutamos el instalador con wine, y tras instalarlo abrimos el ejecutable de la aplicación, en este caso Photoshop de nuevo con wine teniendo en cuenta que si hacemos la instalación por defecto estará en “/home/tu_carpeta/.wine/drive_c/Archivos\ de\ programa/nombre_carpeta_aplicación/ejecutable_aplicación“.

Vamos a instalar Photoshop 8, alias CS. Hace poco salió la versión 10, CS3, pero de momento no está compatibilizado con Wine, aunque seguro que pronto tendremos noticias sobre la compatibilidad con CS2.

Por otro lado vamos a ver luego cómo instalar y ejecutar Photoshop 9 (CS2), pero será ligeramente más complejo y puede que no le funcione a todo el mundo. Pese a todo tanto con CS como con CS2 tendremos ciertos problemas que os comentaré al final del punto.

Nos vamos al directorio donde tenemos el instalador y lo instalamos:

$ wine nombre_instalador_photoshop.exe

Antes de ejecutarlo tenemos que hacer algo más, sólo para Photoshop. Ubuntu por defecto configura xorg.conf con los parámetros necesarios para una tableta digital Wacom. Esto entra en conflicto con Photoshop bajo Wine si no tenéis una (supongo que la mayoría) e impedirá que se inicie la aplicación. Vamos a comentar las secciones correspondientes para que podamos usar Photoshop.

Como siempre, antes de cualquier cambio sobre el xorg.conf vamos a hacer una copia de respaldo por si algo sale mal:

$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Ahora editamos el archivo de configuración

$ sudo gedit /etc/X11/xorg.conf

Buscad tres secciones que se llaman “InputDevice” cuyo driver es “wacom“. Están las tres juntas cerca de la configuración del ratón. Ahora vamos a comentarlas para que no las tenga en cuenta a la hora de cargar el fichero. Añadimos al principio de cada línea una ‘#‘, de tal forma que las tres secciones nos quedarán así:

#Section "InputDevice"
# Driver “wacom”
# Identifier “stylus”
# Option “Device” “/dev/input/wacom”
# Option “Type” “stylus”
# Option “ForceDevice” “ISDV4″ # Tablet PC ONLY
#EndSection

#Section "InputDevice"
# Driver “wacom”
# Identifier “eraser”
# Option “Device” “/dev/input/wacom”
# Option “Type” “eraser”
# Option “ForceDevice” “ISDV4″ # Tablet PC ONLY
#EndSection

#Section "InputDevice"
# Driver “wacom”
# Identifier “cursor”
# Option “Device” “/dev/input/wacom”
# Option “Type” “cursor”
# Option “ForceDevice” “ISDV4″ # Tablet PC ONLY
#EndSection

Ahora falta comentar los recursos que se definen en cada sección de las anteriores con “Type“. Buscad la sección “ServerLayout” (suele estar al final) y comentad estas tres líneas que contienen “stylus”, “cursor” y “eraser”. Ojo, sólo esas tres:

#InputDevice "stylus" "SendCoreEvents"
#InputDevice “cursor” “SendCoreEvents”
#InputDevice “eraser” “SendCoreEvents”

Hecho esto, reiniciamos el entorno gráfico, pero antes recordad que si no os arranca el escritorio podéis restaurar la configuración con la copia de respaldo que hicimos antes. Una vez estéis en el escritorio los que hayáis tenido problema volved a hacerlo pues seguramente habréis comentado algo mal. Para restaurar la copia de respaldo:

$ sudo cp /etc/X11/xorg.conf.backup /etc/X11/xorg.conf

Ya en el escritorio y con la wacom deshabilitada, ya podemos ejecutar Photoshop. Si lo instalamos en la carpeta por defecto basta con (es una sóla línea):

$ wine /home/tu_carpeta/.wine/drive_c/Archivos\ de\ programa/Adobe/Photoshop\ CS/Photoshop.exe

Debería iniciar la aplicación sin problema alguno, pero no así cuando lo vuelvan a ejecutar, seguramente dará este error:

“Unable to continue because of a hardware or system error.
Sorry, but this error is unrecoverable.”

Existe una solución para esto. Id a “/home/tu_cuenta/.wine/drive_c/windows/profiles/tu_cuenta/Application Data/Adobe/Photoshop” y borrar la carpeta que se llamará “Ajustes de Adobe Photoshop CS“. Esto tendrán que hacerlo siempre antes de ejecutar Photoshop.

Como decía antes, hay algún problemilla que otro adicional. Por ejemplo no debéis usar el botón derecho pues es probable que se cuelgue la aplicación. Dentro de lo que cabe esto no es muy malo ya que no se usa en exceso. También tiene problemas para abrir los .pds…

Puede que surjan más errores de no funciona esto o aquello, pero en fin, ya se irá puliendo. La verdad es que el trabajo de Wine es excelente y la responsabilidad debería caer sobre Adobe.

Por todo esto os aconsejo que le deis una oportunidad a Gimp, buscad tutoriales de cómo hacer una cosa o la otra y os daréis cuenta que puede ser tan potente como Photoshop, sólo que se hacen las cosas de otro modo.

¡Qué rutas tan largas!

Efectivamente puede ser algo engorroso de ejecutar con semejantes rutas, incluso con el tabulador. Estos son dos claros ejemplos para poner en práctica lo que vimos ayer, los alias. Podéis crearos unos alias con la orden de ejecución completa que acabamos de ver.

Podemos hacer que escribiendo “fotosopa” o “drimwebo” nos arranque directamente las aplicaciones, sin tener que escribir la ruta.

Y los que no quieran ejecutarlo por consola pueden crear un lanzador usando como comando:

wine "C:\Archivos de programa\Macromedia\Dreamweaver 8\Dreamweaver.exe"

wine "C:\Archivos de programa\Adobe\Photoshop CS\Photoshop.exe"

Mantener las comillas, son necesarias. Los que no sepan cómo crear un lanzador, aquí tienen una pequeña guía y si quieren agregarlo a kiba-dock seguir esta otra.

Vídeo-demostración

Además de las capturas, un video de Dreamweaver y Photoshop en Ubuntu Linux:

¿Otras alternativas?

La verdad es que para algunas aplicaciones como Photoshop aún tiene sus fallos. Otras como Dreamweaver parece que funciona bastante bien. Pese a todo y teniendo en cuenta a los inconformistas hay otras soluciones.

Una de ellas es virtualizar un Windows en una máquina virtual y ejecutar en él los programas que queráis, incluso el novedoso Photoshop 10 CS3. Aquí tienen un tutorial para hacerlo mediante VirtualBox, seguramente a muchos les guste más este método que el que les he mostrado hoy.

Fuente: http://tuxpepino.wordpress.com



VirtualBox: Windows en Ubuntu Linux

13 07 2007

Sin duda una grandísima aplicación que tenemos en los repositorios de Ubuntu Feisty. Si ayer vimos cómo instalar Dreamweaver y Photoshop en Ubuntu con wine, hoy os voy a enseñar otro método que os puede gustar más que el anterior.

Lo que vamos a hacer es virtualizar otro sistema operativo en nuestro Ubuntu. Es decir, vamos a crear un ordenador ficticio (máquina virtual) y podremos instalar y ejecutar literalmente un Windows XP junto con las aplicaciones que queramos. Como ejemplos veréis Dreamweaver 8 y el reciente Photoshop 10 CS3. Tanto Wxp como sus aplicaciones funcionarán perfectamente y tendréis acceso hasta a Internet en esa máquina virtual.

¿Qué es VirtualBox?

VirtualBox es una aplicación que crea un ordenador virtual, ficticio de software. En realidad está usando los recursos de nuestro ordenador real, pero hace de intermediario para que se puedan instalar y ejecutar otro sistema operativo (llamado huésped) sobre otro que es el que estamos usando (anfitrión).

En este tutorial el sistema anfitrión obviamente va a ser Ubuntu, y el huésped será Windows XP. Podríamos haber elegido cualquier otro, de hecho os animo a hacerlo para probar otras distros de Linux, u otro Windows o lo que queráis. El motivo de haber elegido Windows XP es que aún sigue siendo el más extendido y del que muchos aún dependen para pasarse a GNU/Linux.

De esta forma el tutorial se propone como propuesta para que podáis usar programas no nativos de Linux en vuestro sistema libre. Los más demandados son sin duda Dreamweaver y Photoshop, pues aquí tenéis un par de capturas de Dreamweaver 8 y el reciente Photoshop 10 CS3 en VirtualBox:

He de decir que con un ordenador aceptable va realmente muy bien. Se ha notado mucho las mejoras para la virtualización que ha incorporado el nuevo kernel de Linux que se ha incluido con Feisty.

El tutorial es algo largo, porque como sabéis me gusta daros explicaciones de cada paso, pero es realmente muy muy muy sencillo. ¡Manos a la obra!

Instalar VirtualBox

Es simple, ir a esta URL y descargaros el paquete de vuestra distro. Una vez bajado, en el caso de Ubuntu, con un simple doble click se abrirá el gestor gráfico de instalación que se descargará un par de paquetes adicionales.

Cuando acabe de hacerlo, en la ventana de instalación pinchad sobre “Terminal” para que os muestre el proceso. Os aparecerá una ventana en modo texto con la licencia del programa.

Aceptadla, creará un grupo de usuarios para la aplicación y terminará de instalarlo. Lo sabréis cuando el botón “Cerrar” esté habilitado. Podéis ver esto en la siguiente captura:

Configurar VirtualBox

No hay que hacer mucho, tan sólo agregar nuestro usuario al grupo de la aplicación para que tengamos los permisos suficientes para poder usarla correctamente. Escribimos en consola…

$ sudo gpasswd -a nombre_de_tu_cuenta vboxusers

…y reiniciad el ordenador completo (no el entorno gráfica) para que se realicen el cambio del grupo de VirtualBox.

Abrir VirtualBox

Una vez instalado y con los permisos para ejecutarlo, pasamos directamente a abrirlo. Podéis acceder por menú: “Aplicaciones > Herramientas del sistema > InnoTek VirtualBox“, o bien mediante gnome-launch-box o “Alt+F2” y escribiendo “VirtualBox“.

Creamos una máquina virtual para el sistema huésped

Esta es la parte más tediosa del tutorial, pero tranquilos pues no es difícil, tan sólo ligeramente larga.

Para empezar tendremos una ventanita muy bien organizada y amigable. De hecho tiene un asistente que nos ayudará a configurar la máquina virtual paso por paso. Vamos a ello, comenzamos por darle al botón “New“.

* Welcome to the New Virtual Machine Wizard! - Se nos presenta el asistente y avanzamos (Next).

* VM Name and OS Type - Ponemos el nombre que le queremos dar a la máquina virtual. En mi caso yo he puesto Wxp en la casilla de “Name“. Y en “OS Type“, pues obviamente Windows XP. Next.

* Memory - Es la memoria RAM que le vamos a dar a nuestro sistema huésped. En mi caso yo tengo 1GB, le he dado 512 y el XP me va realmente muy bien. Ubuntu se puede resentir un poco mientras tanto, pero si tenemos abierta la máquina virtual de Windows es porque la vamos a usar, así que no es mayor problema. Si vosotros tenéis más y queréis aumentarlo, podéis hacerlo. Next.

* Virtual Hard Disk - Aquí vamos a generar un disco duro virtual para el sistema operativo. Es una porción de nuestro disco duro real donde se va a instalar el sistema huésped y sus aplicaciones. Le damos al botón “New…” para crear uno y entrar en un segundo asistente que nos guiará en este otro proceso:

* Welcome to the Create New Virtual Disk Wizard! - Se nos presenta este nuevo asistente. Le damos a Next.

* Virtual Disk Image Type - Tenemos dos opciones: “Dynamically expanding image” y “Fixed-size image“. Más adelante le vamos a asignar un tamaño al disco duro virtual que estamos creando. Esta fase es para especificar si queremos que se ocupe ya todo ese espacio que vamos a reservar (segunda opción), o que ocupe lo necesario según vayamos instalando y vaya creciendo según se vaya necesitando. Elegimos la primera opción por ejemplo, aunque está a vuestra elección. Next.

* Virtual Disk Location and Size - El sistema operativo huésped se va a reducir en un simple fichero. Es como si tuviéramos una imagen de ghost o cualquier herramienta de clonación si habéis usado alguna. En esta fase vamos a decirle dónde va a guardar esa imagen (por defecto en “/home/tu_cuenta/.VirtualBox/VDI/” y cómo se va a llamar dicho fichero (por defecto igual que la máquina virtual, Wxp en nuestro ejemplo). Si no tenéis problema de espacio en vuestro /home, os recomiendo dejarlo como está, así como su nombre para saber de qué sistema es ese disco duro virtual en caso de que instaléis más de uno. Finalmente le damos el tamaño del disco duro. con 5 GB tendréis suficiente para Wxp y unas cuantas de aplicaciones. Si teneís intenciones de instalar muchas o algo parecido, sois libres de aumentar el tamaño. Next.

* Summary - Nos muestra un resumen en lo referente al disco duro virtual. Si está todo en orden le damos a “Finish“, en caso contrario volvemos atrás (Back) y cambiamos lo que queramos.

Nos ha devuelto a la sección donde estábamos en el primer asistente. Ya hemos creado el disco duro virtual y está seleccionado. Next.

* Summary - Un nuevo resumen, en esta ocasión del primer asistente, el global. Al igual que antes, pulsamos “Finish” para finalizar si está todo en regla o “Back” para cambiar algo.

Ahora tendremos nuestra ventanita de VirtualBox parecida o igual a esta:

Configurar la máquina virtual del sistema huésped

Bien, hemos creado una máquina virtual para instalar en ella un sistema operativo. Como comenté al principio, en el fondo usa los recursos de nuestro ordenador real. Vamos a instalar el sistema huésped (Windows XP) desde un CD, por lo que tendremos que configurar ese recurso, así como la red para poder tener acceso a internet y el sonido.

Pulsamos el icono de “Settings” y seguimos estos pasos.

* Configurar CD: Seleccionamos la opción “CD/DVD-ROM” y habilitamos la casilla “Mount CD/DVD Drive” y en Host CD/DVD Drive seleccionamos “dev/cdrom“, para que nuestra máquina virtual pueda acceder al CD de instalación de nuestro sistema huésped.

* Configurar sonido: Seleccionamos la opción “Audio“, habilitamos la casilla de “Enable Audio” y en “Host Audio Driver” seleccionamos “ALSA Audio Driver“.

* Configurar red: Seleccionamos “Network” y nos aseguramos que el adaptador deseado (si sólo tenéis uno será el 0) esté habilitada la casilla “Enable Network Adpater” y “Attached to NAT“.

* Configurar secuencia de arranque: Como si estuviéramos configurando un ordenador real, tendremos que indicarle que para iniciar el sistema operativo primero mire en el CD y luego en el disco duro. Vamos a “General” y la pestaña “Advanced“. En la casilla “Boot Order” Nos aseguramos que primero esté “CD/DVD-ROM” y después “Hard Disk”. Si queréis ponedlos todos a “None” (pinchando en cada uno de ellos) y después establecéis el orden: primero CD y luego disco duro (una vez instalado el sistema podéis poner primero el disco duro si queréis).

Le damos al botón “OK” y listo, tenemos VirtualBox totalmente configurado para instalar y ejecutar nuestro huésped.

Instalar sistema huésped

Metemos el CD de Windows XP en la unidad CD/DVD y le damos al botón “Start“. Aquí no hay mucho que decir, supongo que todos habreís instalado alguna vez un Windows XP, sino es realmente sencillo. Estaréis instalándolo en una cómoda ventanita como esta:

Un rato después ya estará iniciándose Windows XP en esa misma ventanita:

Hasta que veamos por fin Windows en una ventana de nuestro Ubuntu:

Probadlo, comprobaréis que es un Windows completo y real y que además funciona muy holgadamente, además de que tarda muy poco en iniciarse. Tened en cuenta que hay muchos drivers y dispositivos que no se cargan, pero sí tiene todo lo básico.

También funcionan los atajos de teclado, etc. Lo que sí os pasará es que se quedará con el control del ratón y puede que no sepáis cómo hacer que os lo devuelva a vuestro Ubuntu. Pulsad la tecla “Control” de la derecha. Es un conmutador para dar y devolver el control del ratón y teclado entre el sistema anfitrión y el huésped. Además nos servirá para más cosas como veréis a continuación.

¿Qué puedes hacer? Mejorando las capacidades de VirtualBox

¿Qué opinión os merece el programita? Pues aún puede mejorar. Iniciad vuestro Windows XP en VirtualBox y cuando acabe, en la ventana que contiene a Windows pulsado sobre “Devices > Install Guest Additions“.

Si por cualquier circunstancia no saliera la ventana de instalación en el Windows virtualizado, id a “Devices > Unmount CD/DVD-ROM” y después “Devices > Mount CD/DVD-ROM > CD/DVD-ROM Image…“. Seleccionad “VBoxGuestAdditions.iso” y ahora sí debería saliros el instalador. Instaladlo. En los mensajes de advertencia que os saldrá, dadle siempre al botón “Continuar“. Finalmente reiniciad Windows tal y como os aconseja el instalador al final.

El sistema huésped ya no se quedará con el control del ratón y teclado, sino que mientras tengamos el ratón en la ventana de Windows estaremos actuando sobre el mismo, pero en cuanto nos salgamos podemos pinchar sin problema en una ventana de Ubuntu. Igualmente, el teclado permanecerá en Windows hasta que pinchemos fuera.

Podremos cambiar el tamaño de la ventana y VirtualBox readaptará el escritorio del sistema huésped con la dimensión que le hayamos dado a la ventana. Mirad esta captura donde se ve que hasta el fondo de pantalla se ha redimensionado al ancho y alto de la ventana:

Id a “VM > Auto-resize Guest Display” o bien Ctrl_derecho+G. En los accesos directos que veis Host+tecla, Host=Ctrl_derecho. También podremos ponerlo a pantalla completa (Host+f). También podremos acceder a una carpeta de nuestro sistema anfitrión desde el huésped. Por ejemplo, si eres de los que guarda los instaladores de los programas en el disco duro, podrás acceder desde Windows a esa carpeta e instalar tus aplicaciones favoritas. Os lo explico cómo en el siguiente punto.

Compartir carpeta entre sistema anfitrión y huésped

Como decía antes, las Guest Additions deben estar instaladas. Vamos a compartir una carpeta. Os aconsejo que en vuestra carpeta personal haya una que sirva de intercambio con otros sistemas (reales o virtuales). Yo por ejemplo la he llamado “compartido“.

Ahora id a “Sistema > Administración > Carpetas compartidas“. Tras meter vuestra clave os preguntará si queréis instalar ciertos paquetes. Decidle que sí, es el soporte para compartir carpetas en redes Linux y redes Windows. Hecho esto, volved a “Sistema > Administración > Carpetas compartidas“. Ahora se abrirá una ventana. Dade a “Añadir“, en ruta buscad la carpeta que vais a compartir (en mi caso /home/ceec/compartido”, y en “Compartir a través de” seleccionad “Redes Windows (SMB)“. La casilla de “Sólo lectura” dejadla habilitada si no queréis que el visitante (o vosotros desde el Windows virtual) pueda copiar/borrar/modificar algo de esa carpeta. Si va a ser de intenrcambio real, deshabilitadlo. Aceptad.

Bien, compartida la carpeta vamos a hacer que nuestro Windows pueda acceder a ella. Para hacerlo tenemos que poner dos comandos, uno en Ubuntu y otro en Windows. Para el primero, abrimos consola y escribimos esto (es una sola línea):

$ sudo VBoxManage sharedfolder add “Wxp” -name “compartido”
-hostpath “/home/nombre_tu_cuenta/compartido”

Tenéis que conservar las comillas dobles. “Wxp” es el nombre que le hemos dado a la máquina virtual, ha de ser exactamente igual, incluyendo mayúsculas y minúsculas. “compartido” es el nombre que recibirá el recurso compartido (valga la rebuznancia). Y la ruta final es la de la carpeta compartida.

Eso por la parte que le toca a Ubuntu. Ahora vamos a hacer que Windows pueda conectar con esa carpeta. Abrimos una consola de Windows (tecla_win+r, cmd, enter) y escribimos lo siguiente:

net use Z: \\vboxsvr\compartido

Te debe responder: “Se ha completado el comando correctamente“. En vez de Z, puedes usar otra letra, pero ha de ser una que no esté tomada por otra unidad. Ahora si vas a “Mi PC” verás que puedes acceder ya a dicha carpeta. Puedes hacer esto con tantas como quieras, aunque personalmente soy de la opinión de usar sólo una y simplemente muevo/copio los archivos a esa.

Vídeo-demostración

Pues eso ha sido todo. Espero que os haya salido bien el manual. Como os dije es algo largo, pero no es complicado, además que os he explicado cada paso para que sepáis razonar o intuir dónde puede estar el problema si lo hubiera.

Les dejo un vídeo donde pueden ver ejecutarse Windows XP en mi Ubuntu. Comprobaréis lo que les decía del foco del ratón, el redimensionamiento de la pantalla, la pantalla completa y la ejecución sin problema alguno de aplicaciones como Dreamweaver o Photoshop 10 CS3.

Fuente: http://tuxpepino.wordpress.com/2007/05/29/virtualbox-windows-en-ubuntu-linux/



Manual SSH: El Dios de la administración remota

11 07 2007

Y es que no se merece un titular peor. ¿Has estado alguna vez en el trabajo o en casa de y has necesitado o te has acordado de un archivo que no tienes en ese momento pero sí en tu ordenador? Existen los escritorios remotos, de hecho Ubuntu trae uno instalado por defecto, pero puede que no queramos hacer más que mandarnos un archivo o hacer algo en el ordenador remoto. Para esto -y mucho más- existe SSH, con un inmenso potencial.

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. Es decir, si en tu PC tienes varias cuentas, puedes conectar desde otro ordenador al tuyo con cualquiera de esas cuentas y sus respectivos privilegios, como pudiera ser la cuenta root, la de tu administrador sudo o la de un usuario normal sin poder de administración. Y todo esto con encriptación de datos.

En este tutorial os voy a mostrar algunas facetas de su uso, pero antes debéis saber que tener el servidor de SSH corriendo es de cierto riesgo, ya que si no tocáis la configuración por defecto para aumentar la seguridad a un nivel más que aceptable, puede ser un agujero para que alguien pueda entrar en vuestro sistema. Pero no os preocupéis, si seguís estos pasos es difícil que suceda, nunca imposible, pero sí difícil.

El manual es algo extenso debido a que he intentado hacer que resulte bastante completo y que, como llevo haciendo en el resto de tutoriales, quiero que sepáis lo que estáis haciendo, los porqués y lo que significa cada cambio que hacéis. De esta forma tendréis criterio propio para vuestras modificaciones personales.

Instalar

En vuestros repositorios ya tenéis SSH dispuesto a instalar, así pues:

$ sudo aptitude install ssh

Una vez instalado se autoiniciará el demonio que ejecuta el servidor SSH y gestiona las solicitudes de login remoto.

Configuración: Mayor seguridad

Como decía antes no es muy inteligente usar SSH sin modificar el fichero de configuración del servidor. Vamos a modificar algunas opciones para conseguir una seguridad aceptable.

$ sudo gedit /etc/ssh/sshd_config

(nota) Si algunas de las opciones que aquí comento no aparecen en vuestro sshd_config, simplemente agregadlas. Podéis hacerlo donde queráis, aunque lo suyo es que lo hagáis al principio o al final para que sepáis cuales son las opciones que vosotros habéis agregado.

Vemos un fichero de configuración típico basado en “opción valor”. Vamos a comenzar las modificaciones por el puerto que es lo primero que vemos y una de las cosas más importantes. SSH usa por defecto el puerto 22. Esto significa que si no lo cambiamos estamos entregando a un caco que sabe la dirección de dónde vivimos (nuestra IP) también la llave del portal.

Cambiaremos el puerto para evitarlo. 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. Poned el que queráis y abridlo también en el router para que podáis acceder a vuestro ordenador desde otro. Usaremos por ejemplo el 4321, podéis poner el que queráis. Así pues en el fichero de configuración:

port 4321

Un poco más abajo buscad la opción “Protocol” debe estar a valor 2, si no es así (valor 1 ó 2,1 ponedla. Hay dos versiones de protocolo SSH. La primera está ya en desuso y tiene varias vulnerabilidades. Así debéis dejarlo en vuestra configuración:

Protocol 2

Buscar la sección “Authentication”. Sus dos primeras opciones son también importantes. La primera es el número de segundos que tendrá el usuario remoto para hacer login en tu máquina. Poned ese valor a pocos segundos, no tardamos mucho en hacer login si sabemos la cuenta y la password. De esta forma evitamos ciertos scripts que se aprovechan de ese tiempo. El valor típico en términos de seguridad es 30, aunque podéis poned incluso menos si estáis más conformes.

LoginGraceTime 30

Justo debajo tenéis otras de las opciones más importantes, PermitRootLogin. Si antes usé la metáfora del caco y el portal, esta opción viene a ser que le digáis también en qué planta del bloque de pisos vivís y qué puerta, faltándole sólo la llave. Con esto lo que insinúo es que si sabe por qué puerto entrar, tan sólo le queda averiguar dos datos: el nombre de una cuenta y su contraseña.

Si tenemos esta opción habilitada (yes) el caco ya tiene la mitad del trabajo hecho, pues el usuario “root” existe en todas las máquinas GNU/Linux, tan sólo le queda averiguar la contraseña. Por eso es más que recomendable deshabilitar esta opción. No os preocupéis los que tenéis en mente usar SSH para hacer un uso administrativo, podéis hacerlo con vuestra cuenta y sudo sin problema alguno. Así pues…

PermitRootLogin no

También podéis señalar con el dedo las cuentas que tienen permitido el uso SSH (AllowUsers). Pongamos un ejemplo, que es como mejor se entienden las cosas: Supongamos que tienes un amigo con el que quieres compartir algo vía SSH y además tiene un hermano que es un enreda y en el que no confías por si te la puede liar. Llamaremos a las cuentas “amigo” y “pesado” respectivamente. Para restringir el uso de SSH a tu amigo y a tu propia cuenta (llamémosla “pepino”) podemos indicárselo mediante configuración. Incluso podemos indicar también que tu amigo sólo se pueda conectar a tu ordenador desde el suyo, sabiendo su IP (supongamos que es 83.45.258.21). Pondríamos en la configuración:

AllowUsers pepino amigo@83.45.258.21

De esta forma tú podrías usar tu cuenta (pepino) para conectar a tu equipo desde cualquier lugar, tu amigo podría hacerlo sólo desde su ordenador (si tiene esa IP) y tu hermano no podría conectar a tu máquina vía SSH, si no tiene tu cuenta.

Otra opción interesante es el número de intentos que tiene el usuario remoto para hacer login (MaxAuthTries). Como comenté antes, quien 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.

MaxAuthTries 2

Por último hay otra opción que define el número máximo de usuarios conectados simultáneamente a tu máquina. Esto ha de adaptarse a tus propias necesidades. Si estamos hablando de un ordenador personal donde sólo vas a conectar tú, pues lo lógico sería que como mucho hubiera una. Si estamos hablando de un ordenador que hará las veces de servidor compartiendo una carpeta a varias máquinas, deberás decidir cuántos son. Cuanto tengas claro el número indícalo en la opción siguiente en lugar de la ‘X’:

MaxStartups X

Ya podéis guardar y cerrar gedit. Con esto tenéis un servidor SSH bastante seguro. Como comenté antes nunca es 100% seguro pero a priori podéis estar bien tranquilos. Sólo resta reiniciar el propio servidor SSH para que tome los cambios que hemos efectuado en su configuración. Escribir en consola:

$ sudo /etc/init.d/ssh restart

Un último consejo. Como habéis visto podemos poner trabas al caco en cuanto a nuestra dirección y puerta, pero ¿podemos ponerle problemas con la llave? La llave se entiende que es la contraseña. Y la respuesta es afirmativa. Podéis hacerlo pero vosotros mismos. Poned claves en condiciones a vuestras cuentas. Usad como poco 5 ó 6 caracteres y a ser posible que se entremezclen mayúsculas, minúsculas y números, por ejemplo: entr3TuXeSyp3p1n0s.

Es un ejemplo exagerado, enrevesado a la hora de escribir e incómodo para meterlo en sudo cada dos por tres, pero intentad que sea del estilo y procurad que no sea algo tan simple como vuestro nombre, el de vuestra mascota, vuestra fecha de nacimiento, grupo favorito, etc.

Uso de SSH en consola

* Conectar

Ahora que tenemos SSH bien seguro es hora de que veais para qué sirve. Parto de que tenéis dos equipos, el que tenéis delante y al que queréis conectar. Obviamente debéis tener una cuenta en el segundo para poder entrar. La forma de conectar por defecto es la siguiente:

$ ssh tu_cuenta@ip_del_ordenador_remoto

Esto sería si no hubiéramos cambiado el puerto, ya que intentaría conectar por el puerto 22 que es el puerto por defecto del cliente. Podéis cambiarlo si queréis para que conecte por defecto por el puerto que le digáis en lugar del 22 editando el fichero /etc/ssh/ssh_config. Descomentáis (si está comentada) la opción “Port” y en lugar de “22″ ponéis el que queráis.

La otra opción, que es lo más normal, es simplemente indicarle en la línea de conexión qué puerto ha de usar:

$ ssh -p puerto tu_cuenta@ip_del_ordenador_remoto

Para que lo veais más claro os voy a poner un ejemplo. Mi portátil está en la ip 192.168.1.4 y el puerto SSH que tengo para el mismo es el 4884. La cuenta que voy a usar para conectarme es “pepino”, así que para conectar desde mi PC de sobremesa al portatil sería:

$ ssh -p 4884 pepino@192.168.1.4

Tras esto me pedirá la contraseña:

pepino@192.168.1.4's password:

La introducimos y tras un texto de “bienvenida” veremos que nuestro prompt ha cambiado a “nombre_cuenta@nombre_manquina”. Mi portatil se llama salamandra, así pues mi prompt es:

pepino@salamandra:~$

A partir de este instante tu consola está controlando el equipo remoto. Estarás en el home de tu cuenta en la máquina remota. ¿Qué podemos hacer?

* Copiar ficheros

Seguramente es lo primero que se os ha pasado por la cabeza a algunos. Efectivamente podemos copiar ficheros fácilmente desde el ordenador remoto al que estamos usando en este momento, y es fácil (es una sóla línea):

$ scp ruta/archivo cuenta_en_ordenador_presente@ip_ordenador_presente:ruta/fichero

Complicado a priori, ¿verdad? En el fondo no lo es, una vez sabéis qué es cada cosa. ruta/fichero es el lugar donde está el archivo a copiar en la primera aparición, y el lugar donde se va a copiar en la segunda. cuenta_en_ordenador_presente es la cuenta que estáis usando (u otra) en el ordenador que tenéis delante (no el remoto). La ip_ordenador_presente es precisamente la ip de vuestro ordenador. Pero como siempre mejor con un ejemplo.

Supongamos que quiero copiarme un fichero llamado pepino.jpg que está en el escritorio de la cuenta “pepino” del portátil (el ordenador remoto) y quiero copiármelo en el home de la cuenta “tux” de mi ordenador presente, cuya ip es 192.168.1.6. Ya que estoy quiero aprovechar y cambiarle el nombre. Quiero que se llame pepinaceo.jpg en lugar de pepino.jpg. Escribiremos en el SSH (es una sóla línea):

$ scp /home/pepino/Desktop/pepino.jpg
tux@192.168.1.6:/home/tux/pepinaceo.jpg

¿No funciona? ¿Sabes por qué? El puerto, recordad que lo cambiamos y aquí también tenemos que indicárselo. En el ordenador de sobremesa tengo abierto el puerto 8448, así pues (es una sóla línea):

$ scp -p 8448 /home/pepino/Desktop/pepino.jpg
tux@192.168.1.6:/home/tux/pepinaceo.jpg

Nos pedirá la contraseña de la cuenta “tux” en el ordenador que tenemos delante y copiará el archivo:

pepino@192.168.1.4's password:
pepinaceo.png 100% 292KB 291.7KB/s 00:00

Y si ya estuvieramos en el escritorio (prompt: pepino@salamandra:~/Desktop$) no habría que poner toda la ruta si no queremos ya que tomaría la ruta relativa a la actual:

$ scp -P 8448 pepino.jpg tux@192.168.1.6:/home/tux/pepinaceo.jpg

(Nota) Ojo con la ‘P’ que en este caso debe ser mayúscula.

Otra gracia del asunto es que no tienes por qué copiarlo a tu equipo actual. Si tienes acceso a otro ordenador más, puedes copiar algo de uno al otro del mismo modo, es decir, teniendo login en ambos y sabiendo su IP. Por otro lado si lo que queremos copiar es una carpeta, basta con añadirle el parámetro ‘-r’ para que copie todo su contenido (r=recursivo).

* Otros usos

Básicamente cualquiera que se os pase por la cabeza. Daros cuenta que para un sistema GNU/Linux el interfaz no lo es todo, de hecho es prácticamente una aplicación que está corriendo bajo el propio sistema operativo, por lo que podéis administrar perfectamente vuestro equipo desde una consola y con acceso remoto vía SSH. Dentro de una conexión SSH, podéis reiniciarlo:

pepino@salamandra:~$ sudo reboot
Broadcast message from pepino@salamandra
(/dev/pts/1) at 23:45 …
The system is going down for reboot NOW!

O apagarlo:

pepino@salamandra:~$ sudo halt
Broadcast message from pepino@salamandra
(/dev/pts/1) at 23:51 …
The system is going down for halt NOW!

O usar cualquier otra aplicación de texto, como podría ser una que os presenté hace poco y que os podría venir muy bien en este caso: links. De esta forma si queréis podeís navegar en la consola y descargaros algo en vuestra máquina estando en otra.

El abanico de posibilidades es realmente inmenso.

SSH en Nautilus

Lo cierto es que si lo que queremos es simplemente copiar archivos o ver el contenido de alguno de ellos que están en otra máquina, podemos usar nautilus que siempre será más amigable para algunos que a través de consola.

No hay mucho cambio al respecto. Alt+F2 y escribid dentro “nautilus”. Se os abrirá el navegador de archivos. Nautilus tiene dos formas de mostrarte dónde estás dentro de la jerarquía de directorios. Una es a través de botones donde cada carpeta es un botón que puedes pulsar para volver atrás:

Y otra que te indica la ruta en modo texto:

Para cambiar de un modo al otro pinchad en el icono que está a la izquierda del todo que es un folio escrito y un lápiz. Nos quedaremos en el segundo modo y en la caja de texto de “Lugar:” escribiremos la orden de conexión:

ssh://tu_cuenta@ip_pc_remoto

Siguiendo con los ejemplos anteriores:

ssh://pepino@192.168.1.4

Esto sería si el puerto es el que está por defecto, como nosotros lo cambiamos tenemos que indicárselo con “:puerto” tras la ip. En nuestro ejemplo:

ssh://pepino@192.168.1.4:4884

Ahora nos pedirá la contraseña de la cuenta. Tenomos estas tres opciones:

Tomar la decisión que queráis. Personalmente yo soy de los prefieren tomarse la molestia de introducir la clave en cuestiones tan importantes como es la seguridad de SSH.

Tras esto nos colocará en la raíz de la máquina remota. Si lo que queríamos era que nos dejara en una carpeta determinada se lo podemos indicar en la línea de conexión. Por ejemplo en el escritorio de nuestra cuenta:

ssh://pepino@192.168.1.4:4884/home/pepino/Desktop/

Ahora podes copiar archivos y carpetas con total comodidad desde vuestro escritorio GNOME.

Ejecutar aplicaciones gráficas remotamente

Otra cosa muy práctica que podemos hacer gracias a SSH es ejecutar una aplicación que no tenemos en el equipo actual pero sí en el remoto y trabajar allí. Es decir, puedes mirarlo como un servidor de trabajo gráfico. Si aún no queda claro os pongo otro ejemplo:

Mientras estábais fuera de casa el pesado de tu hermano se ha hecho con tu ordenador porque tiene que hacer algo y si no “se lo dice a mamá“. Sin embargo tú también tienes cosas que hacer en él. No hay problema. Te pones en el equipo de tu hermano y abres la aplicación que necesites de tu propio ordenador en el PC de tu hermano.

Práctico, ¿verdad? Pues es muy sencillo, basta con añadir un argumento más (-X) y el nombre de la aplicación que queremos usar. Por ejemplo imaginemos que queremos jugar a Doom en DOSBox, y en el ordenador de tu hermano no tenemos ninguna de las dos cosas. Podemos instalar DOSBox, copiar la carpeta de Doom, montarla y jugar. O también podemos ejecutar directamente DOSBox remotamente y montar el juego que ya tenemos en nuestro equipo:

$ ssh -X -p 4884 pepino@192.168.1.4 dosbox

Ahora tan sólo resta montar la carpeta como ya os mostré. Podéis introducir la ruta de vuestro PC pues en el fondo es en vuestro PC donde se está ejecutando todo.

Cambiar el mensaje de bienvenida

Ya saliendo de la parte práctica, he querido hacer esta pequeña sección dentro del manual para los fanáticos de la personalización como yo. Si recordáis cuando os expliqué la conexión por consola, os comenté que tras introducir la clave nos daba una especie de texto de bienvenida. Este texto de bienvenida es modificable y puedes poner lo que quieras. Este es el de mi equipo de sobremesa:

Para hacerlo es simple. Tienes que editar (con privilegios de administrador) el archivo /var/run/motd y escribir dentro lo que quieras que aparezca cuando alguien se conecte. Es decir:

$ sudo gedit /var/run/motd

Lo modificamos a nuestro gusto, guardamos y cerramos gedit.

Fuente: http://tuxpepino.wordpress.com/2007/05/11/ssh-el-dios-de-la-administracion-remota/