Archivo de la etiqueta: servidor ssh

SSH Public Key

Deshabilitando el acceso al SSH del usuario Root

Antes de seguir este tutorial, es necesario que se hayan completado todos los pasos del tutorial anterior: Crear un usuario para acceder por SSH.

Después de haber completado el tutorial anterior, sabemos que tenemos un usuario que puede acceder al SSH pero no puede realizar ningún tipo de tareas administrativas, para poder hacerlo, vamos a unir al usuario “guiavps” a la lista de sudoers.

para ello usamos el comando visudo

visudo

y añadimos esta linea

guiavps     ALL=(ALL)    ALL

Si todo va bien, podremos iniciar sesión con el nuevo usuario por medio de SSH y probar algún comando sudo.

Por ejemplo podríamos usar:

sudo free -m

En mi caso recibí este mensaje al hacerlo:

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

Que en pocas palabras quiere decir, que la condición de administrador es una gran responsabilidad, y te recuerda que debes respetar a los demás y pensar antes de escribir.

Y finalmente, deshabilitamos el acceso de root al ssh editando el archivo /etc/ssh/sshd_config como primera tarea importante de nuestro nuevo usuario.

sudo nano /etc/ssh/sshd_config

y colocamos la siguiente linea

PermitRootLogin no

Reiniciamos el servidor SSH

/etc/init.d/sshd restart

Y con eso ya tendremos deshabilitado el acceso de root.

SSH Public Key

Crear un usuario para acceder por SSH

Una de las maneras de tener mayor seguridad en el vps, es deshabilitando el acceso de root al SSH, ya que este usuario tiene demasiados permisos pudiendo ser un verdadero problema si alguien llegara a acceder.

Con este tutorial, vamos a crear un nuevo usuario llamado “guiavps” además, eliminaremos todos los directorios innecesarios de este usuario, y en la segunda parte lo añadiremos al grupo sudoers y deshabilitaremos el acceso al SSH del root.

Para empezar, debemos conectarnos a nuestro SSH usando root quizas por ultima vez

ssh root@guiavps.com

y creamos al nuevo usuario mediante el comando:

useradd guiavps

para verificar si fue creado correctamente hacemos ls al directorio home

ls /home -l

Nos debe aparecer la carpeta del nuevo usuario similar a esto

drwx------  2 guiavps   guiavps   4096 Aug 23 15:31 guiavps/

Ahora le asignamos una contraseña fuerte

passwd guiavps

el sistema nos mostrara un mensaje similar a este solicitandonos la contraseña para el nuevo usuario

Changing password for user guiavps.
New UNIX password:

Al colocarla la primera vez, el sistema nos pedira que verifiquemos la contraseña en caso de que hayamos cometido algun error.

Retype new UNIX password:

Al verificar la contraseña correctamente, nos indicara el sistema que todos los tokens de seguridad han sido actualizados.

passwd: all authentication tokens updated successfully.

Con esto ya deberia ser posible acceder al SSH con el nuevo usuario si no hemos deshabilitado el acceso por medio de contraseña

Al iniciar el SSH con el nuevo usuario, podemos crear una Public Key y Private Key para hacer mas exclusivo el acceso.

Ahora eliminaremos los directorios y archivos que no necesitamos con este usuario.
Podemos ver los directorios del usuario haciendo LS

ls /home/guiavps -l

Generalmente, podremos ver los directorios public_html y public_ftp que para este usuario no son nada utiles, por lo cual los eliminamos:

rm /home/rob/public_* -Rfv

Nota: Ten cuidado al usar este comando, ya que puedes borrar algo que realmente necesitas, por lo cual debes fijarte bien en el directorio que vas a borrar.

Si tenemos cPanel veremos algo así:

