El libre pensamiento para un internet libre

No estas registrado.  

Anuncio

Wifi-libre.com: El libre pensamiento para un internet libre / Regístrese ahora

#1 26-10-2017 10:51:01

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 4,479

Guía básica conexión por protocolo SSH (servidor, cliente, llaves)

Guía básica conexión por protocolo SSH (servidor, cliente, llaves)

manual_ssh_6.jpg

Las iniciales SSH significan "intérprete de órdenes seguro" (Secure SHell).
Se creó para mejorar protocolos como el telnet que carecen de cifrado.
Con telnet los datos (y credenciales) circulan en texto claro y es un "problemón": Un intruso solo tiene que esnifar el trafico para recoger los credenciales y tomar el controlo de nuestro dispositivo.   
  Era necesario crear un protocolo "seguro"
  La primera versión del ssh fue lanzada en 1995 por Tatu Ylönen
Hoy en día (y desde el 1999) se usa la segunda implementación que es 100% código libre: OpenSSH

Conceptos básicos

 
  Es muy simple.

  1. Por un lado tenemos al "servidor". Es decir el dispositivo que vamos a controlar remotamente.

  2. Por otro lado tenemos el "cliente". Es decir el dispositivo que se conecta a nuestro servidor para controlarlo

how-does-ssh-protocol-work-920x272-SWKuhzNV.png

  Una vez que se establece un "túnel" SSH, las ordenes que entro en mi consola SSH "cliente" se ejecutan en el "servidor".
  Sobre la seguridad del protocolo.
SSH permite cifrar las comunicaciones con algoritmos de cifrado robustos.
La conexión se puede hacer por contraseña simple entrada en consola (se desaconseja) o bien mediante un par de llaves (una secreta y una privada)
Este segundo método introduce una dimensión "asimétrica" en el cifrado y es la configuración la más robusta.
  Si quieres saber más sobre las técnicas de cifrados empeladas por el ssh:

Las llaves (cliente)

  Come dije antes es mejor optar por un sistema con llaves publicas y privadas en lugar de una identificación mediante contraseña única.   
Vamos a generar llaves para el cliente
En el ejemplo uso un ordenador portátil con Kali linux
No importa el sistema operativo que tengamos instalado: openssh funciona en todos y está muy probablemente instalado.
Para configurar nuestro cliente necesitamos a openssh-client

manual_ssh_1.jpg

Vamos a generar llaves con cifrado RSA (el más empleado y viene configurado por defecto) de 4096 bits.
2048 bits se considera seguro hoy en día pero nosotros somos espabilados y tenemos un pie en el futuro. big_smile

ssh-keygen -b 4096
  1. Se nos preguntará adónde queremos guardar las llaves.
    Recomiendo prensar <Enter> directo para dejar la ruta por defecto, es decir en un directorio escondido ".ssh" en su carpeta personal.

  2. Se nos preguntará si queremos proteger el acceso a las llaves con una contraseña.
    Puede parecer redundante pero no lo es y se debe hacer. Si nuestro cliente está comprometido el servidor no estará comprometido automáticamente.

Una vez hecho veréis una "huella" en consola:

manual_ssh_2.jpg

La llave publica se puede difundir sin problemas y podéis ver la vuestra en el fichero id_rsa.pub

 cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDOdpSZCdZmXh83GLe7fFagxIwnnVfTlC2j+FVD9PblNMN3QPDs6qrliEJbpeixqeDEmF9gPgBVADa5Dj6+0OgkMfzXbQBwdKkZNd3gFX6nAwSPQhoWMc2TibvNKVEskNQCweVbxQK5M2uKSyx29nnYJJqzaJe/PmHTL/gTgILjwAU1JnZO4C3j3HGHHTV8JYmUja46w2WYNW/3Jj5QSFifEjeP0fdQQ4J4gH8htAtlqR6HUjpH3FuACuylVmssoRcdCtoQNBBG8vdMmgbXo36VP7j5hnYoYWwJHUPXxjeqaMMOcLWVucrjhChG33cNgIy3EaAk4FZqZV0hqg0nhsM4Cxm0PohMCB07ITH9Xp04V3bnB0+l6pX55Jpj1MpHIn7QoaZxbC+NiMQJYU69XvskNAm6aXhTlY1FQi5MBU3sOvOIhR7NChhNU1eGxhhh/nK+hlOkIWxnxJGtZnRDwxoZq0jZ1B0y1+h+Lpf+IrAz7Dn+lDzR75EtJLoDEc5FWSHW2G6LRzxs4NOrRS4pnH+arz+ZyxOvalc7F+z3LcYoQ74G9C6svjXrhy0tiXFuRgH37wP+lPDctv50iuUcVnp0tIPWvUxLYn33/41867pJnAIeYD7avceVQZdWnVrdCeUpgV31r9JJgghsQNW1zrSxKit+M3ebuFC1WZL4ityhPw== [email protected]

