Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

10 minutos para securizar tu servidor

Esaú A.
  • Escrito por Esaú A. el 05 de Noviembre de 2013
  • 4 min de lectura | Linux
10 minutos para securizar tu servidor

A la hora de crear un servidor Linux, muchas veces nos centramos más en aspectos de instalación y funcionalidad, cosa que no está de más, lo que pasa es que dejamos un poco de lado el tema de la seguridad. Personalmente, aquellos que conozco que se han decidido por montar su propio servidor es porque no confían en la integridad y la privacidad de sus datos, que pueden quedar a ojos de cualquier trabajador de la empresa de hosting elegida (esto en ocasiones es una creencia errónea ya que sólo los administradores, que no son muchos, son los que tienen acceso real y únicamente para mantenimiento de los sistemas), o argumentan que las empresas de alojamiento son blancos más claros para aquellos que quieren hacerse con información.

La pega en todo esto es que estas personas son las que luego montan el servidor, instalan sus aplicaciones, las dejan funcionando y únicamente se dedican a mantener actualizadas sus aplicaciones. El aspecto que se olvida es el de la seguridad, que es el que nos ocupa, que no tiene por qué ser un campo complejo en el que centrar la mayor parte de nuestros esfuerzos; es más, el ideal de seguridad es el de invertir el mínimo tiempo posible y establecer unos parámetros que nos mantengan en la tranquilidad de saber que estamos suficientemente protegidos.

Para conseguir esto, bastará con realizar unos sencillos pasos que os explicamos a continuación y que no os tomarán más de 10 minutos. Estos comandos se están realizando en un Ubuntu Server, por lo que de utilizar otra máquina dichas órdenes pueden variar.

Securizar el usuario Root:

Para comenzar correctamente, tendremos que securizar ante todo el usuario 'root' que a fin de cuentas es quien tiene todos los privilegios y la meta de cualquier intruso a nuestro equipo será hacerse con él.

passwd

Con este comando deberemos establecer una cadena de caracteres relativamente larga y compleja, conteniendo esta letras mayúsculas, minúsculas, números y símbolos. No os preocupéis por no poder memorizarla, bastará con anotarla y mantenerla a buen recaudo.  sí, es una de las principales indicaciones en la seguridad informática el no tener anotada ninguna contraseña, pero dado que únicamente la necesitaremos si perdemos la capacidad de conexión vía ssh o la contraseña sudo del usuario que tengamos creado, es un mínimo riesgo.

Actualizar:

Antes de continuar procederemos con la actualización de los repositorios y de los módulos del sistema operativo.

	apt-get update
	apt-get upgrade

Ahora que tenemos un root seguro y un sistema actualizado con los repositorios al día, vamos por el buen camino y podemos comenzar con las aplicaciones que nos ayudarán en la securización de nuestro servidor.

Instalar Fail2ban:

Fail2ban en un demonio o servicio que monitorizará los intentos de login o autenticación contra nuestro servidor, y bloqueará actividades sospechosas en estos procesos. Por defecto viene bastante bien configurado, por lo que así lo dejaremos.

apt-get install fail2ban

Creación de un usuario:

Crearemos un usuario (en nuestro caso se llamará Toushiro) con el que iniciaremos sesión (procurando que la clave sea compleja pero no difícil de recordar) y le daremos permisos con las siguientes líneas:

	toushiro useradd
	mkdir /home/toushiro
	mkdir /home/toushiro/.ssh
	chmod 700 /home/toushiro/.ssh

Solicitar la clave pública:

Las contraseñas ya están pasadas de época. La seguridad hoy día pasa por las claves públicas, ya que se implementa un nuevo nivel de seguridad y se asegura la facilidad de uso de un solo golpe. Lo único que tendremos que hacer será establecer qué claves públicas tienen acceso, todas las demás serán denegadas por defecto.

nano /home/toushiro/.ssh/authorized_keys

En este fichero añadiremos el contenido de la id_rsa.pub (la clave pública generada se contiene en este archivo) y cualquier otra clave a la que deseemos autorizar el acceso al servidor.

	chmod 400 /home/toushiro/.ssh/authorized_keys
	chown toushiro:toushiro /home/toushiro -R

Asegurando SSH:

SSH será nuestro método de comunicación con el servidor, por lo que deberemos asegurar su integridad para evitar conexiones indebidas o no deseadas.

	nano /etc/ssh/sshd_config

Añadiremos las siguientes líneas al archivo:

	PermitRootLogin no
	PasswordAuthentication no
	AllowUsers toushiro@ip.desde.la.que.conectaremos toushiro@otra.ip.si.existiera

Y tras esto reiniciamos el servicio ssh

>service ssh restart

Configurar Cortafuegos:

Ningún servidor está completo si nos olvidamos de configurar un cortafuegos. En Ubuntu podemos usar UFW, que es bastante fácil de configurar y gestionar. Escribiremos estas órdenes en la consola.

	ufw allow from {nuestra.ip.de.conexión} to any port 22
	ufw allow 80
	ufw allow 443
	ufw enable

Con esto dejamos configurando un firewall básico que aceptará el tráfico a través del puerto 80 y 443. Si deseamos abrir otros puertos de conexión sólo tendremos que añadirlos de la misma forma.

Automatizar las actualizaciones:

Usar 'apt-get update' y 'apt-get upgrade' no es nada complicado para mantener actualizado el sistema. Pero pongamos que, por cualquier motivo, no deseamos escribir estas dos líneas y utilizar ese tiempo en otros menesteres; para que el sistema lo realice de forma automática tendremos que escribir lo siguiente en la terminal:

	apt-get install unattended-upgrades

Ahora pasaremos a configurar un par de archivos:

nano /etc/apt/apt.conf.d/10periodic

Y tendremos que actualizar el archivo para dejarlo tal que así:

	APT::Periodic::Update-Package-Lists "1";
	APT::Periodic::Download-Upgradeable-Packages "1";
	APT::Periodic::AutocleanInterval "7";
	APT::Periodic::Unattended-Upgrade "1";

Instalar Logwatch:

Para mantener cierto control sobre lo que pasa, debemos saber además de quién entra y quién sale, lo que hacen y dejan de hacer, hacia qué webs navegan, qué paquetes reciben... Para todo esto nos será muy útil Logwatch, un servicio que mantendrá los ojos siempre sobre el servidor, y todo aquello que pase se registrará en un fichero log.

	apt-get install logwatch
	nano /etc/cron.daily/00logwatch

Y añadiremos la siguiente línea al fichero:

	/usr/sbin/logwatch --output mail --mailto correodeprueba@servidordecorreo.org --detail high

Con lo que recibiremos un correo con un registro detallado de lo que está sucediendo en nuestro servidor.

Y ya está, en unos minutos hemos bloqueado intentos indebidos de logueo en nuestro equipo, creado un nivel de seguridad que repelerá la mayoría de los ataques y que además es fácil de mantener.

No olvidéis suscribiros para estar al día de otros artículos interesantes, noticias y tutoriales de actualidad.

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars