Archivo | Protocolo RSS for this section

Servidor SSH en Windows

Ya que me estoy metiendo cada vez mas en el mundillo linux, me pregunté si era posible instalar y configurar un Servidor SSH en Windows XP.

Lo haremos con el Software FreeSSh

Vamos a la pagina Oficial a la sección de descargas:

FREESSH

Escojemos el primero lo instalamos y le decimos que si a que nos cree las llaves y luego le decimos que si también a que freessh este como un servicio.

Luego en el apartado de la fecha de Windows le damos con el boton derecho encima del icono de FREESSH y le damos a setings y lo vamos dejando todo igual que en las imágenes

Vamos con la primera:

servicios_activos

Dejando esto así dejamos activado Telnet y SSH, vamos a la siguiente pantalla, la de SSH

conf_ssh

Yo he puesto un mensaje de Bienvenida como podeis comprobar.. y nos vamos a la pestaña de Users

Y añadimos uno, y le damos los permisos que queramos yo se los e dado todos:

conf_usuarios

Y con  eso ya funcionaría.. Hagamos la prueba con Ubuntu:

pruebas@pruebas-vmware:~$ ssh root@192.168.0.192
root@192.168.0.192′s password:
Microsoft Windows XP [Versi�n 5.1.2600]168.0.192
(C) Copyright 1985-2001 Microsoft Corp.
Bienvenido al Servidor SSH de Marc\222|\2402023
C:\Scripts\ssh>
C:\>cd Datos

C:\Datos>dir
El volumen de la unidad C es Windows
El n�mero de serie del volumen es: EC57-4DD5

Directorio de C:\Datos

14/03/2009  02:53 p.m.    <DIR>          .
14/03/2009  02:53 p.m.    <DIR>          ..
16/03/2009  04:40 p.m.    <DIR>          Correo
14/03/2009  02:53 p.m.    <DIR>          Descargas
0 archivos              0 bytes
4 dirs  183.839.596.544 bytes libres
C:\Datos>

Sólo nos deja hacer dir, porque al conectarse inicia CMD.exe…

SCP y SSHFS en Ubuntu

No definiré esta vez SCP con una definición de la Wikipedia ya que la que había no me acaba de gustar.
Asi que me fui a una estupenda página como es Guia Ubuntu y mire a ver que tal, y tan poco acaba de dar una definición.
Aunque para quien no lo sepa SCP es secury copy.
Se utiliza para hacer copias seguras de un pc a otro.
Empezaremos con ejercicios básicos.

Vamos a hacer primero una carpeta desde donde haremos todas las pruebas.

marc@seifreed:~/Escritorio/home/wordpress/tutoriales$ mkdir scp

Luego crearemos unos cuantos archivos para poder hacer la práctica:

marc@seifreed:~/Escritorio/home/wordpress/tutoriales/scp$ touch prueba.txt
marc@seifreed:~/Escritorio/home/wordpress/tutoriales/scp$ touch imagen.jpg
marc@seifreed:~/Escritorio/home/wordpress/tutoriales/scp$ mkdir archivos
marc@seifreed:~/Escritorio/home/wordpress/tutoriales/scp$ cd archivos/
marc@seifreed:~/Escritorio/home/wordpress/tutoriales/scp/archivos$ touch prueba.txt
marc@seifreed:~/Escritorio/home/wordpress/tutoriales/scp/archivos$ touch imagen.jpg

Bien empezaremos haciendo la copia desde mi PC es decir el usuario marc@seifreed a marc@pruebas

La sintaxis del comando es sencilla:

scp usuario@maquina:/home/carpeta .

La explicación es sencilla, scp con el usuario y el password dos puntos la ruta de la carpeta que queramos copiar y, en este caso pondremos un punto
que lo que quiere decir es que lo copiara en el directorio que nos encontramos actualmente.

Ahora desde la otra máquina obtendremos los archivos que hemos creado:

