Cambiar contraseña de clave privada SSH

Suponiendo que ya tienes una clave privada SSH, así cambiarías su contraseña:

Continúa leyendo Cambiar contraseña de clave privada SSH

Anuncios

Los dogmas de Windows y por qué lo odio

Es bastante habitual que la gente que me conoce me hable de temas informáticos y acabe surgiendo mi odio a Windows en algún momento, y me pregunten el por qué.

Básicamente, el uso de Windows nos ha implantado dogmas que uno acepta sin más, pero que en realidad no tienen sentido. Veamos algunos.

Continúa leyendo Los dogmas de Windows y por qué lo odio

Cómo conectar remotamente a mi escritorio GNOME 3

Problema

Antiguamente podíamos configurar conexiones a nuestro escritorio Linux a través del protocolo FreeNX o su descendiente directo X2Go, pero poco a poco va haciéndose más imposible, ya que los escritorios completos modernos (GNOME 3, KDE, Cinnamon) utilizan ciertas extensiones de X11 (GLX, si no me equivoco) que no son compatibles con esos protocolos. En cualquiera de los casos, al ser ambos protocolos basados directamente en X11, y teniendo en cuenta que en breve X11 va a empezar a desaparecer en favor de Wayland y Mir, deduzco que NX y derivados también tenderán a desaparecer, ya que ni son ni serán compatibles.

Continúa leyendo Cómo conectar remotamente a mi escritorio GNOME 3

Gestiona tus sesiones SSH cómodamente

Al principio está bien eso de recordar cada usuario, servidor y contraseña a los que te conectas… hasta que el número empieza a aumentar y la memoria a disminuir.

Claves SSH

El viejo truco para aumentar la seguridad y disminuir la complejidad: la clave privada y la clave pública.

  1. Genera tu juego de claves:
    $ ssh-keygen
  2. Copia tu clave pública al servidor que usas:
    $ ssh-copy-id usuario@servidor
  3. Conéctate sin contraseña de por vida:
    $ ssh usuario@servidor

Bueno, puede que te haya pedido una contraseña, pero es la de desbloqueo de la clave, y normalmente puedes usar agentes que incluyen los entornos de escritorio que te permiten desbloquearla automáticamente el resto de la sesión.

Es importante proteger tu clave privada con contraseña, porque de otro modo cualquier usuario root podría acceder a ella.

Más información:

$ man ssh-keygen
$ man ssh-copy-id

Guarda tus datos de sesión

Puesto que ya te has olvidado de las contraseñas para siempre, tener un fichero de texto plano con el resto de tus datos de acceso no es descabellado. Ese fichero está en ~/.ssh/config y tiene un aspecto similar a este:

Host 11.22.33.44
User holamellamopepito

De modo que la próxima vez que ejecutemos ssh 11.22.33.44 automáticamente usará el usuario holamellamopepito para conectarse. Pero aún puede hacerse mejor:

# Conexión al trabajo
Host trabajo
HostName 11.22.33.44
User holamellamopepito
Port 44444
ForwardX11 yes

# Conexión a casa
Host casa
HostName 44.55.66.77
User pepitoencasa
ForwardX11 yes

Como ves, puedes poner comentarios, y si indicas el servidor como HostName, puedes ponerle una abreviatura en Host, que será la que uses al conectar. El resto de parámetros hasta el siguiente Host se aplicarán automáticamente.

Más información:

$ man ssh_config

Bloquear ataques por SSH

Detectar los ataques

Dado que recientemente he dado de alta un servidor CentOS, con acceso SSH, me preguntaba cuánto tardarían en llegarme los primeros ataques de fuerza bruta y de diccionario. Han llegado mucho antes de lo esperado (en menos de 1 mes), y han sido más de 4000 intentos de acceder como root y más de 13000 de acceder como otro usuario antes de que me diera cuenta:

# grep --count "Failed password for root" /var/log/secure*
4115

# grep --count "Failed password" /var/log/secure*
17358

Por suerte había desactivado el acceso a la cuenta root, y mi nombre de usuario no es uno muy usual, así que no han tenido éxito todavía, pero hay que ir tomando precauciones.

Bloquear a los atacantes automáticamente

Usaremos fail2ban, que está disponible en los repositorios, ya que SSHGuard no lo está, aunque parece algo más completo. Si tienes algún problema en la instalación, repasa las instrucciones.

# yum install fail2ban
# chkconfig fail2ban on
# service fail2ban start

La próxima vez que intenten molestarte, quedarán bloqueados durante un tiempo. Puedes configurar esto y más cosas en /etc/fail2ban/jail.conf.

Prohibir el acceso por contraseña y forzar el uso de claves públicas y privadas

Prácticamente será imposible que un atacante tenga éxito y encima te ahorrarás teclear la contraseña cada vez que quieras acceder al servidor remoto.

Primero hay que generar las claves. Puedes saltarte este paso si ya tienes unas:

$ ssh-keygen -t rsa

Ahora añádelo a los certificados con acceso autorizado:

$ ssh-copy-id tu-servidor.com

Y por último, prohibiremos el acceso por contraseña poniendo en no la opción PasswordAuthentication del fichero /etc/ssh/sshd_config.

Más técnicas de seguridad

Puedes consultar el manual de seguridad SSH de CentOS, bastante completito.