Configurar y asegurar un VPS Linux desde cero paso a paso

Primeros pasos al alquilar un servidor privado

Cuando decides dar el salto y alquilar un servidor virtual privado, una de las tareas más importantes es configurar y asegurar un VPS Linux desde cero. Al recibir las credenciales de acceso por primera vez, el servidor suele ser un lienzo en blanco que viene configurado con permisos muy abiertos y el usuario root con contraseña predeterminada, lo cual representa un riesgo de seguridad crítico para cualquier proyecto que desees alojar en la nube.

Imaginar un servidor en internet es como tener una casa propia en medio de una gran ciudad. Si dejas la puerta principal abierta de par en par y la llave puesta en la cerradura, cualquier transeúnte podrá entrar sin esfuerzo. En este artículo vamos a cerrar todas esas puertas traseras innecesarias, a cambiar las cerraduras y a poner un sistema de vigilancia moderno para que tus aplicaciones web descansen sobre una infraestructura blindada contra ataques informáticos automatizados.

Crear un nuevo usuario administrador y retirar los privilegios root

El primer error que cometen muchos administradores novatos es seguir operando el día a día utilizando la cuenta de root. El usuario root es el equivalente al dios supremo del sistema operativo: puede borrar archivos vitales con un simple comando mal escrito y permite que cualquier atacante que descubra esa contraseña tome el control absoluto del equipo de manera inmediata.

Para solucionar esto, lo primero que debemos hacer al conectarnos por primera vez mediante la consola es crear un usuario nuevo con privilegios limitados pero con la capacidad de invocar comandos de administrador cuando sea estrictamente necesario. Esto se logra mediante el comando adduser seguido del nombre que prefieras para tu cuenta personal.

Una vez creado el usuario, debemos asignarle permisos dentro del grupo sudo. De esta manera, cada vez que necesites instalar una herramienta nueva o modificar un archivo del sistema, podrás escribir ‘sudo’ antes de la orden, pidiendo una confirmación mediante tu contraseña personal y manteniendo un registro claro de quién realizó cada cambio importante en el servidor.

Autenticación robusta: Configurar claves SSH

Las contraseñas tradicionales, por muy largas y complejas que parezcan, son altamente vulnerables a ataques de fuerza bruta donde programas maliciosos prueban millones de combinaciones por segundo hasta adivinar la clave correcta. Para eliminar este riesgo de raíz, la mejor práctica en el mundo de los servidores es implementar el acceso mediante pares de llaves criptográficas.

Este sistema funciona generando dos archivos en tu ordenador personal: una llave pública, que instalas en el servidor remoto, y una llave privada, que guardas bajo llave en tu disco duro y que nunca debes compartir con nadie. Al intentar entrar al VPS, el servidor te pedirá que demuestres que posees la llave privada correspondiente, haciendo que el inicio de sesión sea instantáneo y prácticamente imposible de hackear mediante métodos automatizados.

Una vez comprobado que puedes entrar usando tu llave criptográfica, el siguiente paso lógico es desactivar por completo el acceso por contraseña tradicional en el archivo de configuración del servicio SSH. Al prohibir el acceso mediante contraseña y bloquear la entrada directa del usuario root, habrás eliminado más del noventa por ciento de los vectores de ataque más comunes en internet.

Instalación y configuración del cortafuegos UFW

Un servidor expuesto a internet recibe constantes sondeos automáticos desde todas partes del mundo. Direcciones IP desconocidas prueban continuamente si tienes puertos abiertos para servicios de correo, bases de datos o paneles de control olvidados. Para mantener el control sobre qué entra y qué sale de nuestro equipo, necesitamos configurar un cortafuegos.

El cortafuegos UFW (Uncomplicated Firewall) es una herramienta excelente para sistemas basados en Ubuntu y Debian, ya que simplifica enormemente la tarea de definir reglas de filtrado de tráfico. Por defecto, la política recomendada es bloquear absolutamente todas las conexiones entrantes y permitir únicamente aquellas que sean estrictamente necesarias para el funcionamiento del servidor.

