Plataforma de comercio electrónico segura

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 algunos tips que he seguido para preparar el nuevo server y dejarlo listo para instalar la aplicación.

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 poner en marcha tu nuevo servidor tan rápido como sea posible.

Utiliza una contraseña segura

Entra como root en tu nuevo servidor y cambia la contraseña predeterminada. Lee el post Hardening de websites hechos con WordPress para saber cómo es una contraseña segura.

Instala el software imprescindible para comenzar a gestionar tu servidor

Por ejemplo, vim para editar archivos:

apt-get install vim

Crea un usuario no root para conectarte a ssh

Primero crea el usuario no root:

useradd -d /home/ssh_YZs32Rs21 -m ssh_YZs32Rs21
passwd ssh_YZs32Rs21

Y luego crea un grupo de usuarios SSH:

addgroup sshusers
adduser ssh_YZs32Rs21 sshusers
adduser root sshusers

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

getent group sshusers

Hardening del servicio SSH

Hay que revisar algunos parámetros de configuración en el archivo /etc/ssh/sshd_config:

Port 981
LoginGraceTime 30
PermitRootLogin no
X11Forwarding no
AllowGroups sshusers
MaxAuthTries 4

Los pares clave-valor más importantes son:

PermitRootLogin no
AllowGroups sshusers

Con esto ya puedes reiniciar ssh:

service ssh restart

Y comprobar que tu nueva configuración ssh funciona.

Luego instala estas aplicaciones para reforzar la seguridad:

apt-get install sshguard
apt-get install fail2ban

Para más detalles se recomienda consultar:

Comprueba las actualizaciones

Comprueba qué distribución tiene instalada tu servidor:

cat /etc/lsb-release

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

do-release-upgrade

Borra el software que no necesites

Comprueba qué paquetes tienes instalados:

dpkg --get-selections

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

apt-get remove --purge ftp
apt-get remove --purge telnet

Instala Apache 2 con PHP

apt-get install apache2 php5 libapache2-mod-php5

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

a2enmod 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.

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:

apt-get install php5-mysql php5-gd php5-curl

Instala mod_evasive y mod_security

apt-get install libapache2-mod-evasive
apt-get install libapache2-modsecurity

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í:

find / -name "test.pl"
perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl

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.

Instala MySQL y haz hardening de MySQL

Para instalar MySQL:

apt-get install mysql-server mysql-client

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

Ejecuta en tu servidor solo los servicios que necesitas

Cuando ya tengas tu máquina funcionando debes asegurarte que solo corren los servicios imprescindibles. Así pues, 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?

Previous Post Next Post