Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aognio Seguridad SSH 100220225538 Phpapp01
Aognio Seguridad SSH 100220225538 Phpapp01
Instalacin
Ubuntu, Debian y distros derivadas:
Uso bsico:
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:~$
FEBRERO 2010
FEBRERO 2010
Administrar servidores remotamente por la lnea de comandos Ejecutar comandos individuales Iniciar una sesin interactiva Transferir archivos scp (secure copy) sftp (secure file transfer protocol) Abrir tneles Puerto remoto disponible en un puerto local Puerto local disponible localmente en servidor remoto
FEBRERO 2010
Acceso por parte de usuarios no autorizados Usuarios de correo que siguen una shell activa Muchas veces es la misma contrasea Ex-trabajadores que an mantienen una cuenta Atacante interno que averigua la clave: Por ingeniera social (ej. hacindose pasar por el jefe) Mirando sobre los hombros del administrador Ataques desde Internet Fuerza bruta (probar muchas contraseas hasta que ligue) Exploits del servicio SSH (se aprovecha de bugs) SSH es un programa ms y puede tener bugs Man-in-the-middle
FEBRERO 2010
Utilizar solo la versin ms 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 contraseas Utilizar llaves criptogrficas (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
FEBRERO 2010
FEBRERO 2010
Deshabilitar contraseas:
Eliminamos ataques de fuerza bruta comunes:
# Autenticacin usando contraseas PasswordAuthentication no # Uso de llaves criptogrficas RSAAuthentication yes PubkeyAuthentication yes # Ruta del archivo con llaves autorizadas por usuario AuthorizedKeysFile %h/.ssh/authorized_keys
FEBRERO 2010
$ 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
FEBRERO 2010
FEBRERO 2010
FEBRERO 2010
FEBRERO 2010
Copiando y pegando directamente el contenido de la llave pblica en el archivo de llaves autorizadas Copiando la llave pblica al equipo remoto y luego agregndola al final del archivo de llaves autorizadas
FEBRERO 2010
Deja habilitada la autenticacin por contraseas hasta que la autenticacin por llaves funciones perfectamente Deja abierto un emulador de terminal mientras configuras y pruebas la autenticacin por contraseas
No utilizar un passphrase es cmodo 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
FEBRERO 2010
Cambiando de puerto:
Despistamos a atacantes poco sofisticados: (scanners / bots)
# Configuracin 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
Colocando un banner:
Puede ser necesario para reforzar la defensa legal:
# Banner /etc/motd Banner /etc/banner-ssh
FEBRERO 2010
$ ssh root@www.servidor.com
Ud. esta intentando acceder a un servidor privado. Si Ud. no cuenta con autorizacion explicita para esto finalice la sesin inmediatamente para evitar que tomemos acciones legales en su contra. Password: _
FEBRERO 2010
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 tcnica mas compleja que busca evitar los problemas ms comunes de port knocking Requiere de un paquete especialmente armando para los propsitos de autenticacin En linux se implementa con fwknop
FEBRERO 2010
FEBRERO 2010
Conclusiones: SSH es un servicio muy til Es necesario hacer hardening luego de la instalacin 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
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
FEBRERO 2010
Gracias! Preguntas?
Antonio Ognio antonio@linux.org.pe
GRUPO DE USUARIOS DE LINUX DEL PERU -//- FEBRERO 2010