15 consejos de seguridad de VPS para evitar ataques a tu servidor
Saber cómo asegurar tu VPS Linux te ayudará a evitar varias amenazas y ataques cibernéticos. Sin embargo, no es una tarea de una sola vez. Además de aplicar las mejores prácticas de seguridad, tienes que monitorear tu servidor privado virtual continuamente.
Con esto en mente, vamos a profundizar en la seguridad de Linux y sus debilidades más comunes. También discutiremos 15 consejos de seguridad VPS para prevenir ataques cibernéticos.
Tabla de Contenidos
Seguridad de Linux y debilidades comunes
Aunque Linux es famoso por su sistema seguro, tiene algunas vulnerabilidades. Muchas amenazas de seguridad pueden dañar la seguridad y los datos de tu servidor.
Repasemos en detalle la lista de las amenazas y debilidades más comunes:
- Malware: se refiere al software intrusivo diseñado intencionadamente para dañar los ordenadores y sus sistemas operativos. Viene en muchas formas, incluyendo troyanos, ransomware, virus y spyware.
- Ataque de sniffing: ocurre cuando un pirata informático utiliza rastreadores de paquetes para interceptar y extraer datos de una red.
- Ataque de fuerza bruta: método de hackeo en el que un atacante utiliza el método de ensayo y error para adivinar las credenciales de acceso.
- Inyección SQL: se produce cuando un hacker explota el código de una aplicación web para acceder a la base de datos del servidor.
- Cross-site scripting (XSS): un ataque del lado del cliente durante el cual un hacker inyecta código malicioso en un sitio web.
- Sin control a nivel funcional: los servidores pueden causarlo al no verificar los derechos de acceso adecuadamente, dando a los usuarios generales privilegios de root.
- Autenticación rota: robo de identidad que suele ocurrir debido a datos no encriptados, contraseñas débiles o tiempos de espera de la sesión de la aplicación mal configurados.
Antes de poner en marcha cualquier medida de seguridad, conoce los elementos que debes vigilar. He aquí algunos de ellos:
- Seguridad del alojamiento VPS
- Software de servidor
- Conexión SSH
- Acceso root y logins
- Contraseñas y credenciales
- Firewall
- Conexión FTP
- Derechos y privilegios de los usuarios
- Registros del servidor
15 consejos de seguridad de VPS para proteger la seguridad de tu servidor
Esta sección contiene 15 consejos de seguridad para proteger tu alojamiento VPS.
1. Identificar la seguridad de tu alojamiento web
El proveedor de alojamiento que elijas tiene que tener una fuerte infraestructura de seguridad y ofrecer protección adicional para mantener tu servidor seguro. En Hostinger, proporcionamos módulos de seguridad avanzados para proteger nuestros VPS, como mod_security, firewall, Suhosin PHP hardening y protección PHP open_basedir.
Además, Hostinger utiliza la protección de servidor full-stack de BitNinja y la mitigación avanzada de DDoS incorporada para mejorar la seguridad de los VPS en general. Cuando se trata de servidores de alojamiento compartido, ofrecemos el software antimalware Monarx.
Además, Hostinger ofrece copias de seguridad periódicas automatizadas e instantáneas en vivo que puedes utilizar para restaurar tu sitio web inmediatamente en caso de que se caiga.
2. Cambiar el puerto SSH por defecto
Si sigues utilizando el puerto 22 para acceder a tu servidor virtual a través de una conexión SSH, hay una alta probabilidad de que se produzcan intentos de hackeo. Esto se debe a que los atacantes pueden escanear los puertos abiertos para realizar ataques de fuerza bruta y obtener acceso remoto al servidor.
Te recomendamos que utilices un puerto diferente para SSH para proteger tus datos contra los ciberataques.
A continuación se explica cómo cambiar el puerto SSH:
- Abre el Terminal y entra en SSH.
- Edita el archivo de configuración del servicio ejecutando el siguiente comando:
nano /etc/ssh/sshd_config
- Localiza la línea que dice Puerto 22.
- Sustituye el 22 por un nuevo número de puerto y elimina #.
- Guarda los cambios y pulsa salir.
- Reinicia el servicio introduciendo el siguiente comando y pulsando Enter:
- Para Debian y Ubuntu
service ssh restart
- Para CentOS y Red Hat Enterprise Linux (RHEL)
systemctl restart sshd.service
- Por último, intenta iniciar sesión en SSH utilizando el nuevo puerto.
3. Desactivar los inicios de sesión del root
Cada VPS Linux tiene un usuario root que tiene los mayores privilegios en comparación con los otros usuarios del sistema. Los ciberdelincuentes pueden dirigirse a ellos para obtener acceso completo al servidor.
Por lo tanto, es crítico deshabilitar los inicios de sesión desde el usuario root para proteger a los servidores de ataques de fuerza bruta. También recomendamos crear un nombre de usuario alternativo con el privilegio de ejecutar comandos de nivel de root.
Sigue estos pasos para deshabilitar los inicios de sesión de root:
- Abre el Terminal y accede a tu cuenta SSH.
- Para abrir y editar el archivo de configuración, ejecuta el siguiente comando usando nano o vi:
nano /etc/ssh/sshd_config
- Encuentra el siguiente parámetro y cámbialo a no:
PermitRootLogin=no
- Guarda los cambios y reinicia el servicio SSH ejecutando el siguiente comando:
- Para Debian y Ubuntu
service ssh restart
- Para CentOS y Red Hat Enterprise Linux (RHEL)
systemctl restart sshd.service
- Esto desactivará el inicio de sesión de root.
4. Utilizar contraseñas seguras
Las contraseñas que contienen información relacionada con tu identidad o simples frases de acceso son fáciles de adivinar. Por lo tanto, crea una contraseña larga y fuerte con varios elementos, como letras minúsculas y mayúsculas, números y caracteres especiales. Al hacerlo, protegerás tu sistema contra los ataques de fuerza bruta.
Además, no reutilices la misma contraseña.
También puedes emplear herramientas online como NordPass o LastPass para crear contraseñas fuertes. Ambas ofrecen opciones de personalización, como limitar la longitud de la contraseña y el uso de caracteres.
5. Empezar a utilizar las claves SSH
Si todavía utilizas una contraseña para acceder a tu cuenta SSH, puedes convertirte en objetivo de ataques de sniffing. Para evitar esto, utiliza claves SSH en su lugar. Básicamente, las claves SSH son un método de autenticación más seguro que las contraseñas.
Como los ordenadores generan estas claves, pueden tener una longitud de hasta 4096 bits, lo que las hace más largas y complejas que una contraseña.
Las claves SSH vienen en dos conjuntos: pública y privada. La primera se guarda en el servidor, mientras que la segunda se almacena en la máquina del usuario. Cuando se detecta un intento de inicio de sesión, el servidor genera una cadena aleatoria y la cifra con una clave pública. El mensaje encriptado sólo puede ser descifrado utilizando la clave privada asociada.
A continuación se explica cómo generar una clave SSH en Linux:
- Abre la aplicación Terminal y entra en SSH.
- Para generar claves públicas y privadas, escribe el siguiente comando y pulsa Enter:
ssh-keygen -t rsa
- Una vez que aparezca la respuesta, pulsa Enter:
Enter file in which to save the key (/root/.ssh/id_rsa):
- Se te pedirá que introduzcas la contraseña dos veces. Si no la tienes, puedes pulsar Enter dos veces.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
- Tus claves privadas y públicas se han guardado correctamente.
6. Configurar un Firewall Interno (IP Tables)
Como el tráfico HTTP puede venir de cualquier parte, es esencial filtrarlo para garantizar que sólo los visitantes con una excelente reputación puedan acceder a tu sistema. Hacerlo te ayudará a evitar el tráfico no deseado y los ataques DDoS.
Las distribuciones de Linux vienen con un servicio de firewall interno llamado iptables. Esta herramienta supervisa el tráfico desde y hacia tu servidor mediante tablas. Emplea reglas llamadas cadenas para filtrar los paquetes de datos entrantes y salientes.
Con ella, puedes ajustar las restricciones del firewall según tus necesidades. A continuación se explica cómo instalar y comprobar la configuración actual de iptables en Ubuntu:
- Abre el Terminal y entra en SSH.
- Instala iptables ejecutando el siguiente comando:
sudo apt-get install iptables
- Una vez finalizada la instalación, escribe el siguiente comando y pulsa Enter:
sudo iptables -L -v
- La salida incluirá una lista de todas las reglas en un formato detallado.
7. Configurar el firewall de UFW
Recomendamos habilitar un Uncomplicated Firewall (UFW) como capa adicional para hacer seguimiento al tráfico entrante y saliente de tu sistema. Se trata de un firewall con filtro de red que está diseñado para ser fácil de usar.
UFW actúa como el front-end de iptables y suele venir preinstalado en las distribuciones de Linux. En general, denegará todas las conexiones entrantes y permitirá las salientes, disminuyendo el riesgo de posibles amenazas. Además, puedes modificar y añadir reglas al firewall según tus preferencias.
A continuación te explicamos cómo activarlo en Ubuntu:
- Abre el Terminal y conéctate vía SSH.
- Escribe el siguiente comando para habilitar UFW y pulsa Enter:
sudo ufw enable
- Si la respuesta indica que no se ha encontrado el comando, instala el firewall utilizando este comando:
sudo apt-get install ufw
- Una vez completada la instalación, ejecuta el comando del segundo paso para habilitar UFW.
- Verifica el estado del firewall utilizando el siguiente comando:
sudo ufw status
8. Utilizar SFTP en lugar de FTP
Mientras que las conexiones FTP no tienen cifrado activado, FTP sobre TLS (FTPS) sólo cifra las credenciales y no las transferencias de archivos.
Como resultado, el uso de ambas conexiones puede poner en riesgo tus datos. Los hackers pueden realizar fácilmente un ataque de sniffing para robar tus credenciales de acceso e interceptar las transferencias de archivos.
Para evitarlo, utiliza FTP sobre SSH o SFTP en su lugar. Se trata de una conexión FTP segura, ya que encripta completamente todos los datos, incluyendo las credenciales y los archivos que se transfieren. Además, SFTP protege a los usuarios de los ataques man-in-the-middle, ya que el cliente debe ser autenticado por el servidor antes de acceder al sistema.
Sigue estos pasos para configurar una conexión SFTP:
- Abre el Terminal y entra en SSH.
- Inicia una conexión SFTP introduciendo este comando y pulsando Enter:
sftp user@server_ipaddress
o
sftp user@remotehost_domainname
- Si estás utilizando un puerto personalizado, ejecuta el siguiente comando:
sftp -oPort=customport user@server_ipaddress
o
sftp -oPort=customport user@remotehost_domainname
- Una vez que estés conectado, aparecerá un aviso de SFTP.
9. Configurar Fail2Ban
Fail2Ban supervisa los registros del sistema y bloquea a los hackers después de varios inicios de sesión fallidos. Además, protege los servidores contra ataques DoS, DDoS, de diccionario y de fuerza bruta. Fail2Ban utiliza iptables y firewalld para prohibir las direcciones IP.
Sigue los siguientes pasos para configurar Fail2Ban en Ubuntu:
- Abre el Terminal e inicia una conexión SSH.
- Instala el paquete de software Fail2Ban introduciendo el siguiente comando y pulsando Enter:
sudo apt-get install fail2ban
- Aparecerá la siguiente salida. Escribe Y pulsa Enter.
Do you want to continue? [Y/n] y
- Una vez terminada la instalación, verifica el estado ejecutando el siguiente comando:
sudo systemctl status fail2ban
- El software Fail2Ban debe estar activo y funcionando.
10. Instalar un antivirus
Además de configurar un firewall para filtrar el tráfico entrante, considera la posibilidad de supervisar los archivos almacenados en tu VPS. Como Linux no es innatamente inmune al ataque de virus, las amenazas cibernéticas pueden apuntar a tus servidores y dañar tus datos.
Por lo tanto, es fundamental instalar un software antivirus como práctica de endurecimiento de la seguridad. Hay muchas opciones disponibles, pero la más notable es ClamAV. Es de código abierto y sirve para detectar actividades sospechosas y poner en cuarentena los archivos no deseados.
Sigue estas instrucciones para instalar ClamAV en CentOS:
- Abre el Terminal y entra en SSH.
- Instala los Paquetes Extra para Linux Empresarial (EPEL) ejecutando este comando:
sudo yum -y install epel-release
- La salida Complete! indicará que la instalación de la EPEL está terminada.
- Borra toda la información en caché escribiendo el siguiente comando y pulsando Enter:
sudo yum clean all
- Instala ClamAV ejecutando el siguiente comando:
sudo yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
- Espera a que aparezca otra línea Complete! para saber cuándo ha finalizado la instalación.
- ClamAV debería estar ahora en funcionamiento.
11. Configurar una VPN para tu VPS
Si utilizas una conexión pública, hay muchas posibilidades de que alguien intercepte tu tráfico y robe tus datos.
Para evitarlo, te recomendamos que configures una VPN para combatir las amenazas a la seguridad. Ésta dirigirá tu tráfico a través de un túnel cifrado y enmascarará tu ubicación real, ya que tu máquina utilizará la dirección IP de la VPN. Esto también te permitirá mantener el anonimato mientras navegas por Internet, ya que tu IP no será rastreable.
En resumen, una VPN mantiene tus datos seguros y evita que los hackers intercepten tu tráfico. Trabaja de la mano con un firewall para proporcionar seguridad adicional al VPS.
Una VPN también es beneficiosa para los usuarios que viven en una zona con restricciones de ubicación, ya que les permite cambiar sus IP para evitar la censura de Internet.Consejo profesional
Sigue estos pasos para instalar OpenVPN en CentOS:
- Abre el Terminal y conéctate con SSH.
- Instala el paquete net-tools antes de instalar OpenVPN. Ejecuta este comando:
sudo yum install net-tools
- Escribe el siguiente comando curl para descargar el paquete OpenVPN y pulsa Enter:
curl -O http://swupdate.openvpn.org/as/openvpn-as-2.7.3-CentOS7.x86_64.rpm
- Verifica la suma de comprobación SHA256 para validar la instalación ejecutando el siguiente comando:
sha256sum openvpn-as-*
- La salida mostrará el checksum como se muestra a continuación:
- Compara la suma de comprobación del binario descargado con la proporcionada en el sitio web. Si coinciden, puedes empezar a instalar OpenVPN con este comando:
sudo rpm --install openvpn-as-*.rpm
- Cuando la instalación se haya completado, obtendrás los detalles de la UI de administrador y de la UI de cliente, como se muestra a continuación:
- A continuación, configura una contraseña con el siguiente comando:
passwd openvpn
- Se te pedirá que vuelvas a escribir la nueva contraseña.
- Visita la interfaz de usuario del administrador o del cliente para acceder a la pantalla que aparece a continuación:
- Introduce el nombre de usuario openvpn y la contraseña que acabas de configurar y pulsa Sign In.
Consejo profesional
Los nuevos planes Hostinger KVM VPS son compatibles con cualquier servidor VPN disponible en el mercado.
12. Revisar los derechos de los usuarios
Si muchos usuarios utilizan tu hosting VPS, la distribución del control y los derechos debe ser considerada cuidadosamente. Proporcionar a todos los usuarios privilegios de nivel de root puede poner en riesgo el uso de tus recursos y los datos sensibles.
Por lo tanto, es necesario establecer un límite de acceso para evitar problemas en tu servidor. Esto se puede hacer mediante la gestión de usuarios y la concesión de diferentes niveles de permisos a conjuntos específicos de archivos y recursos.
Linux tiene una función de privilegios del sistema que te ayudará a definir los derechos de los usuarios. Para ello, crea un grupo de usuarios con los mismos privilegios.
A continuación se explica cómo gestionar los usuarios y sus privilegios en Ubuntu:
- Abre el Terminal y conéctate vía SSH.
- Introduce el siguiente comando para crear un grupo y pulsa Enter:
sudo addgroup my_group
- A continuación, crea un nuevo usuario ejecutando el siguiente comando:
adduser first_user
- La salida te pedirá que establezcas una contraseña y que rellenes los datos biográficos, como el nombre completo, el número de habitación y el teléfono. Escribe y pulsa Enter para confirmar la información introducida.
- Para añadir un usuario a un grupo, ejecuta el siguiente comando. Ten en cuenta que no produce ninguna salida.
sudo usermod -a -G group1,group2 first_user
- Si quieres conceder acceso de root a un usuario, ejecuta el siguiente comando. Ten en cuenta que esto tampoco produce ninguna salida.
sudo usermod -aG sudo first_user
- Por otro lado, si tienes un directorio y quieres añadirle privilegios de lectura y escritura, esta es la sintaxis básica:
sudo chmod -R g+w /directory
13. Desactivar IPv6
Tener IPv6 habilitado expone las vulnerabilidades de seguridad y hace que tu alojamiento VPS sea propenso a varios ataques cibernéticos. Si no lo estás usando activamente, te recomendamos deshabilitarlo por completo.
Como los hackers a menudo envían tráfico malicioso a través de IPv6, dejar el protocolo abierto puede exponer tu servidor a muchas brechas de seguridad potenciales. Incluso si no estás usando activamente IPv6, algunos de tus programas pueden abrir sockets de escucha en él. Por lo tanto, cada vez que entre un paquete, lo procesarán incluyendo paquetes maliciosos.
Sigue estas instrucciones para desactivar IPv6 en Ubuntu:
- Abre el Terminal y entra en SSH.
- Escribe el siguiente comando para desactivar IPv6 y pulsa Enter:
sudo nano /etc/sysctl.d/99-sysctl.conf
- Se abrirá el archivo de configuración. Añade las siguientes líneas en la parte inferior:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
- Guarda y cierra el archivo.
- A continuación, ejecuta el siguiente comando para ejecutar los cambios:
sudo sysctl -p
- Por último, inserta el siguiente comando y pulsa Enter. Si ves 1, significa que IPv6 se ha desactivado con éxito.
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
14. Supervisar los registros de tu servidor
La supervisión de los registros de tu servidor te ayuda a mantener el control de lo que ocurre con tu hosting VPS. Estos registros también pueden utilizarse en análisis e informes para obtener información detallada sobre el estado actual del servidor.
Los registros te permitirán saber si se está experimentando ciberataques u otras amenazas de seguridad. Cuanto antes se solucionen esas vulnerabilidades, menos oportunidades tendrán los atacantes de interceptar datos.
Uno de los directorios críticos en tu sistema Linux se llama /var/log. Almacena una colección de archivos de registro que contienen información crucial relacionada con el sistema, el kernel, los gestores de paquetes y varias aplicaciones que se ejecutan en el servidor.
A continuación se explica cómo abrir /var/log y comprobar los registros del sistema en un servidor Ubuntu:
- Abre el Terminal y entra en SSH.
- Ejecuta el siguiente comando para cambiar el directorio de trabajo a /var/log. Ten en cuenta que esto no producirá ninguna salida.
cd /var/log
- Para listar todos los archivos, inserta el siguiente comando y pulsa Enter:
ls
- Para comprobar los registros del sistema, introduce el siguiente comando y pulsa Enter:
sudo cat syslog
15. Mantener tus aplicaciones al día
Cuanto más antiguo sea el software que utiliza tu VPS, más vulnerable será. Los desarrolladores suelen lanzar actualizaciones y parches de seguridad con regularidad. Asegúrate de buscar las últimas versiones e instalarlas tan pronto como estén disponibles.
Aquí se explica cómo hacerlo en Debian o Ubuntu:
- Si vas a actualizar toda la lista de paquetes, ejecuta el siguiente comando:
sudo apt-get update
- Si estás actualizando el paquete real, introduce este comando y pulsa Enter:
sudo apt-get upgrade
Sigue estos pasos para hacerlo en CentOS/RHEL:
- Para recargar la base de datos de paquetes e instalar actualizaciones, escribe este comando y pulsa Enter.
sudo yum update
- Para comprobar si hay actualizaciones, inserta el siguiente comando y pulsa Enter.
sudo yum check-update
Te recomendamos automatizar este proceso activando las actualizaciones automáticas si utilizas un sistema de gestión de contenidos (CMS) en tu servidor. Además, también puedes crear cron jobs, una utilidad basada en Linux para programar un comando o script para que se ejecute a una hora y fecha determinadas.
La forma más conveniente de instalar y ejecutar un cron job en CentOS o RHEL es utilizando yum-cron. Éste actualizará automáticamente el software cada vez que se publique una nueva versión. A continuación se explica cómo configurarlo en CentOS o RHEL:
- Abre el Terminal y conéctate vía SSH.
- Instala yum-cron ejecutando el siguiente comando:
sudo yum install yum-cro
- Habilita el servicio insertando el siguiente comando y pulsando Enter. Ten en cuenta que esto no producirá ninguna salida.
sudo systemctl enable yum-cron.service
- Inicia el servicio escribiendo el siguiente comando y pulsando Enter. Ten en cuenta que este comando no producirá una respuesta.
sudo systemctl start yum-cron.service
- Comprueba el estado del servicio ejecutando este comando:
sudo systemctl status yum-cron.service
- Abre el archivo de configuración con el siguiente comando:
sudo vi /etc/yum/yum-cron.conf
- Busca la siguiente línea en la salida y sustituye “no” por “sí”. Guarda los cambios y sal del archivo.
apply_updates = yes
Conclusión
Es importante proteger y mantener tu VPS seguro en todo momento, especialmente porque almacena tus datos y programas sensibles.
Aunque Linux es famoso por su robusta seguridad, todavía tiene vulnerabilidades que debes tener en cuenta. Los ataques cibernéticos más comunes y los problemas que hay que tener en cuenta son el malware, los ataques de sniffing y de fuerza bruta, las inyecciones SQL, el cross-site scripting (XSS), la falta de control a nivel de funcionalidad y la autenticación rota.
Por lo tanto, los propietarios de servidores privados virtuales deben saber cómo protegerlos y supervisarlos. Para ayudarte, hemos recopilado los 15 mejores consejos de seguridad:
- Asegúrate de que tu proveedor de alojamiento cuente con sólidas medidas de seguridad en sus servidores.
- Utiliza un puerto SSH más seguro.
- Desactiva los inicios de sesión de root.
- Utiliza contraseñas complejas.
- Habilita las claves SSH como método de autenticación.
- Utiliza iptables en tu servidor.
- Instala un firewall UFW como capa de seguridad adicional.
- Empieza a utilizar SFTP en lugar de FTP.
- Activa la función Fail2Ban.
- Instala un software de antivirus.
- Configura la VPN para el VPS.
- Revisa los privilegios de los usuarios.
- Desactiva la IPv6 en tu servidor.
- Supervisa los registros del servidor.
- Comprueba las actualizaciones de seguridad.
Esperamos que este artículo te haya ayudado a proteger tu hosting VPS. Si tienes alguna pregunta o sugerencia, déjala en los comentarios de abajo.