lunes, 2 de enero de 2012

Securizando servidores (VI)

Bueno, año nuevo, post nuevo. Como propósito de este año voy a intentar, otra vez, mantener actualizado el blog. Para empezar, seguimos con unos consejos para tener nuestro servidor linux un poco mas seguro. Como siempre, toda medida de seguridad que pongamos sera poca.

Hoy lo que haremos sera crear usuarios con privilegios administrativos para no usar el root. ¿Porque haríamos eso? Sencillo. Existen una serie de ataques que intentan sacar la contraseña de root por fuerza bruta, por si tiene una clave fácil, pero si "eliminamos" al usuario root, esos ataques nos preocuparán menos.

Lo primero que vamos a hacer es prohibir que el usuario root pueda acceder por ssh, luego bastará con conectarse con cualquier otro usuario y hacer "su". Para ello, tenemos que editar el archivo sshd_config, generalmente en /etc o /etc/ssh, según distro.Buscamos la linea que ponga "PermitRootLogin ", la descomentamos si lo estuviese y cambiamos (o no) el valor a "no". Reiniciamos el servicio de ssh (/etc/init.d/sshd restart) y listo, el root no se podrá conectar por ssh.

Lo siguiente será crear un usuario, que usaremos para conectarnos por ssh en adelante. Cada uno lo puede llamar como quiera, una idea sería "admin". Con "useradd admin" y "passwd admin" lo tenemos finiquitado. Ahora falta probarlo. Mediante putty (windows), alguna terminal (linux) o cualquier otro método que prefiramos, nos conectamos mediante ssh al servidor. Probamos a loguearnos como root y vemos que nos rechaza. Luego lo haremos como admin y vemos que va como la seda.

Una cosa a tener en cuenta, es que el usuario admin ahora mismo es un usuario normal sin ningún tipo de privilegios. Si hacemos un su (o sudo su, según distro), nos loguearemos como root.

Si el servidor que tenemos es un servidor ftp, podemos tener problemas con los usuarios que están añadidos o se añadan ya que por defecto tienen asignada una shell y pueden loguearse también por ssh. Para evitarlo y restringir quien puede y quien no puede tener una shell (para usar por ssh o en local), lo que tenemos que hacer es editar el archivo /etc/passwd. Buscamos el/los usuarios a editar y cambiamos el /bin/bash (o /bin/sh o cualquier otra válida) por /bin/false. Acto seguido, editamos el archivo /etc/shells y añadimos a la lista /bin/false si no estuviese para evitar que el ftp de problemas.

Con estos sencillos pasos, tendremos el servidor un poco más seguro y evitaremos algún que otro problemilla. Lo siguiente que haremos será darle privilegios a ese usuario que hemos creado para depender menos del root e incluso hacer como hace ubuntu por defecto, y es deshabilitar la cuenta de root.

Volveremos cuando volvamos, ¡Saludos!