removed directory: `/home/guiavps/public_ftp'
removed directory: `/home/guiavps/public_html/cgi-bin'
removed directory: `/home/guiavps/public_html'

 

Sigue con la segunda parte: Deshabilitando el acceso al SSH del usuario Root

SSH Public Key

Restringiendo el acceso al SSH

Existe un método de para hacer más seguro nuestro SSH, consiste en crear lo que se llama Public Key Authentication. Esto aumenta la seguridad del SSH ya que no sera posible conectarse si no se tiene la llave privada.

Utilizando estas llaves, se hace imposible para cualquier persona que desea acceder a nuestro SSH utilizar metodos de fuerza bruta, ya que para poder acceder a nuestro SSH es necesario que tenga nuestra llave privada y porsupuesto… no se la vamos a dar.

Accedemos como siempre a nuestro SSH

ssh -p 5685 root@127.0.0.1

Y ahora creamos las llaves con ssh-keygen

ssh-keygen -t dsa

Le damos enter a todas las preguntas que aparecen, ya que en este caso lo predeterminado esta perfecto, en uno de los pasos nos pedirá una passphrase para doble seguridad, no es necesario tenerla pero si la necesitas, ponla.

Al finalizar, movemos el archivo recien creado a ~/.ssh/authorized_keys

mv ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys

Si nos advierte que se va a sobre-escribir algo, le decimos que si.

ahora cambiamos los permisos de los archivos.

chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/*
chmod 0751 ~

Y pedimos que nos muestre la llave privada.

cat ~/.ssh/id_dsa

en la terminal nos aparecerá algo como esto:

-----BEGIN DSA PRIVATE KEY-----
MIIBugIBAAKBgQC/v+peIz+W3casWGsSiGZpjuW6q4kTv/2zv5/AhXeO7n8yvRwE
XyBE+FVID/EhifJwMg4/wXNprw79m9u7uVpeUrLXT+cg091uAgaU7Y/htncaX1cG
GzHnyr+lQ0oFeBHq1hsdfsdfwsw4pMeFvKMmKVIWLZssQ5cGCK2IpTqajvQIVAL7W
gi0D2Ac77t08yJg9oT+OFJ+lAoGAQLxdr8okIiWKkcBTfx710t1zhrr4Z4md3siK
0c9g4mhFbrBcDH1b2TaZz652XE1UwC7XF3N7ll+Jx/G8vmjbWdQzl6AbAp6bR28O
XItBba/BgZ9bAqwkzd4ZcSSRtbdhdFh9ng0gkgZwVJTCgaLF05XOa++aBY8AGl7p
erery45y56y6h6dswvbbbfVScq7n2gy3ta+kz7B9uPMUBmwxcSHlmS6mEmfVNTk
KR1ACDQSJfV+Py32V3z5Q9VSdm4e67exqx5+m5X7SW21TzB+rEY5Wmuryz1K4slf
nBZ/pOu+VQEqmILUR5WOqREfW9Y6TjFXQ0eAqUjKQwUHWYLzLYK28gIUYogpUYPO
+6g232CwQMxebTPYV5U=
-----END DSA PRIVATE KEY-----

Copiamos eso, lo pegamos en un editor de texto y lo guardamos en la computadora local como id_dsa, o si lo prefieren, pueden descargarlo por medio de FTP.

Despues de haber guardado el archivo en la computadora local, debemos borrarlo del VPS ya que no debe permanecer en él. Se puede borrar por FTP o usando el comando:

rm -f ~/.ssh/id_dsa

Ahora con el archivo que nos quedo en la PC local, tenemos 2 casos.

Si la computadora local también tiene linux, debemos mover el archivo id_dsa a la carpeta .ssh del usuario que utilizamos para la computadora local, lo podemos hacer usando la interfaz gráfica o más rápido por la terminal.
Por ejemplo, si lo guardamos el archivo id_dsa en el escritorio, debemos moverla así:

mv /home/usuario/Escritorio/id_dsa /home/usuario/.ssh

Por otro lado, si tenemos Windows y usamos PuTTY para conectarnos al SSH, debemos seguir las instrucciones en el tutorial:Convertir Llaves DSA de OpenSSH para PuTTY

Finalmente, debemos deshabilitar el acceso al SSH por medio de contraseña, para hacer esto, editamos el archivo /etc/ssh/sshd_config

nano /etc/ssh/sshd_config

y editamos algunas lineas para que queden asi: (OJO: los […] los coloco para indicar que son otras lineas solo para ubicarnos relativamente en el documento.)

[...]
# Autehentication:
[...]
RSAAuthentication yes
PubkeyAuthentication yes
[...]
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
[...]
ChallengeResponseAuthentication no
[...]
UsePAM no

Reiniciamos el servidor SSH:

/etc/init.d/ssh reload

Ya con esto, la única manera de conectarse al SSH es teniendo la llave DSA.