Copiar la llave y pegar la en un fichero que guardéis en un stick USB o en vuestra cuenta mega.
La cosa es tener la llave lista y accesible para copiar en el ordenador servidor.

Configuración servidor

En mi caso es un ordenador de sobre mesa con Debian stretch.
El paquete openshh-server viene instalado por defecto
Vamos a introducir en el servidor la llave publica que hemos generado en el cliente
Creamos un directorio para guardar la llave:

mkdir -p ~/.ssh

Y la guardamos en dicho directorio con nombre "authorized_key"

manual_ssh_3.jpg

Luego se puede repasar un poco el fichero de configuración "sshd_config".
Su ruta por defecto es /etc/ssh/sshd_config
Los parámetros son comentados (no se ejecutan) con el valor por defecto.
Me explico: Abrir el fichero con un editor de texto (con rpivilegios root)

sudo leafpad /etc/ssh/sshd_config

Mirren por ejemplo este trozo

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

Nos dice que si queremos deshabilitar el uso de contraseñas que circulan en texto calro debemos poner "no" (por defecto es yes)
Quitamos la almohadilla delante "PasswordAuthentication" y cambianos "yes" por "no" dejando este trozo así:

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

Podríamos modificar el puerto por defecto (es el 22) o deshabilitar la posibilidad de ejecutar el servidor X (aplicaciones gráficas) para incrementar la seguridad de nuestra conexión.
Este tema está en español y explica gran parte de los parámetros: Los Ficheros de Configuración

Conexión por protocolo ssh
  • Desde el servidor debemos iniciar el servicio

    sudo systemctl start ssh
  • Desde el cliente nos conectamos al servidor

    ssh <ip_servidor>

   Y debemos entrar la contraseña que hemos elegido anteriormente  para desbloquear las llaves .
¡Ya está! cool
Podéis ver en la captura mi consola pasa de kali (cliente, prompt en rojo) a debian (servidor, prompt en verde)

manual_ssh_5.jpg

  Estos son los pasos a seguir para una conexión ssh sencilla en nuestra red local y generalmente son suficientes
En caso de que no funcione se debe echar un ojo a la configuración de su router.  Según las interfaces y la configuración: Se debe deshabilitar una(s) regla(s) del firewall, o/y se debe activar el "port forwading" para el trafico TCP en el puerto 22 (si no hemos cambiado).
Y si usamos un firrewall personal en el cliente y/o el servidor debemos obviamente permitir el trafico ssh entre los dos puestos de trabajo.

Para concluir les recomiendo la lectura de los temas en Digital Ocean y especialmente este: SSH Essentials: Working with SSH Servers, Clients, and Keys

Desconectado

Anuncio

Wifi-highpower.es es distribuidor oficial de Alfa Network

#2 26-10-2017 21:16:58

d1k0w0ns
Expulsado

Registrado: 12-06-2015
Mensajes: 374

Re: Guía básica conexión por protocolo SSH (servidor, cliente, llaves)

muy bueno
kaliiznotdead big_smile y luego me dice a mi friki big_smile

Desconectado

#3 28-10-2017 12:12:35

Betis-Jesus
Very Important Usuario

Registrado: 29-03-2015
Mensajes: 534
Página Web

Re: Guía básica conexión por protocolo SSH (servidor, cliente, llaves)

puede ser un poco molesto a veces que si tenemos script de automatizacion de conexiones y ordenes y tenemos el servidor con la llave ssh no puede dificulta pero merece la pena es recomendable usar llave en el servidor y en el cliente y cambiar el puerto


viver y ser libre

Desconectado

Anuncio

Wifi-libre.com: El libre pensamiento para un internet libre / Regístrese ahora

Pie de página

Información del usuario

Ultimo usuario registrado: marconi
Usuarios registrados conectados: 0
Invitados conectados: 14

Estadisticas de los foros

Número total de usuarios registrados: 1,235
Número total de temas: 1,205
Número total de mensajes: 12,414

Máx. usuarios conectados: 69 el 15-10-2017 09:23:21