18
OpenSSH en Debían Para configurar SSH para la transferencia de archivos de un Servidor a un Cliente o en sentido contrario, debemos de seguir los siguientes pasos, también hablaremos de las diferentes formas de Login frente a un Servidor SSH y como crear un Túnel el cual es lo mismo que un reenviador de Puertos con SSH. Primero debemos de Instalar el SSH, en este documento trabajaremos con OpenSSH, y utilizaremos el siguiente comando para la instalación: # apt-get install ssh Después de la instalación podemos entrar a configurar el archivo del demonio con las necesidades que tengamos para nuestro Servidor, el archivo se encuentra en la ruta /etc/ssh/ y tiene el nombre de sshd_config, algunos parámetros que podemos configurar para el SSH dentro de este archivo son: # nano /etc/ssh/sshd_config Port 22 Este es el puerto por el cual va a escuchar nuestro Servidor lo podemos cambiar. Protocol 2 Este será la Versión con la cual vamos a trabajar, en este caso con la Versión 2. LoginGraceTime 120 Este será el tiempo que tendrá el Usuario para el Login frente al Servidor, este tiempo es en segundo. PermitRootLogin no Este parámetro es para permitir que las conexiones se puedan realizar como Root. MaxStartups 2 Esta línea es para indicar cuantas conexiones vamos a permitir simultáneamente en el Servidor. MaxAuthTries 2

OpenSSH en Debian Lenny

  • Upload
    bluder

  • View
    4.254

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OpenSSH en Debian Lenny

OpenSSH en Debían

Para configurar SSH para la transferencia de archivos de un Servidor a un Cliente o en sentido contrario, debemos de seguir los siguientes pasos, también hablaremos de las diferentes formas de Login frente a un Servidor SSH y como crear un Túnel el cual es lo mismo que un reenviador de Puertos con SSH. Primero debemos de Instalar el SSH, en este documento trabajaremos con OpenSSH, y utilizaremos el siguiente comando para la instalación:

# apt-get install ssh

Después de la instalación podemos entrar a configurar el archivo del demonio con las necesidades que tengamos para nuestro Servidor, el archivo se encuentra en la ruta /etc/ssh/ y tiene el nombre de sshd_config, algunos parámetros que podemos configurar para el SSH dentro de este archivo son:

# nano /etc/ssh/sshd_config

Port 22Este es el puerto por el cual va a escuchar nuestro Servidor lo podemos cambiar.

Protocol 2Este será la Versión con la cual vamos a trabajar, en este caso con la Versión 2.

LoginGraceTime 120Este será el tiempo que tendrá el Usuario para el Login frente al Servidor, este tiempo es en segundo.

PermitRootLogin noEste parámetro es para permitir que las conexiones se puedan realizar como Root.

MaxStartups 2Esta línea es para indicar cuantas conexiones vamos a permitir simultáneamente en el Servidor.

MaxAuthTries 2Esta será para el máximo de intentos de Login frente al Servidor.

PassworAuthentication yesAquí le diremos al Servidor si queremos trabajar con Autenticación con Login.

ListenAddress 192.168.1.1Aquí le estamos indicando que solo escuche peticiones por la interfaz con esta IP.

X11Forwarding yesEsta línea es para indicarle al Servidor si vamos a permitir aplicaciones graficas por medio de la consola SSH.

