Herramientas de usuario

Herramientas del sitio


informatica:certificaciones:lpic:lpic-2:212_system_security:212.3_secure_shell_ssh

¡Esta es una revisión vieja del documento!


212.3 Secure shell (SSH)

Pertenece a Topic 212: System Security

  • Weight: 4
  • Description: Candidates should be able to configure and secure an SSH daemon. This objective includes managing keys and configuring SSH for users. Candidates should also be able to forward an application protocol over SSH and manage the SSH login.
  • Key Knowledge Areas:
    • OpenSSH configuration files, tools and utilities
    • Login restrictions for the superuser and the normal users
    • Managing and using server and client keys to login with and without password
    • Usage of multiple connections from multiple hosts to guard against loss of connection to remote host following configuration changes
  • Terms and Utilities:
    • ssh
    • sshd
    • /etc/ssh/sshd_config
    • /etc/ssh/
    • Private and public key files
    • PermitRootLogin, PubKeyAuthentication, AllowUsers, PasswordAuthentication, Protocol

OpenSSH

El protocolo SSH fue diseñado para proporcionar servicios de autentificación y de confidencialidad al intercambio de datos entre un cliente y un servidor.

La implementación open source del protocolo SSH es OpenSSH.

El daemon del servicio es /etc/init.d/sshd

El fichero de configuración /etc/ssh/sshd_config

Configuración

Directivas de configuración de /etc/ssh/sshd_config:

Directiva Descripción
Port Número de puerto de escucha del servicio (default 22).
Protocol Versión del protocolo utilizada (1, más inseguro, o 2).
ListenAddress IPs por las que escucha el servicio (default *)
PermitRootLogin Autoriza las conexiones del usuario root (default yes, aunque en debian es al revés)
PubKeyAuthentication Autoriza las conexiones con llave pública (default yes).
PasswodAuthentication Autoriza las conexiones con contraseña (default yes).
AllowUsers Indica usuario/usuarios que tienen permitido el acceso.
AllowGroups Indica grupo/grupos que tienen permitido el acceso.
AllowTcpForwarding Autoriza la creación de túneles SSH (default yes).
X11Forwarding Autoriza el reenvío de sesiones X a través de SSH (default yes).

Conexiones desde el cliente SSH

Tenemos dos métodos para conectarnos a un servidor SSH:

  • Autenticación por contraseña
  • Autenticación por claves

Autenticación con contraseña

Para evitar cualquier tipo de riesgo de falsificación del servidor, el cliente realiza una comprobación de la identidad del servidor en la primera conexión.

Creando y validando una huella digital del servidor.

La huella se guarda en un archivo llamado known_hosts, alojado en el directorio oculto .ssh en el directorio personal del usuario.

En las posteriores conexiones se contrastará esa huella digital para verificar que se trata del mismo servidor y que nadie ha hecho un cambio en el servidor de destino.

cat ~/.ssh/known_hosts
|1|a+v0PpNsMsfN0bpyjixPaui7cXY=|5qdpp3HtYMN8QpfYjCJTwuI0v/0= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1q4XDgFtvhMMtpOOUWa0RMT6rrZz6KpI7zHqaIbtQNmtep7aY7ghdbZF3vq+nAEUb92+y9gZ8ZDS9UzBXEB1fVwRx2NTZ/s3TnDmCkzBp7O2UevNJZLeyOnOsbk1r8L9csui/MiStcKPdRMWMomFZOJWiXAiq2B4dfqwe24YE4Hgd3PQKCWaOWhlbv9d4oGciaqnZOkGpRGsf8iVnwuqv12/zyNbxUIW3s6Iu0LaS/5AalJbvZFlXoJXGzxdfasdfc8AlyLQZRoE/VAt4Jkj32dSf02S2KK8lGQ4OeUaBQLaMUjPKBxoXh8qwQd2FsJQcG7a6t4zm+rax52ip7SLQNxPJB+kw==

Autenticación por claves

Método mas fiable de autenticación. Se basa en el cifrado asimétrico (claves públicas y privadas).

Creación de claves en el cliente:

ssh-keygen -t RSA

Se crearán los ficheros:

  • .ssh/id_rsa: clave privada
  • .ssh/id_rsa.pub: clave pública

Es necesario copiar la clave publica al servidor en el fichero .ssh/authorized_keys

La clave privada no puede salir de nuestra máquina. Solo se comparte la clave pública.

En cada conexión, el servidor comprueba en dicho fichero del directorio del usuario, que contiene la clave pública del cliente.

Conexiones SSH

Apertura de sesión desde el cliente:

ssh usuario@servidor

Apertura de sesiones con X11 desde el cliente:

ssh -X usuario@servidor

Copias remotas de archivos con ssh:

scp <archivo_local> <usuario>@<servidor>:</path/archivo_remoto>

Creación de Tuneles SSH

Una de las opciones más interesantes de OpenSSH es crear un túnel seguro a través del cual podremos redirigir el tráfico de otros protocolos.

Podemos crear un túnel entre un cliente y un servidor con el siguiente comando:

ssh -L <puerto>:<destino_tráfico>:<puerto_destino> <usuario>@<servidor>
  • -L: reenvía un puerto local a un servidor SSH (establecimiento del túnel)
  • puerto: el puerto local que se reenviará.
  • destino_tráfico: dirección IP o nombre de la máquina destino del tráfico.
  • puerto_destino: puerto al que se reenviará el tráfico en la máquina destino
  • usuario: cuenta de usuario en el servidor usada para desplegar el túnel.
  • servidor: dirección IP o nombre del servidor que será el extremo del túnel.

Ejemplo:

ssh -L 80:192.168.0.99:80 usuario@myserver.com

En la imagen nosotros estamos en una workstation y a través de Internet tenemos acceso al servidor SSH de myserver.com y queremos acceder al servidor web que hay en la red local 192.168.0.99. Creando un tunel desde el puerto 80 de nuestro equipo local hasta el puerto 80 del equipo en 192.168.0.99 mediante el servidor SSH que hay en myserver.com lo podremos lograr.

212.3: Secure Shell - SSH (4) PREGUNTA DE EXAMEN: A security-conscious administrator would change which TWO of the following lines found in an SSH configuration file? A.Protocol 2,1 B.PermitEmptyPasswords no C.Port 22 D.PermitRootLogin yes E.IgnoreRhosts yes 212.3: Secure Shell - SSH (4) PREGUNTA DE EXAMEN: When connecting to an SSH server for the first time, its fingerprint is received and stored in a file, which is located at: A.~/ .ssh/fingerprints B.~/ .ssh/id_dsa C.~/ .ssh/known_hosts D.~/ .ssh/id_dsa.pub E.~/ .ssh/gpg.txt

informatica/certificaciones/lpic/lpic-2/212_system_security/212.3_secure_shell_ssh.1618927959.txt.gz · Última modificación: por tempwin