Aquí van algunos consejos para proteger el acceso remoto a un servidor linux, corriendo Secure Shell (SSH).
NOTA: el archivo de configuración, al menos en Debian, se encuentra situado en /etc/ssh/sshd_config
.
root
no pueda acceder via SSH. Siempre podremos escalar privilegios, una vez hayamos accedido al servidor, a través de su
o sudo
, pero es importante que el usuario root no pueda acceder directamente desde el servidor SSH.PasswordAuthentication No
), aumentaremos la seguridad, dejando el acceso solamente a través de pares de claves públicas y privadas (si has usado alguna vez un programa de cifrado tipo GPG o similar ya sabrás a qué me refiero).man sshd_config
te te permitirá profundizar más en las directivas de configuración./etc/ssh/sshd_config
) está configurado correctamente:# Desactivamos la autenticación via usuario/clave:
PasswordAuthentication No
# Activamos la autenticación con pares de claves:
PubkeyAuthentication yes
# Definimos el archivo donde irán las claves de acceso autorizadas.
# Como mi partición <em>home</em> está cifrada, defino que las claves se almacenen,
# de manera centralizada, dentro de /etc/ssh. Hay más información al respecto
# (importante el tema de los permisos en las carpetas) en la siguiente URL:
# https://help.ubuntu.com/community/SSH/OpenSSH/Keys
AuthorizedKeysFile /etc/ssh/%u/authorized_keys
# Activamos la atenticación RSA
RSAAuthentication yes
ssh-keygen -t rsa
(si estamos bajo GNU/Linux), o usando el programa puttygen.exe
del cliente PuTTY (si estamos en un entorno MS Windows). Para este ejemplo, suponemos que hemos llamado a la clave pública ssh-publico.key
y a la clave privada ssh-privada.key.ppk
.
Para subir la clave pública a nuestro servidor SSH, haremos uso de la utilidad scp
(pscp si usamos PuTTY): scp ssh-publico-key usuario@nuestroservidor:/etc/ssh/usuario
.
Reiniciamos el servidor sshd y voilà, ya podemos acceder usando el par de claves RSA.
Teneis más información sobre este último tema en los siguiente enlaces: