Вы находитесь на странице: 1из 7

Manual SSH: El dios de la administracin remota

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 ms que mandarnos un archivo o hacer algo en el ordenador remoto. Para esto -y mucho ms- 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 administracin. Y todo esto con encriptacin de datos. En este tutorial os voy a mostrar algunas facetas de su uso, pero antes debis saber que tener el servidor de SSH corriendo es de cierto riesgo, ya que si no tocis la configuracin por defecto para aumentar la seguridad a un nivel ms que aceptable, puede ser un agujero para que alguien pueda entrar en vuestro sistema. Pero no os preocupis, si segus estos pasos es difcil que suceda, nunca imposible, pero s difcil. 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 sepis lo que estis haciendo, los porqus y lo que significa cada cambio que hacis. De esta forma tendris criterio propio para vuestras modificaciones personales. Instalar En vuestros repositorios ya tenis 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. Configuracin: Mayor seguridad Como deca antes no es muy inteligente usar SSH sin modificar el fichero de configuracin 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. Podis hacerlo donde queris, aunque lo suyo es que lo hagis al principio o al final para que sepis cuales son las opciones que vosotros habis agregado.

Vemos un fichero de configuracin tpico basado en opcin valor. Vamos a comenzar las modificaciones por el puerto que es lo primero que vemos y una de las cosas ms importantes. SSH usa por defecto el puerto 22. Esto significa que si no lo cambiamos estamos entregando a un caco que sabe la direccin de dnde vivimos (nuestra IP) tambin la llave del portal. Cambiaremos el puerto para evitarlo. Esto no quita que el caco pueda intentar averiguar el portal si sabe cmo hacerlo pero al menos le ponemos impedimentos. Tambin hay scripts que atacan directamente el puerto 22, por lo que el cambio de puerto es algo obligatorio. Poned el que queris y abridlo tambin en el router para que podis acceder a vuestro ordenador desde otro. Usaremos por ejemplo el 4321, podis poner el que queris. As pues en el fichero de configuracin:
port 4321

Un poco ms abajo buscad la opcin 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 debis dejarlo en vuestra configuracin:
Protocol 2

Buscad la seccin Authentication. Sus dos primeras opciones son tambin importantes. La primera es el nmero de segundos que tendr el usuario remoto para hacer login en tu mquina. 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 tpico en trminos de seguridad es 30, aunque podis poned incluso menos si estis ms conformes.
LoginGraceTime 30

Justo debajo tenis otras de las opciones ms importantes, PermitRootLogin. Si antes us la metfora del caco y el portal, esta opcin viene a ser que le digis tambin en qu planta del bloque de pisos vivs y qu puerta, faltndole slo la llave. Con esto lo que insino es que si sabe por qu puerto entrar, tan slo le queda averiguar dos datos: el nombre de una cuenta y su contrasea. Si tenemos esta opcin habilitada (yes) el caco ya tiene la mitad del trabajo hecho, pues el usuario root existe en todas las mquinas GNU/Linux, tan slo le queda averiguar la contrasea. Por eso es ms que recomendable deshabilitar esta opcin. No os preocupis los que tenis en mente usar SSH para hacer un uso administrativo, podis hacerlo con vuestra cuenta y sudo sin problema alguno. As pues
PermitRootLogin no

Tambin podis sealar 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 va SSH y adems tiene un hermano que es un enreda y en el que no confas 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 (llammosla pepino) podemos indicrselo mediante configuracin. Incluso podemos indicar tambin que tu amigo slo se pueda

conectar a tu ordenador desde el suyo, sabiendo su IP (supongamos que es 83.45.258.21). Pondramos en la configuracin:
AllowUsers pepino amigo@83.45.258.21

De esta forma t podras usar tu cuenta (pepino) para conectar a tu equipo desde cualquier lugar, tu amigo podra hacerlo slo desde su ordenador (si tiene esa IP) y tu hermano no podra conectar a tu mquina va SSH, si no tiene tu cuenta. Otra opcin interesante es el nmero 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 tontera darle un nmero grande de intentos. En principio con dos son ms que suficientes. Si al segundo intento no lo ha conseguido se cortar la conexin 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 opcin que define el nmero mximo de usuarios conectados simultneamente a tu mquina. Esto ha de adaptarse a tus propias necesidades. Si estamos hablando de un ordenador personal donde slo vas a conectar t, pues lo lgico sera que como mucho hubiera una. Si estamos hablando de un ordenador que har las veces de servidor compartiendo una carpeta a varias mquinas, debers decidir cuntos son. Cuanto tengas claro el nmero indcalo en la opcin siguiente en lugar de la X:
MaxStartups X

Ya podis guardar y cerrar gedit. Con esto tenis un servidor SSH bastante seguro. Como coment antes nunca es 100% seguro pero a priori podis estar bien tranquilos. Slo resta reiniciar el propio servidor SSH para que tome los cambios que hemos efectuado en su configuracin. Escribid en consola:
$ sudo /etc/init.d/ssh restart