NOTA: Después de toda configuración en el Archivo sshd_config debemos de reiniciar el Servidor para que tome los cambios, lo haremos con el siguiente comando (# /etc/init.d/ssh restart).

Page 2: OpenSSH en Debian Lenny

Conectarnos Por SSH

Por medio de la Consola

Para conectarnos por medio de SSH a otro equipo (Recordemos que es un Modelo Cliente – Servidor), lo que debemos de hacer es lo siguiente:

# ssh Usuario@DireccionIP

Ejemplo:

# ssh [email protected]

NOTA: La primera vez que nos conectemos desde un Cliente al Servidor el nos preguntara si estamos seguros de continuar con la conexión (SI/NO), le diremos que SI. Después el nos pedirá la contraseña del Usuario con el cual estamos accediendo al Servidor, el cual puede ser un Usuario local o el mismo Root del Servidor SSH, así:

Smith:/# ssh [email protected] authenticity of host '192.168.1.67 (192.168.1.67)' can't be established.RSA key fingerprint is ae:d0:a5:ff:3e:85:da:0d:b5:69:d3:21:c0:32:8d:6d.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.1.67' (RSA) to the list of known [email protected]'s password:Linux Debian 2.6.26-1-686 #1 SMP Sat Jan 10 18:29:31 UTC 2009 i686The programs included with the Debian GNU/Linux system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.bluder@Debian:~$

Si hemos cambiado el Puerto del Servidor el comando para conectarnos de al Servidor será el siguiente:

# ssh –p Puerto Usuario@DireccionIP

Ejemplo:

# ssh –p 2233 [email protected]

Page 3: OpenSSH en Debian Lenny

Si queremos salir de una conexión SSH, solo debemos de digitar en la consola el comando Exit, así:

bluder@Debian:~$ exitlogoutConnection to 192.168.1.67 closed.Smith:/home/pepe#

Por modo Grafico

Para esta conexión debemos de teclear con la ayuda del teclado Alt + F2 el cual nos abrirá una pequeña ventana que se llama Ejecutar una Aplicación, en la cual debemos de ingresar las siguientes líneas (En este ejemplo nos conectaremos desde el Servidor a un Usuario pepe localmente, es decir nos conectaremos a nosotros mismos con el Usuario Pepe, localmente):

ssh://Usuario@DireccionIP

Ejemplo:

ssh://[email protected]

NOTA: Si es la primera vez de la conexión él nos preguntara si queremos continuar, por que desconoce la computadora remota, le daremos clic en Iniciar Sesión de Todos Modos. Después el nos pedirá la contraseña de ese Usuario (Es probable que tengamos que ingresar la contraseña 2 veces), así:

Page 4: OpenSSH en Debian Lenny

Igualmente si le cambiamos el puerto a nuestro Servidor SSH lo que debemos de hacer es agregarle el puerto de la siguiente forma:

ssh://Usuario@DireccionIP:Puerto

Ejemplo:

ssh://[email protected]:2233

Page 5: OpenSSH en Debian Lenny

Copiar Archivos por SSH

Ahora si lo que queremos es copiar archivos del un equipo a otro, utilizaremos el siguiente comando:

# scp RutadelArchivoaCopiar Usuario@DireccionIPdelDestinatario:RutadelDestinatario

Ejemplo:

# scp /home/pepe/Desktop/ejemplo.odt [email protected] :/home/bluder/

En este ejemplo lo que estamos haciendo es copiando un archivo desde el Cliente, el cual se llama ejemplo.odt que se encuentra en la maquina Cliente, copiaremos el archivo al Servidor el cual tiene la IP 192.168.1.67 y un Usuario con el nombre de Bluder, este Usuario es local del Servidor y por ultimo indicamos en que directorio quedara el archivo (Al final del directorio del destinatario podemos indicar otro nombre para el archivo que queremos copiar si queremos que quede con un nombre diferente al original).

NOTA: Si es la primera vez que copiamos archivos, nos preguntara si estamos seguros de continuar con la conexión (SI/NO), después debemos ingresar la contraseña del Usuario de la maquina local, en este caso Bluder, así:

Smith:/$ scp /home/pepe/Desktop/ejemplo.odt [email protected]:/home/bluder/The authenticity of host '192.168.1.67 (192.168.1.67)' can't be established.RSA key fingerprint is ae:d0:a5:ff:3e:85:da:0d:b5:69:d3:21:c0:32:8d:6d.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.1.67' (RSA) to the list of known [email protected]'s password: ejemplo.odt 100% 24 0.0KB/s 00:00

Si es el caso que cambiamos el puerto del SSH, lo que debemos de hacer para copiar archivos por medio de SSH es añadir al comando la opción –P y el puerto (La –P en Mayúscula), así:

# scp –P Puerto RutadelArchivoaCopiar Usuario@DireccionIPDestinatario:RutadelDestinatario

Es el mismo comando pero le debemos de indicar el puerto por el cual está escuchando al SSH.

Page 6: OpenSSH en Debian Lenny

Ejecutar Aplicaciones Web por medio de SSH

En este paso ejecutaremos como ejemplo la aplicación en debían Gimp, para creación y edición de imágenes, en este paso el Servidor SSH tiene la aplicación instalada pero el Cliente no, por lo cual lo vamos a ejecutar con el siguiente comando:

# ssh –X Usuario@Direccionip AplicacionGrafica

Ejemplo:

# ssh –X [email protected] gimp

Después de este comando nos cargara la aplicación que necesitamos tomar del Servidor, si el puerto del Servidor SSH lo cambiamos, debemos de ejecutar el siguiente comando:

# ssh –X –p 2233 Usuario@Direccionip AplicacionGrafica

Ejemplo:

# ssh –X –p 2233 [email protected] gimp

En nuestro ejecutamos el comando normal y nos debe de aparecer la aplicación, en este caso Gimp y nos cargara como lo muestra la imagen:

Page 7: OpenSSH en Debian Lenny

Esta es la bienvenida que nos da la Aplicación (Gimp):

Después nos podemos dar cuenta de que podemos utilizar la Aplicación como si estuviéramos en el Servidor:

Page 8: OpenSSH en Debian Lenny

Cambiar el Mensaje de Bienvenida de SSH

Si nos hemos dado cuenta el mensaje que nos da el SSH es el siguiente:

Linux Debian 2.6.26-1-686 #1 SMP Sat Jan 10 18:29:31 UTC 2009 i686

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

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.

Si queremos cambiar este mensaje, debemos de entrar a editar el archivo motd en la ruta /var/run/, con la ayuda del siguiente comando:

# nano /var/run/motd

Y colocar el mensaje que más nos parezca adecuado, guardamos el archivo y listo, así:

Recordemos que debemos de reiniciar el Servidor SSH para que los cambios se apliquen (# /etc/init.d/ssh restart).

Page 9: OpenSSH en Debian Lenny

Autenticación con SSH

Autenticación con Clave Pública

Como ya sabemos la autenticación hasta este momento ha sido con un password, el cual pertenece al Usuario local del Servidor SSH, lo que haremos en este momento será autenticarnos por medio de Llaves Asimétricas, las cuales crearemos por medio de SSH. Para generar el par de llaves utilizaremos el siguiente comando, podeos generar dos tipos de llaves RSA o DSA, así:

# ssh-keygen –t rsa ó # ssh-keygen –t dsa

Después de este comando el nos preguntara donde queremos guardar nuestro par de llaves, el nos da un directorio por defecto, en el cual le daremos Enter para decirle que aceptamos este directorio, después nos pedirá un password para este par de llaves, se lo podemos dar y a la hora de conectarnos al Servidor SSH solo nosotros sabremos el Password de la llave, o le daremos Enter para dejarlo así sin Password, así:

Después de esto debemos de entregarle la llave Pública al Servidor SSH, lo haremos con la ayuda de los comandos anteriores, así:

# scp RutadelallavePublica Usuario@DireccionIP:RutadellavesdelServidor

Ejemplo:

# scp /home/pepe/.ssh/id_rsa.pub [email protected] :/home/bluder/id_rsa_pepe.pub

Page 10: OpenSSH en Debian Lenny

En este comando el nos pedirá la contraseña que colocamos a nuestro par de llaves y después la contraseña del Usuario Bluder, después de copiar la llave pública al Servidor debemos de entrar a editar el archivo de configuración del demonio en el Servidor SSH con la ayuda del siguiente comando:

# nano /etc/ssh/sshd_config

Buscaremos la línea AuthorizedKeysFile y la des comentaremos, al final de esta línea encontramos una ruta y un archivo de configuración (%h/.ssh/authorized_keys), el cual debemos de crearlo en esa ruta (Podemos cambiar la ruta o el nombre del archivo), recordemos con que Usuario estamos trabajando, en este archivo se encontraran las llaves publicas de los Clientes que se autenticaran contra el Servidor SSH, guardaremos los cambios y saldremos del editor.

Después debemos de re direccionar la llave pública del Cliente al archivo que creamos el cual contendrá la llave, para ello ejecutaremos el siguiente comando:

# cat RutadelaLlave > /home/pepe/.ssh/authorized_keys

Ejemplo:

# cat /root/llaves/id_rsa.pub > /home/pepe/.ssh/authorized_keys

NOTA: Si tenemos más de una llave para agregar al archivo para la autenticación, lo que debemos de hacer es utilizar el mismo comando pero con doble signo >> para la redirección, de lo contrario nos borrara la llave que tengamos y nos dejara solo la ultima llave agregada.

Después de esto debemos de reiniciar el servidor SSH y nos debe de funcionar la Autenticación con Clave Publica (# /etc/init.d/ssh restart).

Para la conexión por medio de Claves Públicas debemos de utilizar el siguiente comando:

# ssh Usuario@DireccionIP

Ejemplo:

# ssh [email protected]

Este es el mismo comando para la conexión de SSH, pero el Servidor no nos debe de pedir la clave del Usuario pepe sino la clave que le asignamos a nuestra llave y si no le dimos ninguna debemos de entrar en limpio, porque la autenticación se hará con nuestro par de llaves (La Privada que tenemos nosotros y la Publica que tiene el Servidor).

Page 11: OpenSSH en Debian Lenny

En nuestro caso ingresamos desde el Cliente vía SSH y seguimos los pasos anteriores, después nos salimos del Servidor e ingresamos con la ayuda del par de llaves públicas, así:

Si estamos trabajando con un puerto diferente para el SSH, el comando debe de ser el siguiente:

# ssh –p Puerto Usuario@DireccionIP

Ejemplo:

# ssh –p 2233 [email protected]

Un problema que nos puede aparecer a la hora de la autenticación es que el Cliente no encuentra su propia llave Publica, esto se da porque de pronto el nombre de la llave cambio o tenemos varias llave en el mismo equipo, lo que debemos de hacer en este caso es decirle con que llave queremos trabajar, el comando debe de ser así:

# ssh –i RutadelaLlavePrivada Usuario@DiereccionIP

Ejemplo:

# ssh –i /home/pepe/id_rsa_pepe [email protected]

En este ejemplo la llave tenía otro nombre y lo debemos de especificar por que el SSH toma por defecto solo id_rsa ó id_dsa, si estamos trabajando con otra llave sería lo mismo, en este

Page 12: OpenSSH en Debian Lenny

comando debemos de colocar el -i que significa identificación. Si el puerto del Servidor SSH es otro debemos de indicarlo con el siguiente comando:

# ssh –p Puerto –i RutadelaLlavePrivada Usuario@DiereccionIP

Ejemplo:

# ssh –p 2233 –i /home/pepe/id_rsa_pepe [email protected]

Autenticación basada en Listas de Acceso con Autenticación de Cliente

En este paso de autenticación lo que haremos es autenticación por Clientes, es decir, la autenticación solo se le permitirá a los Usuario que indiquemos dentro del archivo de configuración del demonio SSH, para ello debemos de entrar a editar el archivo de configuración con la ayuda del siguiente comando, así:

# nano /etc/ssh/sshd_config

Dentro del archivo de configuración debemos de agregar la siguiente línea, en la cual le diremos el nombre del usuario con el cual se podrán conectar los Clientes y la dirección IP del Equipo de donde se podrán conectar, debe de ser así:

AllowUsers Usuario@DireccionIP

Ejemplo:

AllowUsers [email protected]

Esta línea nos dice que solo se podrá Autenticar el Usuario pepe (Que es un Usuario local del Servidor SSH) desde el equipo con la dirección IP 192.168.1.80. Recordemos que también se puede autenticar el Usuario Root si no hemos cambiado el parámetro en el archivo de configuración. Debemos de reiniciar el demonio SSH para que los cambios se actualicen en el Servidor.

Page 13: OpenSSH en Debian Lenny

Conexión de un Túnel VNC

Lo que debemos de hacer para una conexión por medio de un túnel SSH con VNC (Aplicación de Escritorio Remoto), con el cual queremos que la información que viaje de extremo a extremo sea lo más seguro posible, para ello debemos de tener instalado el VNC en el Servidor SSH y en el Cliente y listo, para crear el túnel debemos de utilizar el siguiente comando:

# ssh –L PuertoLocal:MaquinaRemota:PuertoRemoto Usaurio@DireccionIP

Ejemplo:

# ssh –L 5959:127.0.0.1:5900 [email protected]

En este comando le estamos diciendo que cree el túnel (-L), que tome el Puerto 5959 en la maquina local (Cliente), que tome la IP 127.0.0.1 (Que será la IP del Servidor, pero como lo indicaremos más adelante le podemos decir el Loopback y no revelaremos la IP del Servidor, aunque la podemos indicar) , el numero del Puerto real del VNC en el Server que es el 5900 (Si no lo hemos cambiado) y por último el Usuario para la conexión (bluder) y la Dirección IP del Servidor (192.168.1.67).

Después de la conexión y de la Autenticación que puede ser por cualquiera de las anteriores (En este caso tenemos la autenticación por llaves publicas), desde el Cliente entraremos al VNC e iniciaremos la Conexión por medio del túnel indicando la Dirección IP del Servidor (127.0.0.1) y el

Page 14: OpenSSH en Debian Lenny

Puerto que escogimos para la comunicación (5959) y listo iniciara la comunicación por medio del túnel, es un poco más lento pero está viajando por SSH.

NOTA: El Servidor VNC debe de estar configurado como lo desee el Administrador, en el caso de nosotros el Cliente no necesita verificación y no puede manejar nuestro equipo,

Recordemos que si le cambiamos el puerto al Servidor SSH, se lo debemos de indicar dentro del comando, de la siguiente forma:

# ssh –L –p Puerto PuertoLocal:MaquinaRemota:PuertoRemoto Usaurio@DireccionIP

Ejemplo:

# ssh –L –p 2233 5959:127.0.0.1:5900 [email protected]