Puerto Servicio Acción recomendada
22 (o puerto SSH personalizado) Acceso remoto seguro Permitir
80 Tráfico web HTTP Permitir
443 Tráfico web seguro HTTPS Permitir

Una vez establecidas estas reglas básicas, activamos el cortafuegos. Es fundamental asegurarnos de haber permitido el puerto de conexión SSH antes de activar el cortafuegos; de lo contrario, nos expulsaremos a nosotros mismos del servidor y perderemos el acceso remoto de forma instantánea, obligándonos a utilizar la consola de rescate del proveedor de hosting.

Protección activa con Fail2ban

Incluso después de cerrar el acceso por contraseña y activar el cortafuegos, es muy probable que notes en los registros de tu servidor intentos constantes de conexión al puerto SSH. Los bots maliciosos no descansan y seguirán intentando adivinar credenciales aunque las probabilidades estén en su contra.

Para frenar en seco a estos atacantes disponemos de Fail2ban, una utilidad inteligente que analiza en tiempo real los archivos de registro del sistema operativo. Si detecta un patrón sospechoso, como múltiples fallos consecutivos de inicio de sesión desde una misma dirección IP, el programa toma cartas en el asunto añadiendo una regla temporal en el cortafuegos para banear esa dirección IP durante unas horas.

Puedes personalizar las reglas de Fail2ban para que el bloqueo sea temporal o permanente según la gravedad de los intentos. Esta simple herramienta reduce drásticamente el consumo de recursos de tu procesador dedicado a procesar peticiones maliciosas y añade una capa de tranquilidad invaluable a la gestión diaria de tu infraestructura.

Automatización de actualizaciones de seguridad

Los sistemas operativos y las aplicaciones de código abierto descubren vulnerabilidades de seguridad de forma constante. Los desarrolladores lanzan parches de seguridad para corregir estos fallos tan pronto como son descubiertos, pero recae sobre el administrador del servidor la responsabilidad de aplicar dichas actualizaciones de manera puntual.

Depender exclusivamente de la memoria humana para acordarse de actualizar el servidor cada semana es una receta para el desastre. Por suerte, los sistemas Linux permiten automatizar la descarga e instalación de parches críticos de seguridad en segundo plano sin interrumpir el funcionamiento de las aplicaciones web que tengas alojadas.

Configurar paquetes de actualización desatendida garantiza que tu servidor esté protegido contra las últimas vulnerabilidades divulgadas en la comunidad incluso cuando estás durmiendo o de vacaciones. Eso sí, es recomendable revisar periódicamente los registros del sistema para asegurarte de que los reinicios programados, en caso de ser necesarios, se realicen en horarios de menor tráfico.

Preguntas frecuentes sobre la gestión de VPS

¿Es obligatorio cambiar el puerto por defecto de SSH?

No es estrictamente obligatorio si ya has desactivado el acceso por contraseña y solo permites llaves criptográficas, pero cambiar el puerto ayuda a reducir notablemente la cantidad de ruido y registros basura generados por bots automáticos en internet.

¿Qué hago si me bloqueo fuera del servidor por error?

Todos los proveedores de VPS modernos ofrecen en su panel de control web una herramienta llamada consola VNC o consola de rescate. Esta pantalla te permite iniciar sesión directamente como root desde el navegador web del panel, permitiéndote corregir cualquier error en el cortafuegos o en la configuración de usuarios.

¿Cada cuánto tiempo debo revisar la seguridad del servidor?

Se recomienda realizar una auditoría rápida de los registros del sistema al menos una vez al mes, comprobando las alertas de Fail2ban, el espacio en disco disponible y el estado de las copias de seguridad automáticas de tus archivos y bases de datos.

Dejá un comentario