marc@pruebas:~$  scp marc@192.168.0.192:/home/marc/Escritorio/home/wordpress/tutoriales/scp/imagen.jpg .
The authenticity of host ’192.168.0.192 (192.168.0.192)’ can’t be established.
RSA key fingerprint is df:6f:5d:7d:de:77:84:ce:73:d0:90:cc:cd:02:06:e0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ’192.168.0.192′ (RSA) to the list of known hosts.
marc@192.168.0.192′s password:
imagen.jpg                                    100%    0     0.0KB/s   00:00

Luego crearemos mas archivos jpg para hacer otro tipo de copias:

marc@seifreed:~/Escritorio/home/wordpress/tutoriales/scp$ touch imagen2.jpg
marc@seifreed:~/Escritorio/home/wordpress/tutoriales/scp$ touch imagen3.jpg

Ahora copiaremos los archivos por extensión:

marc@pruebas:~$ scp marc@192.168.0.192:/home/marc/Escritorio/home/wordpress/tutoriales/scp/*.jpg .
marc@192.168.0.192′s password:
imagen2.jpg                                   100%    0     0.0KB/s   00:00
imagen3.jpg                                   100%    0     0.0KB/s   00:00
imagen.jpg                                    100%    0     0.0KB/s   00:00

También podemos copiar a otro directorio que no sea el actual ademas añadiendo *. y la extensión para que nos coja todos los archivos con diha extensión:

marc@pruebas:~$ scp marc@192.168.0.192:/home/marc/Escritorio/home/wordpress/tutoriales/scp/*.jpg /home/marc/pruebas/
marc@192.168.0.192′s password:
imagen2.jpg                                                                                100%    0     0.0KB/s   00:00
imagen3.jpg                                                                                100%    0     0.0KB/s   00:00
imagen.jpg                                                                                 100%    0     0.0KB/s   00:00

Ahora lo que haremos será copiar todo el contenido de una carpeta:

marc@pruebas:~$ scp -r  marc@192.168.0.192:/home/marc/Escritorio/home/wordpress/tutoriales/scp/archivos .
marc@192.168.0.192′s password:
imagen.jpg                                                                                 100%    0     0.0KB/s   00:00
prueba.txt

Y por último también podemos copiar un archivo y al copiarlo cambiarle el nombre

marc@pruebas:~$ scp marc@192.168.0.192:/home/marc/Escritorio/home/wordpress/tutoriales/scp/imagen.jpg /home/marc/imagen2.jpg
marc@192.168.0.192′s password:
imagen.jpg                                                                                 100%    0     0.0KB/s   00:00
marc@pruebas:~$ ls -ll|grep imagen2.jpg
-rw-r–r– 1 marc marc    0 2009-02-11 21:09 imagen2.jpg

Y ahora empezaremos con SSHFS

Primero hay que instalarlo si no disponemos de él:

marc@pruebas:~$ sudo apt-get install sshfs

Luego añadimos el usuario al grupo fuse que es el de sshfs:

marc@seifreed:~/Escritorio/home/wordpress/tutoriales/scp/archivos$ sudo usermod -G fuse -a marc
[sudo] password for marc:

Y ahora cargamos el módulo en memoria:

marc@pruebas:~$ sudo modprobe fuse

Ahora montaremos el directorio remoto con SSH, primero montaremos la carpeta donde ira montado el directorio remoto con SSH

marc@pruebas:~$ mkdir ~/sshfsremoto

Y ahora montaremos la unidad:

marc@pruebas:~$ sshfs marc@192.168.0.192:/home/marc/Escritorio/home/wordpress/tutoriales/scp ~/sshfsremoto
marc@192.168.0.192′s password:
marc@pruebas:~$ ls -ll ~/sshfsremoto
total 4
drwxr-xr-x 1 marc marc 4096 2009-02-11 19:45 archivos
-rw-r–r– 1 marc marc    0 2009-02-11 20:32 imagen2.jpg
-rw-r–r– 1 marc marc    0 2009-02-11 20:32 imagen3.jpg
-rw-r–r– 1 marc marc    0 2009-02-11 19:45 imagen.jpg
-rw-r–r– 1 marc marc    0 2009-02-11 19:45 prueba.txt

SI por el contrario queremos que se monte esa unidad cada vez que iniciamos sesión ya que trabajamos a diario con ello:

marc@pruebas:~$ sshfs#marc@192.168.0.192:/home/marc/Escritorio/home/wordpress/tutoriales/scp ~/sshfsremoto fuse defaults,auto 0 0

Y si tampoco queremos cargar el módulo siempre en memoria:

marc@pruebas:~$sudo sh -c “echo fuse >> /etc/modules”

Y si queremos desomontar el directorio es tan facil como:

marc@pruebas:~$fusermount -u ~/sshfsremoto

Referencias:

Guia Ubuntu

Colegio

SSH en Ubuntu

Escenario

Ubuntu 8.10

Vmware Workstation 8.10

Bien, una vez escribo aquí para hablar sobre SSH
SSH según la wikipedia..
SSH (Secure SHell) -intérprete de comandos seguro- es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix) corriendo. Además de la conexión a otras máquinas, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH.
Después de leer la definición de la Wikipedia hemos entendido que, sirve para acceder a máquinas remotas a través de una red, copiar datos y lo mas importante el tráfico va cifrado, no como en telnet
Lo primero que hay que hacer es instalar SSH, para ello es muy fácil, como root hacemos:

marc@pruebas:~$ sudo apt-get install ssh

Una vez que este instalado nos pondremos a hacer cositas..

Lo primero que haremos será acceder al servidor vía ssh, tiene unos requisitos y es que el usuario exista en el servidor SSH
Asi que empezamos..

seifreed@seifreed:~$ ssh marc@172.16.75.130
The authenticity of host ’172.16.75.130 (172.16.75.130)’ can’t be established.
RSA key fingerprint is 9e:2a:f2:1e:df:71:09:f6:da:b9:97:a5:6c:67:f7:d0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ’172.16.75.130′ (RSA) to the list of known hosts.
marc@172.16.75.130′s password:
Linux pruebas 2.6.27-11-generic #1 SMP Thu Jan 29 19:24:39 UTC 2009 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:

http://help.ubuntu.com/

Last login: Thu Jan 22 19:45:21 2009 from 192.168.233.1
marc@pruebas:~$

Ahora analizemos lo que acaba de pasar..
Primero de todo hemos echo un ssh usuario@ip_del_servidor
Luego se nos notifica que el host(equipo) no esta en nuestra lista de confianza.
Nos indica la llave con cifrado RSA que lleva y nos pregunta que si queremos seguir conectando a pesar de que no conocemos el host
Y entonces se añade el host con la clave publica en nuestra lista de confianza, ponemos el password y ya estamos dentro.
Para salir de la conexión basta con poner exit.
Ahora configuraremos para que podamos ejecutar aplicaciones gráficas en el servidor de manera segura, para ello nos conectaremos en el servidor
y en el archivo sshd_config habilitaremos la linia que hace falta:

marc@pruebas:~$ sudo nano /etc/ssh/sshd_config

Entonces, hay que buscar esta linia, y si esta comentada # descomentarla.
X11Forwarding yes
Después de cualquier cambio en cualquier fichero de configuracion hemos de reiniciar el servicio SSH

marc@pruebas:~$ sudo /etc/init.d/ssh restart
[sudo] password for marc:
* Restarting OpenBSD Secure Shell server sshd                           [ OK ]

Y esto nos servirá para poder ejecutar aplicaciones gráficas remotamente:

seifreed@seifreed:~$ ssh -X marc@172.16.75.130
marc@172.16.75.130′s password:
Linux pruebas 2.6.27-11-generic #1 SMP Thu Jan 29 19:24:39 UTC 2009 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:

http://help.ubuntu.com/

Last login: Thu Feb  5 19:12:31 2009 from seifreed.local
marc@pruebas:~$

Ahora ejecutamos una aplicación y verás como aparece en tu ordenador:

marc@pruebas:~$ xclock

Imagínate que ahora utilizamos ssh para administrar servidores que tengan el servicio SSH activado..
Es un poco pesado tener que estar poniendo password cada vez que tengamos que acceder al servidor que funcione bajo SSH,
asi que lo que haremos será hacer que no nos pida password.
Esto lo haremos generando una llave pública y copiarla al servidor que pertoca.
Vamos a empezar a generar la llave pública.

seifreed@seifreed:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/seifreed/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/seifreed/.ssh/id_rsa.
Your public key has been saved in /home/seifreed/.ssh/id_rsa.pub.
The key fingerprint is:
06:89:cf:a4:2d:94:27:69:0a:e3:8c:a7:54:3f:39:15 seifreed@seifreed
The key’s randomart image is:
+–[ RSA 2048]—-+
|       E         |
|     + ..        |
|o  .B =.         |
|+o.+.Oo.         |
|.+o o=+ S        |
|.o   .o.         |
|.                |
|                 |
|                 |
+—————–+
seifreed@seifreed:~$

En mi caso el cifrado lo e echo RSA, aunque también se puede hacer DSA, eso ya va a gustos

Ahora copiaremos la llave que hemos creado al servidor..

seifreed@seifreed:~$ ssh-copy-id -i marc@172.16.75.130
Now try logging into the machine, with “ssh ‘marc@172.16.75.130′”, and check in:

.ssh/authorized_keys

to make sure we haven’t added extra keys that you weren’t expecting.

Y ahora nos conectaremos para verificar que NO nos pide password:

seifreed@seifreed:~$ ssh marc@172.16.75.130
Linux pruebas 2.6.27-11-generic #1 SMP Thu Jan 29 19:24:39 UTC 2009 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:

http://help.ubuntu.com/

Last login: Thu Feb  5 19:37:34 2009 from seifreed.local
marc@pruebas:~$

Como podeis ver no nos pide password se conecta directamente

Bueno, ahora también podremos ejecutar comandos de manera remota y ademas ejecutaremos la aplicacion de manera gráfica

seifreed@seifreed:~$ ssh -X marc@172.16.75.130 “xclock”

Ahora vamos a hacer que SSH sea un poco mas seguro, para ello tocaremos un par de cosas del archivo de configuración.

Primero denegaremos que se puedan conectar en modo root vía SSH.
Para ello vamos al fichero de configuración que ya habíamos tocado antes.

marc@pruebas:~$ sudo nano /etc/ssh/sshd_config

y cambiamos la linia que por defecto esta en yes a no

PermitRootLogin no

Y entonces veremos como ahora no es posible conectarse como root

seifreed@seifreed:~$ ssh root@172.16.75.130
root@172.16.75.130′s password:
Permission denied, please try again

SSH utiliza el puerto por defecto el 22, eso lo podemos cambiar también en el fichero de configuración sshd_config:
Miramos la siguiente linia y cambiamos el 22 por el numero que queramos.

# What ports, IPs and protocols we listen for
Port 30

Acordaros que hay que reiniciar SSH cada vez que hagamos un cambio en la configuración

marc@pruebas:~$ sudo /etc/init.d/ssh restart
* Restarting OpenBSD Secure Shell server sshd                         [ OK ]

Entonces a la hora de conectarnos tenemos que especifIcarle en que puerto esta corriendo SSH

seifreed@seifreed:~$ ssh -p 30 marc@172.16.75.130
Linux pruebas 2.6.27-11-generic #1 SMP Thu Jan 29 19:24:39 UTC 2009 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:

http://help.ubuntu.com/

Last login: Thu Feb  5 20:12:12 2009 from seifreed.local
marc@pruebas:~$

Vale, ahora lo que haremos es modificar el tiempo que tiene el usuario para meter la contraseña de acceso.
Para ello volvemos a ir al fichero de configuración y tocamos la siguiente linia:

marc@pruebas:~$ sudo nano /etc/ssh/sshd_config
# Authentication:
LoginGraceTime 120

Y como siempre reiniciamos el servicio:

marc@pruebas:~$ sudo /etc/init.d/ssh restart
* Restarting OpenBSD Secure Shell server sshd                         [ OK ]

Naturalmente para la gente que disponga de su llave pública este parámetro no sirve de nada.
Y para acabar ya de mejorar la seguridad pondremos que solo pueda fallar el password 2 veces.

marc@pruebas:~$ sudo nano /etc/ssh/sshd_config
MaxStartups 2
marc@pruebas:~$ sudo /etc/init.d/ssh restart
* Restarting OpenBSD Secure Shell server sshd                         [ OK ]

Ahora veremos como no deja:

seifreed@seifreed:~$ ssh -p 30 pruebas@172.16.75.130
pruebas@172.16.75.130′s password:
Permission denied, please try again.
pruebas@172.16.75.130′s password:
Permission denied, please try again.
pruebas@172.16.75.130′s password:
Connection closed by 172.16.75.130

Y acabaremos la seguridad SSH denegando o dejando acceder via SSH por el nombre de usuario,
Nos vamos al fichero de configuracion y al final de todo el archivo escribimos lo siguiente:

AllowUsers marc
DenyUsers prueba

Yo e puesto mis usuarios pero vosotros teneis que poner los vuestros:
Acordaros de reiniciar el servicio ;-)

Ahora le aplicaremos un poco de estilo a SSH cambiando el mensaje de bienvenida al conectarnos a una máquina

Asi que hacemos lo siguiente nos conectamos al servidor primero, y luego vamos a editar el siguiente archivo:

marc@pruebas:~$ sudo nano /etc/issue.net

Y ahí dentro escribimos lo que queremos que salga, pero antes de probarlo vamos al fichero sshd_config y le cambiamos una liniea para que salga esto:

Banner /etc/issue.net

Esa linia la hemos de descomentar y ademas mirar que la ruta /etc/issue.net este bien puesta.
Y ahora lo que haremos será poner un mensaje una vez nos hayamos logueado con exito en la máquina:

marc@pruebas:~$ sudo nano /var/run/motd

Borrar todo lo que haya ahi dentro y poned vuestro mensaje y luego reiniciar el servicio.
Ahora veremos como queda:

seifreed@seifreed:~$ ssh -p 30 pruebas@172.16.75.130
Bienvenido, te estas conectando al Servidor de Prueba SSH
pruebas@172.16.75.130′s password:
Hola!
Te has conectado con exito al servidor de pruebas SSH

pruebas@pruebas:~$

Y hasta aquí el tutorial de SSH, dentro de poco colgaré SCP y SSHFS

Saludos

Referencias:

Guia Ubuntu

Colegio

SSH Parte 1

Probado en Ubuntu:

Instalar ssh  para hacer de servidor

apt-get install ssh

Configurar el acceso a tu máquina:

Mirar el archivo de configuración

/etc/ssh/sshd_config

Si queremos que alguien se conecte añadimos el usuario

Agregamos un linea en el archivo anterior

AllowUsers NOMBRE DE USUARIO

Y si queremos denegar un usuario:

DenyUsers NOMBRE DE USUARIO

Otra manera de denegar el acceso a tu máquina es editando el archivo

/etc/passwd

Buscar el usuario y al final pone /bin/bash o bin/sh lo cambiamos por false

Empezar el servicio SSH

sudo /etc/init.d/ssh start

Como conectarse a una máquina remota?

ssh NOMBRE DE USUARIO IP O NOMBRE DE LA MÁQUINA

Ejemplo:

$ssh seifreed@192.168.0.192

introducimos la contraseña

Y ya estaremos dentro de la máquina remota.

Como abrir aplicaciones gráficas?

2   maneras

1-Por ssh

ssh seifreed@192.168.0.192 -Y

2-En el host

Editando el archivo /etc/ssh/sshd_config

Linea xForwanding tiene que estar yes

Y también en el cliente

Editando el archivo  /etc/ssh/ssh_config

XForwanding yes

Recordad que no haya  # delante de xForwanding, por que no leera esa linea

Copiar archivos a máquia remota

scp archivo local usuario@ipremota:archivoremoto

Ejemplo:

scp hola seifreed@192.168.0.192:hola

Archivo remoto a la máquina local

scp user@ipremota:archivolocal