En la era digital, proteger tu Servidor Privado Virtual (VPS) Linux
es esencial para salvaguardar tus datos y tu infraestructura. Esta
guía completa explora métodos para proteger tu VPS Linux frente a
amenazas cibernéticas.
Mantén tu sistema
actualizado
Uno de los aspectos más importantes para proteger tu VPS Linux es
asegurarte de que el sistema esté actualizado. El software desactualizado puede
contener vulnerabilidades que actores maliciosos pueden explotar. Aquí te explicamos cómo
hacerlo:
Usa el gestor de paquetes
La mayoría de las distribuciones Linux incluyen un gestor de paquetes. Por ejemplo, si
usas un sistema basado en Debian, puedes ejecutar los siguientes comandos
para actualizar los paquetes:
sudo apt update
sudo apt upgrade
Si usas un sistema CentOS, utiliza yum:
sudo yum update
Configura las actualizaciones
Actualizaciones
Configura las actualizaciones automáticas con unattended-upgrades en
sistemas basados en Debian:
En sistemas basados en Debian como Ubuntu, puedes usar el paquete
unattended-upgrades para automatizar el proceso de actualización.
- Instala unattended-upgrades:
sudo apt install unattended-upgrades
- Configura los ajustes de actualización automática. Edita la configuración
archivo:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
- Activa las actualizaciones automáticas para paquetes relacionados con la seguridad:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
"${distro_id}:${distro_codename}-proposed";
"${distro_id}:${distro_codename}-backports";
};
- Activa e inicia el servicio unattended-upgrades:
sudo dpkg-reconfigure -plow unattended-upgrades
Este comando te pedirá que confirmes los cambios. Selecciona «Sí» para
activar las actualizaciones automáticas.
Configura las actualizaciones automáticas con yum-cron en
CentOS:
En CentOS, puedes usar yum-cron para las actualizaciones automáticas:
- Instala yum-cron:
sudo yum install yum-cron
- Inicia y activa el servicio yum-cron:
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
Usa
Contraseñas seguras y claves SSH para una autenticación segura
Proteger tu VPS Linux implica usar métodos de autenticación sólidos.
Tanto si te conectas desde un cliente Linux como Windows, así es como
usar contraseñas seguras y claves SSH de forma eficaz:
Uso de contraseñas
seguras
Al crear cuentas de usuario en tu VPS, asegúrate de que las contraseñas sean
complejas: combina letras mayúsculas y minúsculas, números y caracteres
especiales. Evita contraseñas fáciles de adivinar.
Uso de clave SSH
Autenticación
Para el cliente Linux:
- Para generar un par de claves SSH en tu cliente Linux, usa ssh-keygen
comando:
ssh-keygen -t rsa -b 2048
La clave pública se almacenará por defecto en ~/.ssh/id_rsa.pub.
- Copia tu clave pública al VPS:
ssh-copy-id user@your_server_ip
- Desactiva el inicio de sesión SSH con contraseña en el VPS desde el archivo de
configuración del servidor SSH (/etc/ssh/sshd_config):
PasswordAuthentication no
Para el cliente Windows:
- En Windows, usa PowerShell para una funcionalidad equivalente:
ssh-keygen
- Copia tu clave pública al VPS usando PowerShell. Sustituye
IP-ADDRESS-OR-FQDN por la dirección
dirección:
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@{IP-ADDRESS-OR-FQDN} "cat >> .ssh/authorized_keys"
- Desactiva el inicio de sesión SSH con contraseña en el VPS desde el archivo de
configuración del servidor SSH (/etc/ssh/sshd_config):
PasswordAuthentication no
Configura un cortafuegos
Proteger tu VPS Linux implica configurar un cortafuegos para controlar
el tráfico entrante y saliente. Sigue estos pasos para implementar un cortafuegos y
reforzar la seguridad:
Usa ufw (Uncomplicated Firewall) en Debian/Ubuntu o
firewalld en CentOS:
- Instala la herramienta de gestión del cortafuegos si aún no está instalada.
Para ufw en Debian/Ubuntu:
sudo apt install ufw
Para firewalld en CentOS:
sudo yum install firewalld
- Añade reglas para permitir SSH antes de activar el cortafuegos y evitar quedarte
sin acceso:
Para ufw en Debian/Ubuntu:
sudo ufw allow OpenSSH
Para firewalld en CentOS:
sudo firewall-cmd --permanent --add-service=ssh
- Activa el cortafuegos y establece las reglas por defecto:
Para ufw en Debian/Ubuntu:
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
Para firewalld en CentOS:
sudo systemctl start firewalld
sudo systemctl enable firewalld
- Recarga el cortafuegos para que los cambios surtan efecto.
Para ufw en Debian/Ubuntu:
sudo ufw reload
Para firewalld en CentOS:
sudo systemctl reload firewalld
Desactivar el acceso como root
Proteger tu VPS Linux implica restringir el acceso como root. Sigue estos pasos para
deshabilitar el inicio de sesión como root y mejorar la seguridad:
- Crea un nuevo usuario: conéctate a tu VPS como root y crea
una cuenta de usuario con privilegios sudo. Sustituye newuser por el
nombre de usuario que quieras:
adduser newuser
usermod -aG sudo newuser
- Crea el directorio .ssh, el archivo authorized_keys y configura los permisos para
el nuevo usuario:
mkdir -p /home/newuser/.ssh
touch /home/newuser/.ssh/authorized_keys
chmod 600 /home/newuser/.ssh/authorized_keys
chown -R newuser:newuser /home/newuser/.ssh
-
Asegúrate de generar y copiar la clave pública a tu
VPS. -
Inicia sesión como el nuevo usuario.
-
Desconéctate de VPS (si estás conectado como root) e inicia
sesión con la nueva cuenta de usuario. Así podrás ejecutar
tareas administrativas con sudo. -
Editar la configuración de SSH:
Abre el archivo de configuración del servidor SSH en tu VPS. Este archivo
suele estar en /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
Busca la línea PermitRootLogin y cámbiala a no:
PermitRootLogin no
Guarda el archivo y cierra el editor de texto.
- Reiniciar el servicio SSH:
Después de este cambio, reinicia el servicio SSH para que
la nueva configuración surta efecto:
En Debian/Ubuntu:
sudo systemctl restart ssh
En CentOS:
sudo systemctl restart sshd
Reforzar SSH
Configuración
Proteger tu VPS Linux implica reforzar la configuración de SSH
para mayor seguridad y mantener las reglas de UFW actualizadas.
Así se refuerza la configuración de SSH y se actualizan las reglas
de UFW:
- Permitir el nuevo puerto de SSH en UFW:
Si usas UFW (Uncomplicated Firewall), primero permite el nuevo puerto de SSH
antes de cambiar el puerto predeterminado:
# Allow the new SSH port (e.g., 2222)
sudo ufw allow 2222/tcp
- Eliminar OpenSSH de las reglas de UFW:
Tras cambiar el puerto de SSH, elimina la entrada antigua de OpenSSH
servicio (puerto predeterminado 22) de las reglas de UFW para garantizar que solo el nuevo
puerto SSH esté permitido:
# Remove the old OpenSSH service (default port 22)
sudo ufw delete allow OpenSSH
- Cambiar el puerto SSH:
Por defecto, SSH usa el puerto 22. Cambiar el puerto predeterminado añade una
capa adicional de seguridad, ya que dificulta que los bots automatizados encuentren
tu servidor SSH.
Abre el archivo de configuración del servidor SSH:
sudo nano /etc/ssh/sshd_config
Busca la línea que dice Port 22 y cambia el número de puerto por uno
diferente que no esté en uso, por ejemplo, 2222:
Port 2222
- Activar la reautenticación por clave:
Puedes establecer un límite de tiempo para la reautenticación por clave y así reforzar
la seguridad de tu sesión SSH. Esto significa que, si dejas tu sesión SSH
desatendida, expirará automáticamente tras un tiempo determinado.
Añade o modifica las siguientes líneas en el archivo de configuración del servidor SSH
y guárdalo:
ClientAliveInterval 300
ClientAliveCountMax 2
- Recargar las reglas de UFW y el servicio SSH:
sudo ufw reload
sudo systemctl restart ssh
- Una vez realizados los cambios necesarios, puedes establecer una nueva conexión SSH
con el siguiente comando:
ssh -p <new_port> user@your_server_ip
Implementar Fail2Ban
Proteger tu Linux VPS implica defenderte de intentos de inicio de sesión por fuerza bruta
y otros tipos de actividad maliciosa. Fail2Ban es una herramienta útil
para este fin. Aquí se explica cómo implementar Fail2Ban:
- Instalar Fail2Ban:
Comienza actualizando tu lista de paquetes para asegurarte de tener los últimos
paquetes disponibles:
Para sistemas basados en Debian (por ejemplo, Ubuntu):
sudo apt update
Para CentOS:
sudo yum update
Instalar Fail2Ban:
Para sistemas basados en Debian:
sudo apt install fail2ban
Para CentOS:
sudo yum install fail2ban
- Configurar Fail2Ban:
El archivo de configuración principal de Fail2Ban se encuentra en
/etc/fail2ban/jail.conf. Puedes crear un archivo de
anulación en /etc/fail2ban/jail.local para personalizar la configuración
sin modificar la configuración predeterminada. Abre este archivo:
sudo nano /etc/fail2ban/jail.local
Añade la siguiente configuración para bloquear direcciones IP durante 10 minutos
(600 segundos) tras seis intentos fallidos de inicio de sesión. Ajusta los parámetros según
sea necesario:
[sshd]
enabled = true
maxretry = 6
findtime = 600
bantime = 600
Guarda el archivo y cierra el editor de texto.
- Iniciar y habilitar Fail2Ban:
Inicia Fail2Ban y habilítalo para que arranque con el sistema:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
- Comprobar el estado de Fail2Ban:
Puedes comprobar el estado de Fail2Ban para verificar que funciona
correctamente:
sudo fail2ban-client status
Deberías ver que está supervisando el servicio SSH.
Los 6 métodos esenciales descritos aquí ofrecen una defensa sólida
contra posibles vulnerabilidades. Mantener el sistema actualizado,
usar autenticación fuerte, configurar cortafuegos, reforzar SSH
e implementar Fail2Ban protege tu VPS y te da tranquilidad
en un mundo siempre conectado. Si tienes alguna pregunta, no dudes
en contactar con nuestro equipo de soporte a través de enviando un
ticket.
También en Seguridad
Guías relacionadas.
¿Necesitas ayuda con otra cosa?
Tiempo de respuesta medio inferior a 1 hora. Personas reales, no bots.