domingo, 27 de octubre de 2013

Incrementar la seguridad de tu servidor (Primera parte)

Hola de nuevo queridos lectores, últimamente he estado algo ausente y me disculpo por ello, 6 meses sin escribir es demasiado, mea culpa :-(

Hoy os quería hablar de cómo incrementar la seguridad de un servidor dedicado ya que recientemente alquilé un Kemsirve 2G y nunca está de más hacer que el servidor sea lo más seguro posible.

Lo primero aclarar una máxima en cuanto a seguridad: la seguridad total no existe, así, subrayado para que lo tengamos todos claro. Es imposible conseguir que un servidor sea 100% seguro, siempre habrá algo que se nos escape, algún bug no documentado, algún mecanismo que permita a un cracker (que no hacker) experimentado entrar si dispone de los recursos y el tiempo necesario para hacerlo.

Aclarado este punto, vamos a intentar ponerle lo más dificil posible a nuestro cracker el acceder a nuestro servidor. Cuando digo "acceder" me refiero a que la persona atacante acabe teniendo un intérprete de comandos con nivel de "root" (administrador) o con un nivel inferior pero que le permita ejecutar ciertas acciones.

En este "tutorial" me baso en un servidor dedicado ejecutando Ubuntu Server 13.04. La mayoría de cosas servirán para otras versiones del mismo SO y también para otras distribuciones de Linux como Debian, Mint, etc.

Lo primero que debemos hacer para empezar a tener un servidor seguro es elegir bien la contraseña de root, y con "elegir bien" no me refiero a que si tu hijo se llama Juan Garcia pongas de contraseña "Ju4nG4rc1a", esta contraseña es malísima porque ya todos nos sabemos lo de cambiar letras por números que se parezcan. No, cuando digo contraseñas seguras me refiero a contraseñas del estilo de las que te generan programas como KeePass, por ejemplo esta: W5X{3uGVHwICZ9gxrEl7.

Lo siguiente que hay que hacer es actualizar tu sistema operativo, ya sabemos cómo (apt-get update && apt-get upgrade) ejecutándolo con permisos de root.

Algunas distribuciones de Linux, al instalarlas, te obligan a crear un usuario que mediante "sudo" puede ejecutar programas con permisos de root, este es el caso de Ubuntu Server. Sin embargo, la distribución de Ubuntu Server que te instala OVH no hace esto, sino que te da acceso como root por ssh. Esto es malo por dos motivos: Porque te obliga a entrar como root aunque sea para realizar tareas que no requieran permisos de root, y también es malo porque puedes recibir ataques para intentar encontrar tu contraseña de root entrando por SSH.

Por tanto, lo primero que haremos será NO permitir la entrada del usaurio root por SSH.  Para ello lo primero que tenemos que hacer es crearnos un usuario distinto a root para entrar en nuestro servidor, por ejemplo vamos a crear el usuario de nombre "asterix" con este comando:




Bastará con dejar los datos que nos vengan por defecto.

Luego comprobamos que efectivamente podemos acceder por SSH con nuestro nuevo usuario (asterix en el ejemplo) . También comprobaremos que una vez logados con nuestro usuario podemos hacer un "su -" y pasar a ser root poniendo la contraseña de éste.
Una vez hecho esto es el momento de no permitir que root entre por SSH, ya que siempre lo haremos con nuestro usuario (asterix o el nombre que le hayáis puesto) y una vez dentro haremos "su -" para ejecutar tareas administrativas. Para ello editamos el fichero "/etc/ssh/sshd_config" y añadimos esta línea al final:



Y luego hacemos un:



Ahora probamos a entrar por SSH con nuestro usuario y luego lo intentamos con root, esto último no debería dejarnos, incluso aunque hayamos puesto bien nuestra contraseña de root.

Con esto evitamos ataques de fuerza bruta al puerto SSH ya que la mayoría de estos ataques lo intentan con el usuario root, y eso ahora será imposible, incluso aunque supieran nuestra contraseña de root.
En el caso de mi servidor, nada más instalarlo, recibía ataques diarios durante horas de intentos de entrar por SSH como root, con este truco evitamos que puedan entrar de este modo.

En próximas entregas veremos cómo configurar más parámetros de nuestro servidor para hacerlo (un poco) más seguro.

Hasta pronto, un saludo.

3 comentarios:

  1. What's up, for all time i used to check web site posts here in the early hours in the morning, because i like to learn more and more. yahoo mail login

    ResponderEliminar
  2. A mortgage allows a choice of building up a cash account. mortgage payment calculator If home financing is for $250,000, then a mortgage principal is $250,000. mortgage calculator canada

    ResponderEliminar
  3. Casino Slot Machines - Mapyro
    Find Casino Slot Machines, Slot Machines, and 당진 출장안마 other related slot 상주 출장샵 machines at Mapyro. Get map directions, reviews and information 하남 출장안마 for your 전라북도 출장안마 next casino 공주 출장샵 vacation.

    ResponderEliminar