¡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
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 212.3: Secure Shell - SSH (4) 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 o 2). |
ListenAddress | IPs por las que escucha el servicio (default *). |
PermitRootLogin | Autoriza las conexiones del usuario root (default yes). |
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). |
212.3: Secure Shell - SSH (4) Conexiones desde el cliente SSH 1.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.
cat .ssh/known_hosts |1|a+v0PpNsMsfN0bpyjixPaui7cXY=|5qdpp3HtYMN8QpfYjCJTwuI0v/0= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1q4XDgFtvhMMtpOOUWa0RMT6rrZz6KpI7zHqaIbtQNmtep7aY7ghdbZF3vq+nAEUb92+y9gZ8ZDS9UzBXEB1fVwRx2NTZ/s3TnDmCkzBp7O2UevNJZLeyOnOsbk1r8L9csui/MiStcKPdRMWMomFZOJWiXAiq2B4dfqwe24YE4Hgd3PQKCWaOWhlbv9d4oGciaqnZOkGpRGsf8iVnwuqv12/zyNbxUIW3s6Iu0LaS/5AalJbvZFlXoJXGzxdfasdfc8AlyLQZRoE/VAt4Jkj32dSf02S2KK8lGQ4OeUaBQLaMUjPKBxoXh8qwQd2FsJQcG7a6t4zm+rax52ip7SLQNxPJB+kw==
212.3: Secure Shell - SSH (4) Conexiones desde el cliente SSH 2.Autenticación por claves • Método mas fiable de autenticación. • Creación de claves en el cliente:
ssh-keygen -t RSA
Se crearán los ficheros:
.ssh/id_rsa.ssh/id_rsa.pub
Es necesario copiar la clave publica al servidor en el fichero .ssh/authorized_keys
• En cada conexión el servidor comprueba en dicho fichero del directorio del usuario, que contiene la clave pública del cliente. 212.3: Secure Shell - SSH (4) Conexiones desde el cliente 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
212.3: Secure Shell - SSH (4) Creación de Tuneles SSH 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 destinousuario: 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.
Creación de Tuneles SSH
ssh -L 80:192.168.0.99:80 usuario@myserver.com
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
