Guía de puesta en marcha segura de una plataforma GLAMP en Ubuntu Server

Esta semana he tenido que migrar una app web de un servidor dedicado Ubuntu Server a otro servidor de características muy parecidas.

Comparto a continuación la hoja de ruta que he seguido para preparar el nuevo server y dejarlo listo para instalar la aplicación web.

Si alguna vez te ves en la misma situación y necesitas hacer una migración rápida y segura, puedes consultar esta guía para levantar tu nuevo server tan rápido como sea posible.

Logo Ubuntu

1. Entra como root en tu nuevo servidor y cambia la contraseña predeterminada

Es muy importante que la contraseña nueva sea segura. Por favor, lee el punto Utiliza contraseñas seguras del post Hardening de websites hechos con WordPress para saber cómo es una contraseña segura.

2. Instala el software imprescindible para comenzar a gestionar tu servidor

Por ejemplo, vim:

3. Instala algunas aplicaciones para asegurar el servicio sshd

Por ejemplo:

Para más detalles consulta algunos resultados de las primeras Google SERP sobre hardening ssh, por ejemplo:

4. Crea un usuario no root para conectarte a ssh

Primero crea el usuario no root:

Y luego crea un grupo de usuarios SSH:

No está de más comprobar que el nuevo grupo está ok:

5. Hardening del servicio SSH

Algunas de las keywords más importantes de /etc/ssh/sshd_config que tienes que revisar son:

Los pares clave-valor más importantes son:

Con esto ya puedes reiniciar ssh:

Y comprobar que tu nueva configuración ssh funciona.

6. Comprueba las actualizaciones

Comprueba qué distribución tiene instalada tu servidor:

Si lo consideras conveniente puedes actualizar a la distribución Ubuntu LTS más reciente:

7. Borra el software que no necesites

Comprueba qué paquetes tienes instalados:

Y quita lo que no vayas a utilizar, por ejemplo:

8. Instala Apache 2 con PHP

Con Apache ya instalado, puedes cargar el módulo rewrite:

La inmensa mayoría de apps web y CMS lo utilizan. Si no lo haces ahora es posible que en algún momento futuro, cuando ya estés desplegando tu web app, te salgan errores 404 porque rewrite no está cargado. Si lo haces ahora, así no perderás ese tiempo.

9. Instala las extensiones PHP que utilice tu proyecto

Si te sabes o te acuerdas de las extensiones que utiliza tu app, por qué no hacer esto ahora, por ejemplo:

10. Instala mod_evasive y mod_security

Para más detalles acerca de este punto consulta algunas Google SERP sobre estas apps, por ejemplo:

Una vez instalado, recuerda que puedes probar mod_evasive así:

11. Haz hardening de Apache

El artículo Apache Web Server Security and Hardening Tips explica muy bien los pasos detallados que puedes seguir para securizar tu Apache.

12. Instala MySQL y haz hardening de MySQL

Para instalar MySQL:

Luego puedes consultar algunas resultados de la primera Google SERP sobre hardening MySQL, por ejemplo:

13. Ejecuta en tu servidor solo los servicios que necesitas

La idea de este paso es parecida a la del apartado 7. Borra el software que no necesites. Cuando ya tengas tu máquina funcionando debes asegurarte que solo corren los servicios imprescindibles.

Por ejemplo, si tu Ubuntu Server es un servidor de páginas web dinámicas entonces solo deberían correr los servicios http/https, mysql y ssh. Puedes ampliar esta información en el artículo ¿Y tú, ya ejecutas en tu Ubuntu Server sólo los servicios que necesitas?

Bueno amig@s, pues esto es todo por hoy. Hemos comentado varios puntos e ideas importantes acerca de la puesta en marcha de un servidor seguro.

Falta explicar cómo instalar y configurar algún cortafuegos como iptables o ufw; quizás también podríamos instalar alguna herramienta adicional de seguridad. Si quieres complementar o ampliar esta información por favor estás invitado a escribir tu comentario y continuamos desarrollando esta entrada.