SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Mejorando la seguridad
      del servicio SSH

                 Antonio Ognio
              antonio@linux.org.pe



GRUPO DE USUARIOS DE LINUX DEL PERU -//- FEBRERO 2010
Instalación

 Ubuntu, Debian y distros derivadas:



    $ sudo apt-get install ssh

 RHEL, CentOS, Fedora y distros derivadas:


    $ sudo yum install ssh

MEJORANDO LA SEGURIDAD DEL SERVICIO SSH      FEBRERO 2010
Uso básico:

 Acceso a la shell en un servidor remoto:
   usuario@desktop:~$ ssh usuario@servidor.com
   usuario@servidor.com's password:
   Linux host.servidor.com 2.6.18.8-srv #1 SMP Tue Nov 10 16:12:12 UTC
   2009 i686

   The programs included with the Ubuntu system are free software;
   the exact distribution terms for each program are described in the
   individual files in /usr/share/doc/*/copyright.

   Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
   applicable law.

   To access official Ubuntu documentation, please visit:
   http://help.ubuntu.com/
   Last login: Fri Feb 19 22:27:15 2010 from desktop.empresa.com.pe
   usuario@host:~$



MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                         FEBRERO 2010
Otros usos comunes:

 Ejecutar comandos en un servidor remoto:
   usuario@desktop:~$ ssh mail.miempresa.com "uptime"
   12:18:15 up 2 days, 1:57, 0 users, load average: 0.00, 0.01, 0.00


 Copiar archivos a / desde un servidor remoto:
   usuario@desktop:~$ scp -r carpeta1 usuario2@otro.servidor.com:/ruta

   usuario@desktop:~$ scp -r otro.servidor.com:carpeta1 .


 Cliente del servicio de FTP seguro (sftp):
   usuario@desktop:~$ sftp usuario5@mi-otro.servidor.com
   sftp> pwd
   Remote working directory /home/usuario5
   sftp> _



MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                         FEBRERO 2010
SSH nos permite:
 ●
     Administrar servidores remotamente por la línea de comandos
     ●
       Ejecutar comandos individuales
     ●
       Iniciar una sesión interactiva

 ●
     Transferir archivos
     ●
       scp (secure copy)
     ●
       sftp (secure file transfer protocol)

 ●
     Abrir túneles
     ●
       Puerto remoto disponible en un puerto local
     ●
       Puerto local disponible localmente en servidor remoto




MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                 FEBRERO 2010
Potenciales problemas de seguridad:
 ●
     Acceso por parte de usuarios no autorizados
     ●
       Usuarios de correo que siguen una shell activa
       ●
         Muchas veces es la misma contraseña
     ●
       Ex-trabajadores que aún mantienen una cuenta
     ●
       Atacante interno que averigua la clave:
       ●
         Por ingeniería social (ej. haciéndose pasar por el jefe)
       ●
         Mirando sobre los hombros del administrador

 ●
     Ataques desde Internet
     ●
       Fuerza bruta (probar muchas contraseñas hasta que ligue)
     ●
       Exploits del servicio SSH (se aprovecha de bugs)
       ●
         SSH es un programa más y puede tener bugs
     ●
       Man-in-the-middle


MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                    FEBRERO 2010
Detalles por corregir:
 ●
     Utilizar solo la versión más segura del protocolo

 ●
     Deshabilitar el acceso como root
      ●
        Utilizar sudo para convertirse en root

 ●
     Limitar el acceso solo a cuentas autorizadas

 ●
     Deshabilitar por completo el uso de contraseñas
      ●
        Utilizar llaves criptográficas (DSA / RSA)

 ●
     Utilizar un puerto distinto
      ●
          Despistar a muchos atacantes no muy sofisticados

 ●
     Advertir adecuadamente a potenciales usuarios no autorizados
      ●
        Colocar un banner que mencione las leyes locales

 ●
     Abrir el puento solo a IPs autorizadas
        ●
           TCP wrappers
        ●
           Port knocking
        ●
           Single Packet Authorization



MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                             FEBRERO 2010
¿Dónde hacer los cambios?

 Respaldamos el actual archivo de configuración:

   sudo cp /etc/ssh/sshd_config /etc/ssh/ssd_config.bak




 Editamos el archivo de configuración:

   sudo vi /etc/ssh/sshd_config

   sudo nano /etc/ssh/sshd_config




MEJORANDO LA SEGURIDAD DEL SERVICIO SSH             FEBRERO 2010
Defaults de una buena distro:
 Si no los tiene cambiarlos de inmediato:
   # Solo el protocolo en su versión 2
   Protocol 2

   # Separación de privilegios en el demonio ssh
   UsePrivilegeSeparation yes

   # Venta de tiempo para intentar iniciar sesión
   LoginGraceTime 120

   # No permitir acceso a carpetas $HOME en las que
   # terceros usuarios tiene permiso de escritura
   StrictModes yes


 En Ubuntu y Debian como en otras distros vienen por omisión.

MEJORANDO LA SEGURIDAD DEL SERVICIO SSH               FEBRERO 2010
Escoger quien tiene acceso:
 Mejoras a realizar en cualquier sistema UNIX:

   # Deshabilitar el acceso como root

   PermitRootLogin no

   # Limitar acceso a solo una lista
   # de cuentas de usuario o grupos

   AllowUsers jperez mgarcia
   AllowGroups administradores


 Dejamos fuera a usuarios de correo y otros usuarios de UNIX

MEJORANDO LA SEGURIDAD DEL SERVICIO SSH             FEBRERO 2010
Deshabilitar contraseñas:
 Eliminamos ataques de fuerza bruta comunes:


   # Autenticación usando contraseñas
   PasswordAuthentication no

   # Uso de llaves criptográficas
   RSAAuthentication yes
   PubkeyAuthentication yes

   # Ruta del archivo con llaves autorizadas por usuario
   AuthorizedKeysFile     %h/.ssh/authorized_keys




MEJORANDO LA SEGURIDAD DEL SERVICIO SSH             FEBRERO 2010
Generando una llave criptográfica:
 Eliminamos ataques de fuerza bruta comunes:


   $ ssh-keygen -t dsa

   Generating public/private dsa key pair.
   Enter file in which to save the key (/home/usuario/.ssh/id_dsa):
   Enter passphrase (empty for no passphrase):
   Enter same passphrase again:
   Your identification has been saved in /home/usuario/.ssh/id_dsa.
   Your public key has been saved in /home/usuario/.ssh/id_dsa.pub.
   The key fingerprint is:~
   3d:43:8e:52:ac:e1:8c:97:da:16:d4:9b:37:4d:ba:80 usuario@desktop




     IMPORTANTE: Guarda tu llave privada en un lugar seguro

MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                               FEBRERO 2010
Observando los archivos generados:
 Conozcamos como son las llaves que usa SSH:

   $ ls -l .ssh/

   total 28
   -rw-r--r--   1   usuario   usuario 531    2010-02-18   12:00   config
   -rw-------   1   usuario   usuario 668    2008-09-05   15:15   id_dsa
   -rw-r--r--   1   usuario   usuario 942    2008-09-05   15:15   id_dsa.keystore
   -rw-r--r--   1   usuario   usuario 604    2008-09-05   15:15   id_dsa.pub
   -rw-r--r--   1   usuario   usuario 8470   2010-02-20   00:34   known_hosts


   $ file .ssh/id_dsa
   .ssh/id_dsa: PEM DSA private key


   $ file .ssh/id_dsa.pub
   .ssh/id_dsa.pub: ASCII text, with very long lines




MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                                     FEBRERO 2010
Observando los archivos generados:
 Les presento a una llave privada:

   $ cat .ssh/id_dsa
   -----BEGIN DSA PRIVATE KEY-----
   MIIBuwIBAAKBgQDp8z4vPh5em02JIoCETf2/HaP7+bfYb315Dl49rcCjH7KTvIin
   zOub3R1mnJx7E+f+e2hMFX6EVZRSvNLAYN8SnB0NF1SNGj1JirYDiPhFsHfoq+bm
   2C0KXvExIttkYDwQVTb9gFEGyGAVoaA/2DblQgerJbRUZQpcykCrC2C/FwIVALHR
   vgAOs7AbwfbLNAnaMp/uhAAxAoGBAKcDS1GmlM8s2qt7vC1/mNHnVAAeh7idI7wv
   KVsQ/jPkOa/P3mcqYt2HbK62cbTkJDbtc+Vtkun89f+QeBmPdiZ0g7C4E8vnV6RR
   UXA4lz/NTRXYWwLPJ5dvLnMaL8hmtSx4HhTu1GYtIs1KMJmHd5I+ZHjMiKItuX/o
   OsK98wRxAoGAUE6qf6rQk5DGJada9jof1Ddpq5GRuDAB4mAbfApp1MRwHeylbIle
   wvdo8bUNrUIGPdGwXoyzCZogzH5CLgwGtGOE8O816PdE+D6GmthZT+8Wgw9OOV8b
   nqWMyhN4JQbsiNmtyr6nfYeQegIaoIcP1dAoyT7kM11taoKhSwTQxS0CFBjc2TCc
   Y+vRyigR3p5DKJibmFWA
   -----END DSA PRIVATE KEY-----




MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                         FEBRERO 2010
Observando los archivos generados:
 Les presento a una llave pública:

   $ cat .ssh/id_dsa.pub
   ssh-dss
   AAAAB3NzaC1kc3MAAACBAOnzPi8+Hl6bTYkigIRN/b8do/v5t9hvfXkOXj2twKMfspO8iKfM
   65vdHWacnHsT5/57aEwVfoRVlFK80sBg3xKcHQ0XVI0aPUmKtgOI+EWwd+ir5ubYLQpe8TEi
   22RgPBBVNv2AUQbIYBWhoD/YNuVCB6sltFRlClzKQKsLYL8XAAAAFQCx0b4ADrOwG8H2yzQJ
   2jKf7oQAMQAAAIEApwNLUaaUzyzaq3u8LX+Y0edUAB6HuJ0jvC8pWxD+M+Q5r8/eZypi3Yds
   rrZxtOQkNu1z5W2S6fz1/5B4GY92JnSDsLgTy+dXpFFRcDiXP81NFdhbAs8nl28ucxovyGa1
   LHgeFO7UZi0izUowmYd3kj5keMyIoi25f+g6wr3zBHEAAACAUE6qf6rQk5DGJada9jof1Ddp
   q5GRuDAB4mAbfApp1MRwHeylbIlewvdo8bUNrUIGPdGwXoyzCZogzH5CLgwGtGOE8O816PdE
   +D6GmthZT+8Wgw9OOV8bnqWMyhN4JQbsiNmtyr6nfYeQegIaoIcP1dAoyT7kM11taoKhSwTQ
   xS0= usuario@desktop




MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                         FEBRERO 2010
Copiando la llave pública al servidor:

 Debe terminar en el archivo authorized_keys del usuario:

   $ ssh-copy-id -i .ssh/id_dsa.pub usuario@servidor.com:

   Password:
   Now try logging into the machine, with "ssh 'usuario@servidor.com'",
   and check in:

    .ssh/authorized_keys

   to make sure we haven't added extra keys that you weren't expecting.




MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                         FEBRERO 2010
Copiando la llave pública al servidor:

 Una manera alternativa mas explícita:

   $ cat ~/.ssh/id_dsa.pub |
   ssh equipo_remoto 'mkdir -p ~/.ssh; cat - >>
   ~/.ssh/authorized_keys'


 Otras forma de hacerlo:

   ●
       Copiando y pegando directamente el contenido de la
       llave pública en el archivo de llaves autorizadas
   ●
       Copiando la llave pública al equipo remoto y luego
       agregándola al final del archivo de llaves autorizadas

MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                   FEBRERO 2010
Verificando ubicación de lleve:
 Iniciamos sesión en el servidor remoto:

   $ cat .ssh/authorized_keys
   ssh-dss
   AAAAB3NzaC1kc3MAAACBAOnzPi8+Hl6bTYkigIRN/b8do/v5t9hvfXkOXj2twKMfspO8iKfM
   65vdHWacnHsT5/57aEwVfoRVlFK80sBg3xKcHQ0XVI0aPUmKtgOI+EWwd+ir5ubYLQpe8TEi
   22RgPBBVNv2AUQbIYBWhoD/YNuVCB6sltFRlClzKQKsLYL8XAAAAFQCx0b4ADrOwG8H2yzQJ
   2jKf7oQAMQAAAIEApwNLUaaUzyzaq3u8LX+Y0edUAB6HuJ0jvC8pWxD+M+Q5r8/eZypi3Yds
   rrZxtOQkNu1z5W2S6fz1/5B4GY92JnSDsLgTy+dXpFFRcDiXP81NFdhbAs8nl28ucxovyGa1
   LHgeFO7UZi0izUowmYd3kj5keMyIoi25f+g6wr3zBHEAAACAUE6qf6rQk5DGJada9jof1Ddp
   q5GRuDAB4mAbfApp1MRwHeylbIlewvdo8bUNrUIGPdGwXoyzCZogzH5CLgwGtGOE8O816PdE
   +D6GmthZT+8Wgw9OOV8bnqWMyhN4JQbsiNmtyr6nfYeQegIaoIcP1dAoyT7kM11taoKhSwTQ
   xS0= usuario@desktop




 Ahora ya podemos autenticarnos sin utilizar contraseñas

MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                         FEBRERO 2010
Recomendaciones sobre llaves:
●
    Si no tienes cuidado puedes quedar fuera de tu propio servidor

    ●
        Deja habilitada la autenticación por contraseñas hasta
        que la autenticación por llaves funciones perfectamente
    ●
        Deja abierto un emulador de terminal mientras configuras
    ●
        y pruebas la autenticación por contraseñas
●
    Cuida adecuadamente tu llave privada

    ●
        No utilizar un passphrase es cómodo pero inseguro
    ●
        Utilizar un passphrase agrega un segundo factor de seguridad
        ●
          La llave: algo que tu tienes
        ●
          El passphrase: algo que tu sabes
    ●
        Respalda tu llave en un sitio seguro

MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                  FEBRERO 2010
Cambiando de puerto:
 Despistamos a atacantes poco sofisticados: (scanners / bots)

   # Configuración del puerto del servicio SSH
   # Un valor entre 10000 y 65535 es bueno

   Port 62131

   # Solo escuchamos en la interfaz de red necesaria

   Listen 208.34.51.190

   # Para escuchar en todas
   # ListenAddress 0.0.0.0


 Esta técnica es bastante efectiva a pesar de ser tan simple

MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                FEBRERO 2010
Aprovechando el archivo config:
 Facilita el tener que recordar usuarios, puertos, direcciones IP:

   host cloudserver-18
       hostname 201.230.200.47
       user jperez
       port 62163
       Compression yes

   host firewall-lima
       hostname 192.168.1.254
       user administrador
       port 22



 Este archivo se ubica en $HOME/.ssh/config

MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                FEBRERO 2010
Colocando un banner:
 Puede ser necesario para reforzar la defensa legal:

   # Banner /etc/motd

   Banner /etc/banner-ssh


 Contenido del archivo:

   Ud. esta intentando acceder a un servidor privado.

   Si Ud. no cuenta con autorizacion explicita para esto
   finalice la sesión inmediatamente para evitar que
   tomemos acciones legales en su contra.



MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                FEBRERO 2010
Observando el banner en acción:
 El mensaje lo ve el usuario antes de iniciar sesión:

   $ ssh root@www.servidor.com
   Ud. esta intentando acceder a un servidor privado.

   Si Ud. no cuenta con autorizacion explicita para esto
   finalice la sesión inmediatamente para evitar que
   tomemos acciones legales en su contra.

   Password: _




MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                 FEBRERO 2010
Habilitando el puerto dinámicamente:
 ●
     Port Knocking
     ●
       Consiste en enviar una secuencia de paquetes a una
       lista previamente conocida de puertos
     ●
       Si la secuencia es la esperada se abre el puerto
       solo a la IP que envió los paquetes
     ●
       Se implementa en Linux con knockd o iptables

 ●
     Single Packet Authentication
     ●
       Es una técnica mas compleja que busca evitar los
       problemas más comunes de port knocking
     ●
       Requiere de un paquete especialmente armando para
       los propósitos de autenticación
     ●
       En linux se implementa con fwknop


MEJORANDO LA SEGURIDAD DEL SERVICIO SSH               FEBRERO 2010
Restringiendo acceso por wrappers:
 Es útil si estamos en una red local hostil o como una medida
 general de seguridad:

   ## /etc/hosts.allow
   #
   # This file describes the names of the hosts which are
   # allowed to use the local INET services, as decided
   # by the '/usr/sbin/tcpd' server.
   sshd: 192.168.1.0/255.255.255.0

   ## /etc/hosts.deny
   sshd: ALL




MEJORANDO LA SEGURIDAD DEL SERVICIO SSH              FEBRERO 2010
Conclusiones:
 ●
   SSH es un servicio muy útil
 ●
   Es necesario hacer “hardening” luego
   de la instalación
 ●
   Solo se debe autorizar a una lista de usuarios
 ●
   Es buena idea permitir solo acceso por llaves
 ●
   Es buena idea cambiar de puerto a uno
   no estandar
 ●
   Es buena idea colocar un banner antes
   del acceso
 ●
   Lo ideal es habilitar el puerto solo a la IP
   del administrador
MEJORANDO LA SEGURIDAD DEL SERVICIO SSH   FEBRERO 2010
Algunos enlaces:

 http://rnt.cl/tutoriales/como-crear-llaves-ssh/

 http://www.linuxjournal.com/article/9565

 http://www.securecentos.com/basic-security/hardening-sshd/

 http://www.daemonforums.org/showthread.php?t=74

 http://www.medorion.net/p/11.xhtml

 http://linuxhelp.blogspot.com/2005/10/using-tcp-wrappers-to-secure-linux.html




MEJORANDO LA SEGURIDAD DEL SERVICIO SSH                              FEBRERO 2010
Mejorando la seguridad
      del servicio SSH

                 ¡Gracias!

            ¿Preguntas?
                  Antonio Ognio
               antonio@linux.org.pe

GRUPO DE USUARIOS DE LINUX DEL PERU -//- FEBRERO 2010

Weitere ähnliche Inhalte

Was ist angesagt?

Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)Max Morales
 
Ssh
SshSsh
SshRafa
 
Squid proxy transparente en ubuntu
Squid proxy transparente en ubuntuSquid proxy transparente en ubuntu
Squid proxy transparente en ubuntuAlvaro López
 
Proxy Squid en Ubuntu
Proxy Squid en UbuntuProxy Squid en Ubuntu
Proxy Squid en Ubuntujferrer1974
 
Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3ALBERTO CHUICA
 
Fuerza bruta con hydra y montando un ssh
Fuerza bruta con hydra y montando un sshFuerza bruta con hydra y montando un ssh
Fuerza bruta con hydra y montando un sshTensor
 
Instalacion de Asterisk y freePBX en CentOS
Instalacion de Asterisk y freePBX en CentOSInstalacion de Asterisk y freePBX en CentOS
Instalacion de Asterisk y freePBX en CentOSmanzurek
 
Apache.http ftp-smtp
Apache.http ftp-smtpApache.http ftp-smtp
Apache.http ftp-smtpgh02
 
Seguridad De Las Redes
Seguridad De Las RedesSeguridad De Las Redes
Seguridad De Las RedesNextPlaylist
 
Memoria sobre Squid3
Memoria sobre Squid3Memoria sobre Squid3
Memoria sobre Squid3cercer
 
Configuracion de proxy squid en centos
Configuracion de proxy squid en centosConfiguracion de proxy squid en centos
Configuracion de proxy squid en centosmurilloyair
 
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry PiServicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry PiTelefónica
 

Was ist angesagt? (20)

Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
 
1 quick tours
1 quick tours1 quick tours
1 quick tours
 
Ssh
SshSsh
Ssh
 
Squid proxy transparente en ubuntu
Squid proxy transparente en ubuntuSquid proxy transparente en ubuntu
Squid proxy transparente en ubuntu
 
Seguridades de redes
Seguridades de redesSeguridades de redes
Seguridades de redes
 
Proxy Squid en Ubuntu
Proxy Squid en UbuntuProxy Squid en Ubuntu
Proxy Squid en Ubuntu
 
Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3
 
Thc hydra
Thc hydraThc hydra
Thc hydra
 
Fuerza bruta con hydra y montando un ssh
Fuerza bruta con hydra y montando un sshFuerza bruta con hydra y montando un ssh
Fuerza bruta con hydra y montando un ssh
 
Planes de llamada
Planes de llamadaPlanes de llamada
Planes de llamada
 
Instalacion de Asterisk y freePBX en CentOS
Instalacion de Asterisk y freePBX en CentOSInstalacion de Asterisk y freePBX en CentOS
Instalacion de Asterisk y freePBX en CentOS
 
Comandos Basicos en Consola GNU Linux
Comandos Basicos en Consola GNU LinuxComandos Basicos en Consola GNU Linux
Comandos Basicos en Consola GNU Linux
 
Apache.http ftp-smtp
Apache.http ftp-smtpApache.http ftp-smtp
Apache.http ftp-smtp
 
Práctica 15
Práctica 15Práctica 15
Práctica 15
 
Seguridad De Las Redes
Seguridad De Las RedesSeguridad De Las Redes
Seguridad De Las Redes
 
Memoria sobre Squid3
Memoria sobre Squid3Memoria sobre Squid3
Memoria sobre Squid3
 
Manual Servidor Proxy Squid3
Manual Servidor Proxy Squid3Manual Servidor Proxy Squid3
Manual Servidor Proxy Squid3
 
Ftp
FtpFtp
Ftp
 
Configuracion de proxy squid en centos
Configuracion de proxy squid en centosConfiguracion de proxy squid en centos
Configuracion de proxy squid en centos
 
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry PiServicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
 

Ähnlich wie Mejorando la seguridad del servicio SSH - Hardening

Ähnlich wie Mejorando la seguridad del servicio SSH - Hardening (20)

Pecha kuchassh windows
Pecha kuchassh windowsPecha kuchassh windows
Pecha kuchassh windows
 
J perez jcaballero_documentacion_sshwindows
J perez jcaballero_documentacion_sshwindowsJ perez jcaballero_documentacion_sshwindows
J perez jcaballero_documentacion_sshwindows
 
OpenSSH
OpenSSHOpenSSH
OpenSSH
 
configuración ssh
configuración sshconfiguración ssh
configuración ssh
 
Instalación ftp, telnet y ssh sobre linux
Instalación ftp, telnet y ssh sobre linuxInstalación ftp, telnet y ssh sobre linux
Instalación ftp, telnet y ssh sobre linux
 
Instalación ftp, telnet y ssh sobre linux
Instalación ftp, telnet y ssh sobre linuxInstalación ftp, telnet y ssh sobre linux
Instalación ftp, telnet y ssh sobre linux
 
Curso Redes Linex 2
Curso Redes Linex 2Curso Redes Linex 2
Curso Redes Linex 2
 
Curso Redes Linex 2
Curso Redes Linex 2Curso Redes Linex 2
Curso Redes Linex 2
 
Fedora
FedoraFedora
Fedora
 
VC4NM73 EQ4-SSH
VC4NM73 EQ4-SSHVC4NM73 EQ4-SSH
VC4NM73 EQ4-SSH
 
El servidor ssh (cap32)
El servidor ssh (cap32)El servidor ssh (cap32)
El servidor ssh (cap32)
 
Vc4 nm73 eq4-ssh
Vc4 nm73 eq4-sshVc4 nm73 eq4-ssh
Vc4 nm73 eq4-ssh
 
Linux itsbolivar
Linux itsbolivarLinux itsbolivar
Linux itsbolivar
 
Linux
LinuxLinux
Linux
 
ssh en centos 7
ssh en centos 7ssh en centos 7
ssh en centos 7
 
Servidor vsftpd oscar cortez
Servidor vsftpd oscar cortezServidor vsftpd oscar cortez
Servidor vsftpd oscar cortez
 
Instalación de Servicios de Red para OpenSUSE
Instalación de Servicios de Red para OpenSUSEInstalación de Servicios de Red para OpenSUSE
Instalación de Servicios de Red para OpenSUSE
 
Procedimeintos llaves compartidas ssh Linux
Procedimeintos llaves compartidas ssh LinuxProcedimeintos llaves compartidas ssh Linux
Procedimeintos llaves compartidas ssh Linux
 
Qué es ssh
Qué es sshQué es ssh
Qué es ssh
 
GESTIÓN DE ACCESO REMOTO Y MONITORIZACIÓN DE SERVIDORES
GESTIÓN DE ACCESO REMOTO Y MONITORIZACIÓN DE SERVIDORESGESTIÓN DE ACCESO REMOTO Y MONITORIZACIÓN DE SERVIDORES
GESTIÓN DE ACCESO REMOTO Y MONITORIZACIÓN DE SERVIDORES
 

Mehr von Antonio Ognio

Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...Antonio Ognio
 
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?Antonio Ognio
 
Organizando una Hackparty
Organizando una HackpartyOrganizando una Hackparty
Organizando una HackpartyAntonio Ognio
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datosAntonio Ognio
 
Lenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webLenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webAntonio Ognio
 
Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010Antonio Ognio
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en WindowsAntonio Ognio
 
Gestor de paquetes YUM
Gestor de paquetes YUMGestor de paquetes YUM
Gestor de paquetes YUMAntonio Ognio
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de gitAntonio Ognio
 
¿Porqué Python? ...y Django
¿Porqué Python? ...y Django¿Porqué Python? ...y Django
¿Porqué Python? ...y DjangoAntonio Ognio
 
Ubuntu Server Edition 9.04 Jaunty Jackalope
Ubuntu Server Edition 9.04 Jaunty JackalopeUbuntu Server Edition 9.04 Jaunty Jackalope
Ubuntu Server Edition 9.04 Jaunty JackalopeAntonio Ognio
 
Consejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Consejos y trucos de supervivencia para nuevos usuarios de GNU/LinuxConsejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Consejos y trucos de supervivencia para nuevos usuarios de GNU/LinuxAntonio Ognio
 

Mehr von Antonio Ognio (16)

Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
 
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
 
Organizando una Hackparty
Organizando una HackpartyOrganizando una Hackparty
Organizando una Hackparty
 
Lean Startups
Lean StartupsLean Startups
Lean Startups
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datos
 
Lenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webLenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo web
 
Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en Windows
 
Gestor de paquetes YUM
Gestor de paquetes YUMGestor de paquetes YUM
Gestor de paquetes YUM
 
Twixer (english)
Twixer (english)Twixer (english)
Twixer (english)
 
Twixer
TwixerTwixer
Twixer
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de git
 
¿Porqué Python? ...y Django
¿Porqué Python? ...y Django¿Porqué Python? ...y Django
¿Porqué Python? ...y Django
 
Ubuntu Server Edition 9.04 Jaunty Jackalope
Ubuntu Server Edition 9.04 Jaunty JackalopeUbuntu Server Edition 9.04 Jaunty Jackalope
Ubuntu Server Edition 9.04 Jaunty Jackalope
 
Consejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Consejos y trucos de supervivencia para nuevos usuarios de GNU/LinuxConsejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Consejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
 
REPLs
REPLsREPLs
REPLs
 

Kürzlich hochgeladen

Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 

Kürzlich hochgeladen (20)

Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 

Mejorando la seguridad del servicio SSH - Hardening

  • 1. Mejorando la seguridad del servicio SSH Antonio Ognio antonio@linux.org.pe GRUPO DE USUARIOS DE LINUX DEL PERU -//- FEBRERO 2010
  • 2. Instalación Ubuntu, Debian y distros derivadas: $ sudo apt-get install ssh RHEL, CentOS, Fedora y distros derivadas: $ sudo yum install ssh MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 3. Uso básico: Acceso a la shell en un servidor remoto: usuario@desktop:~$ ssh usuario@servidor.com usuario@servidor.com's password: Linux host.servidor.com 2.6.18.8-srv #1 SMP Tue Nov 10 16:12:12 UTC 2009 i686 The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To access official Ubuntu documentation, please visit: http://help.ubuntu.com/ Last login: Fri Feb 19 22:27:15 2010 from desktop.empresa.com.pe usuario@host:~$ MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 4. Otros usos comunes: Ejecutar comandos en un servidor remoto: usuario@desktop:~$ ssh mail.miempresa.com "uptime" 12:18:15 up 2 days, 1:57, 0 users, load average: 0.00, 0.01, 0.00 Copiar archivos a / desde un servidor remoto: usuario@desktop:~$ scp -r carpeta1 usuario2@otro.servidor.com:/ruta usuario@desktop:~$ scp -r otro.servidor.com:carpeta1 . Cliente del servicio de FTP seguro (sftp): usuario@desktop:~$ sftp usuario5@mi-otro.servidor.com sftp> pwd Remote working directory /home/usuario5 sftp> _ MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 5. SSH nos permite: ● Administrar servidores remotamente por la línea de comandos ● Ejecutar comandos individuales ● Iniciar una sesión interactiva ● Transferir archivos ● scp (secure copy) ● sftp (secure file transfer protocol) ● Abrir túneles ● Puerto remoto disponible en un puerto local ● Puerto local disponible localmente en servidor remoto MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 6. Potenciales problemas de seguridad: ● Acceso por parte de usuarios no autorizados ● Usuarios de correo que siguen una shell activa ● Muchas veces es la misma contraseña ● Ex-trabajadores que aún mantienen una cuenta ● Atacante interno que averigua la clave: ● Por ingeniería social (ej. haciéndose pasar por el jefe) ● Mirando sobre los hombros del administrador ● Ataques desde Internet ● Fuerza bruta (probar muchas contraseñas hasta que ligue) ● Exploits del servicio SSH (se aprovecha de bugs) ● SSH es un programa más y puede tener bugs ● Man-in-the-middle MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 7. Detalles por corregir: ● Utilizar solo la versión más segura del protocolo ● Deshabilitar el acceso como root ● Utilizar sudo para convertirse en root ● Limitar el acceso solo a cuentas autorizadas ● Deshabilitar por completo el uso de contraseñas ● Utilizar llaves criptográficas (DSA / RSA) ● Utilizar un puerto distinto ● Despistar a muchos atacantes no muy sofisticados ● Advertir adecuadamente a potenciales usuarios no autorizados ● Colocar un banner que mencione las leyes locales ● Abrir el puento solo a IPs autorizadas ● TCP wrappers ● Port knocking ● Single Packet Authorization MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 8. ¿Dónde hacer los cambios? Respaldamos el actual archivo de configuración: sudo cp /etc/ssh/sshd_config /etc/ssh/ssd_config.bak Editamos el archivo de configuración: sudo vi /etc/ssh/sshd_config sudo nano /etc/ssh/sshd_config MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 9. Defaults de una buena distro: Si no los tiene cambiarlos de inmediato: # Solo el protocolo en su versión 2 Protocol 2 # Separación de privilegios en el demonio ssh UsePrivilegeSeparation yes # Venta de tiempo para intentar iniciar sesión LoginGraceTime 120 # No permitir acceso a carpetas $HOME en las que # terceros usuarios tiene permiso de escritura StrictModes yes En Ubuntu y Debian como en otras distros vienen por omisión. MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 10. Escoger quien tiene acceso: Mejoras a realizar en cualquier sistema UNIX: # Deshabilitar el acceso como root PermitRootLogin no # Limitar acceso a solo una lista # de cuentas de usuario o grupos AllowUsers jperez mgarcia AllowGroups administradores Dejamos fuera a usuarios de correo y otros usuarios de UNIX MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 11. Deshabilitar contraseñas: Eliminamos ataques de fuerza bruta comunes: # Autenticación usando contraseñas PasswordAuthentication no # Uso de llaves criptográficas RSAAuthentication yes PubkeyAuthentication yes # Ruta del archivo con llaves autorizadas por usuario AuthorizedKeysFile %h/.ssh/authorized_keys MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 12. Generando una llave criptográfica: Eliminamos ataques de fuerza bruta comunes: $ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/usuario/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/usuario/.ssh/id_dsa. Your public key has been saved in /home/usuario/.ssh/id_dsa.pub. The key fingerprint is:~ 3d:43:8e:52:ac:e1:8c:97:da:16:d4:9b:37:4d:ba:80 usuario@desktop IMPORTANTE: Guarda tu llave privada en un lugar seguro MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 13. Observando los archivos generados: Conozcamos como son las llaves que usa SSH: $ ls -l .ssh/ total 28 -rw-r--r-- 1 usuario usuario 531 2010-02-18 12:00 config -rw------- 1 usuario usuario 668 2008-09-05 15:15 id_dsa -rw-r--r-- 1 usuario usuario 942 2008-09-05 15:15 id_dsa.keystore -rw-r--r-- 1 usuario usuario 604 2008-09-05 15:15 id_dsa.pub -rw-r--r-- 1 usuario usuario 8470 2010-02-20 00:34 known_hosts $ file .ssh/id_dsa .ssh/id_dsa: PEM DSA private key $ file .ssh/id_dsa.pub .ssh/id_dsa.pub: ASCII text, with very long lines MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 14. Observando los archivos generados: Les presento a una llave privada: $ cat .ssh/id_dsa -----BEGIN DSA PRIVATE KEY----- MIIBuwIBAAKBgQDp8z4vPh5em02JIoCETf2/HaP7+bfYb315Dl49rcCjH7KTvIin zOub3R1mnJx7E+f+e2hMFX6EVZRSvNLAYN8SnB0NF1SNGj1JirYDiPhFsHfoq+bm 2C0KXvExIttkYDwQVTb9gFEGyGAVoaA/2DblQgerJbRUZQpcykCrC2C/FwIVALHR vgAOs7AbwfbLNAnaMp/uhAAxAoGBAKcDS1GmlM8s2qt7vC1/mNHnVAAeh7idI7wv KVsQ/jPkOa/P3mcqYt2HbK62cbTkJDbtc+Vtkun89f+QeBmPdiZ0g7C4E8vnV6RR UXA4lz/NTRXYWwLPJ5dvLnMaL8hmtSx4HhTu1GYtIs1KMJmHd5I+ZHjMiKItuX/o OsK98wRxAoGAUE6qf6rQk5DGJada9jof1Ddpq5GRuDAB4mAbfApp1MRwHeylbIle wvdo8bUNrUIGPdGwXoyzCZogzH5CLgwGtGOE8O816PdE+D6GmthZT+8Wgw9OOV8b nqWMyhN4JQbsiNmtyr6nfYeQegIaoIcP1dAoyT7kM11taoKhSwTQxS0CFBjc2TCc Y+vRyigR3p5DKJibmFWA -----END DSA PRIVATE KEY----- MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 15. Observando los archivos generados: Les presento a una llave pública: $ cat .ssh/id_dsa.pub ssh-dss AAAAB3NzaC1kc3MAAACBAOnzPi8+Hl6bTYkigIRN/b8do/v5t9hvfXkOXj2twKMfspO8iKfM 65vdHWacnHsT5/57aEwVfoRVlFK80sBg3xKcHQ0XVI0aPUmKtgOI+EWwd+ir5ubYLQpe8TEi 22RgPBBVNv2AUQbIYBWhoD/YNuVCB6sltFRlClzKQKsLYL8XAAAAFQCx0b4ADrOwG8H2yzQJ 2jKf7oQAMQAAAIEApwNLUaaUzyzaq3u8LX+Y0edUAB6HuJ0jvC8pWxD+M+Q5r8/eZypi3Yds rrZxtOQkNu1z5W2S6fz1/5B4GY92JnSDsLgTy+dXpFFRcDiXP81NFdhbAs8nl28ucxovyGa1 LHgeFO7UZi0izUowmYd3kj5keMyIoi25f+g6wr3zBHEAAACAUE6qf6rQk5DGJada9jof1Ddp q5GRuDAB4mAbfApp1MRwHeylbIlewvdo8bUNrUIGPdGwXoyzCZogzH5CLgwGtGOE8O816PdE +D6GmthZT+8Wgw9OOV8bnqWMyhN4JQbsiNmtyr6nfYeQegIaoIcP1dAoyT7kM11taoKhSwTQ xS0= usuario@desktop MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 16. Copiando la llave pública al servidor: Debe terminar en el archivo authorized_keys del usuario: $ ssh-copy-id -i .ssh/id_dsa.pub usuario@servidor.com: Password: Now try logging into the machine, with "ssh 'usuario@servidor.com'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 17. Copiando la llave pública al servidor: Una manera alternativa mas explícita: $ cat ~/.ssh/id_dsa.pub | ssh equipo_remoto 'mkdir -p ~/.ssh; cat - >> ~/.ssh/authorized_keys' Otras forma de hacerlo: ● Copiando y pegando directamente el contenido de la llave pública en el archivo de llaves autorizadas ● Copiando la llave pública al equipo remoto y luego agregándola al final del archivo de llaves autorizadas MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 18. Verificando ubicación de lleve: Iniciamos sesión en el servidor remoto: $ cat .ssh/authorized_keys ssh-dss AAAAB3NzaC1kc3MAAACBAOnzPi8+Hl6bTYkigIRN/b8do/v5t9hvfXkOXj2twKMfspO8iKfM 65vdHWacnHsT5/57aEwVfoRVlFK80sBg3xKcHQ0XVI0aPUmKtgOI+EWwd+ir5ubYLQpe8TEi 22RgPBBVNv2AUQbIYBWhoD/YNuVCB6sltFRlClzKQKsLYL8XAAAAFQCx0b4ADrOwG8H2yzQJ 2jKf7oQAMQAAAIEApwNLUaaUzyzaq3u8LX+Y0edUAB6HuJ0jvC8pWxD+M+Q5r8/eZypi3Yds rrZxtOQkNu1z5W2S6fz1/5B4GY92JnSDsLgTy+dXpFFRcDiXP81NFdhbAs8nl28ucxovyGa1 LHgeFO7UZi0izUowmYd3kj5keMyIoi25f+g6wr3zBHEAAACAUE6qf6rQk5DGJada9jof1Ddp q5GRuDAB4mAbfApp1MRwHeylbIlewvdo8bUNrUIGPdGwXoyzCZogzH5CLgwGtGOE8O816PdE +D6GmthZT+8Wgw9OOV8bnqWMyhN4JQbsiNmtyr6nfYeQegIaoIcP1dAoyT7kM11taoKhSwTQ xS0= usuario@desktop Ahora ya podemos autenticarnos sin utilizar contraseñas MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 19. Recomendaciones sobre llaves: ● Si no tienes cuidado puedes quedar fuera de tu propio servidor ● Deja habilitada la autenticación por contraseñas hasta que la autenticación por llaves funciones perfectamente ● Deja abierto un emulador de terminal mientras configuras ● y pruebas la autenticación por contraseñas ● Cuida adecuadamente tu llave privada ● No utilizar un passphrase es cómodo pero inseguro ● Utilizar un passphrase agrega un segundo factor de seguridad ● La llave: algo que tu tienes ● El passphrase: algo que tu sabes ● Respalda tu llave en un sitio seguro MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 20. Cambiando de puerto: Despistamos a atacantes poco sofisticados: (scanners / bots) # Configuración del puerto del servicio SSH # Un valor entre 10000 y 65535 es bueno Port 62131 # Solo escuchamos en la interfaz de red necesaria Listen 208.34.51.190 # Para escuchar en todas # ListenAddress 0.0.0.0 Esta técnica es bastante efectiva a pesar de ser tan simple MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 21. Aprovechando el archivo config: Facilita el tener que recordar usuarios, puertos, direcciones IP: host cloudserver-18 hostname 201.230.200.47 user jperez port 62163 Compression yes host firewall-lima hostname 192.168.1.254 user administrador port 22 Este archivo se ubica en $HOME/.ssh/config MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 22. Colocando un banner: Puede ser necesario para reforzar la defensa legal: # Banner /etc/motd Banner /etc/banner-ssh Contenido del archivo: Ud. esta intentando acceder a un servidor privado. Si Ud. no cuenta con autorizacion explicita para esto finalice la sesión inmediatamente para evitar que tomemos acciones legales en su contra. MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 23. Observando el banner en acción: El mensaje lo ve el usuario antes de iniciar sesión: $ ssh root@www.servidor.com Ud. esta intentando acceder a un servidor privado. Si Ud. no cuenta con autorizacion explicita para esto finalice la sesión inmediatamente para evitar que tomemos acciones legales en su contra. Password: _ MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 24. Habilitando el puerto dinámicamente: ● Port Knocking ● Consiste en enviar una secuencia de paquetes a una lista previamente conocida de puertos ● Si la secuencia es la esperada se abre el puerto solo a la IP que envió los paquetes ● Se implementa en Linux con knockd o iptables ● Single Packet Authentication ● Es una técnica mas compleja que busca evitar los problemas más comunes de port knocking ● Requiere de un paquete especialmente armando para los propósitos de autenticación ● En linux se implementa con fwknop MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 25. Restringiendo acceso por wrappers: Es útil si estamos en una red local hostil o como una medida general de seguridad: ## /etc/hosts.allow # # This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. sshd: 192.168.1.0/255.255.255.0 ## /etc/hosts.deny sshd: ALL MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 26. Conclusiones: ● SSH es un servicio muy útil ● Es necesario hacer “hardening” luego de la instalación ● Solo se debe autorizar a una lista de usuarios ● Es buena idea permitir solo acceso por llaves ● Es buena idea cambiar de puerto a uno no estandar ● Es buena idea colocar un banner antes del acceso ● Lo ideal es habilitar el puerto solo a la IP del administrador MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 27. Algunos enlaces: http://rnt.cl/tutoriales/como-crear-llaves-ssh/ http://www.linuxjournal.com/article/9565 http://www.securecentos.com/basic-security/hardening-sshd/ http://www.daemonforums.org/showthread.php?t=74 http://www.medorion.net/p/11.xhtml http://linuxhelp.blogspot.com/2005/10/using-tcp-wrappers-to-secure-linux.html MEJORANDO LA SEGURIDAD DEL SERVICIO SSH FEBRERO 2010
  • 28. Mejorando la seguridad del servicio SSH ¡Gracias! ¿Preguntas? Antonio Ognio antonio@linux.org.pe GRUPO DE USUARIOS DE LINUX DEL PERU -//- FEBRERO 2010