Un ltimo consejo. Como habis visto podemos poner trabas al caco en cuanto a nuestra direccin y puerta, pero podemos ponerle problemas con la llave? La llave se entiende que es la contrasea. Y la respuesta es afirmativa. Podis hacerlo pero vosotros mismos. Poned claves en condiciones a vuestras cuentas. Usad como poco 5 6 caracteres y a ser posible que se entremezclen maysculas, minsculas y nmeros, por ejemplo: entr3TuXeSyp3p1n0s. Es un ejemplo exagerado, enrevesado a la hora de escribir e incmodo 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 tenis dos equipos, el que tenis delante y al que queris conectar. Obviamente debis 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 sera si no hubiramos cambiado el puerto, ya que intentara conectar por el puerto 22 que es el puerto por defecto del cliente. Podis cambiarlo si queris para que conecte por defecto por el puerto que le digis en lugar del 22 editando el fichero /etc/ssh/ssh_config. Descomentis (si est comentada) la opcin Port y en lugar de 22 ponis el que queris. La otra opcin, que es lo ms normal, es simplemente indicarle en la lnea de conexin qu puerto ha de usar:
$ ssh -p puerto tu_cuenta@ip_del_ordenador_remoto

Para que lo veais ms claro os voy a poner un ejemplo. Mi porttil 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 sera:
$ ssh -p 4884 pepino@192.168.1.4

Tras esto me pedir la contrasea:


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. Estars en el home de tu cuenta en la mquina remota. Qu podemos hacer?

Copiar ficheros

Seguramente es lo primero que se os ha pasado por la cabeza a algunos. Efectivamente podemos copiar ficheros fcilmente desde el ordenador remoto al que estamos usando en este momento, y es fcil (es una sla lnea):
$ scp ruta/archivo cuenta_en_ordenador_presente@ip_ordenador_presente:ruta/fichero

Complicado a priori, verdad? En el fondo no lo es, una vez sabis qu es cada cosa. ruta/fichero es el lugar donde est el archivo a copiar en la primera aparicin, y el lugar donde se va a copiar en la segunda. cuenta_en_ordenador_presente es la cuenta que estis usando (u otra) en el ordenador que tenis 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 porttil (el ordenador remoto) y quiero copirmelo 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 sla lnea):
$ 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 tambin tenemos que indicrselo. En el ordenador de sobremesa tengo abierto el puerto 8448, as pues (es una sla lnea):
$ scp -P 8448 /home/pepino/Desktop/pepino.jpg tux@192.168.1.6:/home/tux/pepinaceo.jpg

Nos pedir la contrasea 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 habra que poner toda la ruta si no queremos ya que tomara 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 mayscula. Otra gracia del asunto es que no tienes por qu copiarlo a tu equipo actual. Si tienes acceso a otro ordenador ms, 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 aadirle el parmetro -r para que copie todo su contenido (r=recursivo).

Otros usos

Bsicamente 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 prcticamente una aplicacin que est corriendo bajo el propio sistema operativo, por lo que podis administrar perfectamente vuestro equipo desde una consola y con acceso remoto va SSH. Dentro de una conexin SSH, podis 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 aplicacin de texto. De esta forma si queris podes navegar en la consola y descargaros algo en vuestra mquina 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 estn en otra mquina, podemos usar nautilus que siempre ser ms amigable para algunos que a travs 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 dnde ests dentro de la jerarqua de directorios. Una es a travs de botones donde cada carpeta es un botn que puedes pulsar para volver atrs: 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 lpiz. Nos quedaremos en el segundo modo y en la caja de texto de Lugar: escribiremos la orden de conexin:
ssh://tu_cuenta@ip_pc_remoto

Siguiendo con los ejemplos anteriores:


ssh://pepino@192.168.1.4

Esto sera si el puerto es el que est por defecto, como nosotros lo cambiamos tenemos que indicrselo con :puerto tras la ip. En nuestro ejemplo:
ssh://pepino@192.168.1.4:4884

Ahora nos pedir la contrasea de la cuenta. Tenemos estas tres opciones: Tomad la decisin que queris. 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 raz de la mquina remota. Si lo que queramos era que nos dejara en una carpeta determinada se lo podemos indicar en la lnea de conexin. Por ejemplo en el escritorio de nuestra cuenta:
ssh://pepino@192.168.1.4:4884/home/pepino/Desktop/

Ahora podis copiar archivos y carpetas con total comodidad desde vuestro escritorio GNOME. Ejecutar aplicaciones grficas remotamente Otra cosa muy prctica que podemos hacer gracias a SSH es ejecutar una aplicacin que no tenemos en el equipo actual pero s en el remoto y trabajar all. Es decir, puedes mirarlo como un servidor de trabajo grfico. Si an no queda claro os pongo otro ejemplo: Mientras estbais 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 tambin tienes cosas que hacer en l. No hay problema. Te pones en el equipo de tu hermano y abres la aplicacin que necesites de tu propio ordenador en el PC de tu hermano. Prctico, verdad? Pues es muy sencillo, basta con aadir un argumento ms (-X) y el nombre de la aplicacin 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 tambin 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 slo resta montar la carpeta como ya os mostr. Podis 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 prctica, he querido hacer esta pequea seccin dentro del manual para los fanticos de la personalizacin como yo. Si recordis cuando os expliqu la conexin 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. 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.

Вам также может понравиться