Acabas de configurar tu nuevo VPS, ¿emocionante, verdad? Pero antes de sumergirte, recuerda: los servidores no seguros son imanes para hackers, y un solo error podría costarte todo. En esta lista de verificación esencial, bloquearás el acceso inicial, aplicarás parches a tu sistema, configurarás firewalls, reforzarás conexiones, gestionarás usuarios de manera estricta, implementarás medidas de seguridad clave y configurarás monitoreo para mantenerte por delante de las amenazas.
1. Evaluar y Asegurar el Acceso Inicial
Cuando enciendas por primera vez un VPS, asegúrate de bloquear ese acceso inicial de inmediato para mantener fuera a cualquier usuario no autorizado sigiloso. Comienza revisando bien tus métodos de inicio de sesión y credenciales – es la mejor manera de construir una base sólida desde el principio.
1.1 Cambiar la Contraseña Predeterminada de Root Inmediatamente
Inmediatamente después de tu primer inicio de sesión, utiliza el comando ‘passwd’ para actualizar tu contraseña de root; hazla de al menos 12 caracteres de longitud, mezclando letras, números y símbolos para mayor seguridad.
Aquí te explico cómo cambiarla de manera segura, paso a paso:
- Inicia sesión como root con tus credenciales actuales a través de la terminal.
- Escribe ‘passwd’ y presiona Enter para comenzar.
- Cuando te lo pida, ingresa tu nueva contraseña y luego escríbelo de nuevo para confirmarla.
- Para asegurarte de que funcionó, cierra la sesión e intenta iniciar sesión de nuevo con la nueva contraseña.
Todo el proceso debería tomarte solo 2-5 minutos.
Ten cuidado con errores comunes como
- reutilizar contraseñas antiguas,
- elegir obvias como ‘password123’
- omitir caracteres especiales;
estos pueden dejar tu sistema completamente expuesto a ataques de fuerza bruta.
Prueba inmediatamente para confirmar que todo está listo.
1.2 Desactivar el inicio de sesión de root vía SSH
Puedes editar el archivo de configuración de SSH para establecer PermitRootLogin en ‘no’, lo que ayuda a reducir el riesgo de ataques dirigidos a tu cuenta root.
Así es como se hace paso a paso:
- Ve al archivo en /etc/ssh/sshd_config y ábrelo con un editor de texto como nano: solo ejecuta sudo nano /etc/ssh/sshd_config.
- Busca o agrega la línea ‘PermitRootLogin no’ en la sección de autenticación, luego guarda los cambios y sal.
- Reinicia el servicio SSH escribiendo sudo systemctl restart sshd para que todo surta efecto.
Esta configuración te obliga a iniciar sesión con una cuenta de usuario regular y luego usar sudo para cualquier cosa a nivel root, lo cual es perfecto para servidores de producción donde la seguridad es mucho más importante que la comodidad.
Todo el proceso debería tomarte menos de 5 minutos, siempre y cuando estés cómodo con algo de trabajo básico en la línea de comandos.
Antes de sumergirte, considera crear un usuario no root primero para tener una forma de acceder; una desventaja es que podrías bloquearte accidentalmente si arruinas la configuración, así que definitivamente pruébalo en un entorno seguro primero.
Para una seguridad aún mejor, combínalo con autenticación basada en claves.
1.3 Crear un Usuario No Root con Privilegios de Sudo
Para crear un usuario de nivel administrador sin meterse directamente con el acceso root, querrás ejecutar ‘adduser newuser’ y luego seguirlo con ‘usermod -aG sudo newuser’. Esto mantiene las cosas seguras mientras te da el poder que necesitas.
Aquí te explico cómo configurarlo sin problemas—sigue estos pasos en orden:
- Ejecuta ‘adduser newuser’ mientras estás conectado como root o usando sudo. Te pedirá una contraseña fuerte y quizás algunos detalles extra sobre el usuario—adelante y complétalos.
- A continuación, ejecuta ‘usermod -aG sudo newuser’ para agregar privilegios sudo. Esto permite que el usuario eleve permisos de manera segura cuando sea necesario.
- Cambia al nuevo usuario escribiendo ‘su – newuser’, luego pruébalo con algo como ‘sudo apt update’ (o lo que use tu gestor de paquetes). Solo ingresa la contraseña para asegurarte de que funcione.
- Cierra sesión de tu sesión actual y vuelve a iniciar sesión directamente como ‘newuser’ para verificar doblemente que todo esté listo.
Todo el proceso debería tomar solo unos 5-10 minutos. Ten cuidado con errores, sin embargo—como olvidar agregar el grupo con esa bandera -aG (estropeará tus grupos si la omites), o elegir una contraseña débil que te deje expuesto. Siempre opta por algo complejo para mantener la seguridad.
2. Actualizar y aplicar parches al sistema operativo
Mantener tu SO actualizado sella esas vulnerabilidades conocidas, así que inicia con un escaneo completo de actualizaciones para detectar y aplicar parches de la manera más fluida posible.
2.1 Ejecutar actualizaciones completas del sistema
Puedes ejecutar ‘apt update && apt upgrade -y’ en sistemas basados en Debian o ‘yum update -y’ en sistemas basados en Red Hat para actualizar todos tus paquetes a las versiones más recientes.
Todo este proceso se desglosa en algunos pasos sencillos para mantener tu sistema en óptimas condiciones. Solo sigue estas acciones numeradas:
- Actualizar la lista de paquetes: Ejecuta ‘apt update’ si estás en Debian o ‘yum check-update’ para Red Hat para refrescar los índices de los repositorios—generalmente toma solo 1-2 minutos.
- Actualizar todos los paquetes: Luego ejecuta ‘apt upgrade -y’ o ‘yum upgrade -y’ para instalar las actualizaciones automáticamente; esto puede completarse en 5-15 minutos, dependiendo de tu velocidad de internet.
- Reiniciar si se actualizó el kernel: Verifica la versión de tu kernel con ‘uname -r’ antes y después, y si cambió, reinicia usando el comando ‘reboot’ para asegurarte de que todo se aplique de manera segura.
- Verificar las versiones: Ejecuta ‘apt list –upgradable’ o ‘yum check-update’ una vez más para confirmar que todo está actualizado.
Ten cuidado con errores comunes, como olvidar reiniciar, lo que puede causar inestabilidad, o interrumpir el proceso—asegúrate de tener una fuente de energía confiable.
En resumen, debería tomarte unos 10-20 minutos.
2.2 Habilitar Actualizaciones de Seguridad Automáticas
Puedes instalar y configurar unattended-upgrades para manejar automáticamente los parches de seguridad, y configurar verificaciones diarias a través de cron para mantener el tiempo de inactividad al mínimo.
Esta herramienta escaneará actualizaciones de seguridad de los repositorios estándar, omitiendo las riesgosas como módulos del kernel a menos que le indiques lo contrario. Es una configuración bastante simple que usualmente toma no más de 15 minutos.
- Comienza ejecutando ‘sudo apt update && sudo apt install unattended-upgrades’ en tu sistema Ubuntu.
- Abre un editor de texto y modifica el archivo en /etc/apt/apt.conf.d/50unattended-upgrades—descomenta líneas como ‘Unattended-Upgrade::Allowed-Origins {‘Ubuntu:${distro_codename}-security:main’;’}’ para especificar tus fuentes de actualización.
- Para esas verificaciones diarias, entra en ‘sudo crontab -e’ y agrega un trabajo cron con ‘0 2 * * * /usr/bin/apt-get update && /usr/bin/unattended-upgrade -d’.
Es especialmente útil para servidores sin cabeza donde las actualizaciones manuales simplemente no son prácticas.
Algunas cosas a tener en cuenta:
- No reiniciará automáticamente tu sistema (puedes configurarlo en apt.conf.d/20auto-upgrades si es necesario), así que prueba todo en un entorno de staging primero para evitar interrupciones.
- Además, si quieres poner en lista negra paquetes específicos, necesitarás algo de scripting avanzado—no está integrado.
2.3 Verificar la Integridad del Kernel y de los Paquetes
Puedes usar ‘debsums -a’ o ‘rpm -Va’ para verificar cualquier archivo manipulado, asegurándote de que tu kernel y paquetes aún coincidan con los hashes oficiales después de una actualización.
Para lograr esto de manera segura, solo sigue estos pasos:
- Instala las herramientas de verificación: Si estás en un sistema basado en Debian, ejecuta ‘sudo apt update && sudo apt install debsums’. Para configuraciones basadas en RPM como CentOS, usa ‘sudo yum install rpm’ si no está ya instalado—tomará unos 2 minutos.
- Ejecuta la verificación de integridad: Ejecuta ‘sudo debsums -a’ o ‘sudo rpm -Va’ para escanear todos tus archivos; podría tomar 5-10 minutos dependiendo del tamaño de tu sistema.
- Revisa la salida en busca de problemas: Busca advertencias como ‘FAILED’ o ‘missing’—comienza con los archivos del kernel para detectar cualquier cambio sigiloso.
- Reinstala si algo está mal: Cuando detectes problemas, usa ‘sudo apt reinstall ‘ o ‘sudo yum reinstall ‘ para devolver todo a su estado original.
El proceso completo debería tomarte unos 10-20 minutos.
Y ten cuidado con estos errores comunes:
- olvidar usar sudo,
- omitir la salida detallada con la bandera ‘-c’,
- o no reiniciar después de arreglar cosas del kernel para asegurarte de que los cambios se apliquen.
3. Configurar Reglas de Firewall
Deberías configurar correctamente tu firewall porque es la primera línea de defensa de tu servidor. Usa reglas para controlar el tráfico que entra y sale, y asegúrate de bloquear cualquier acceso no autorizado.
3.1 Instalar y Habilitar UFW o iptables
En Ubuntu, querrás comenzar ejecutando ‘apt install ufw’ y luego ‘ufw enable’ para poner las cosas en marcha. Si estás usando iptables en su lugar, solo asegúrate de que esté activo y configurado para que persista después de los reinicios.
Una vez que lo hayas instalado, configuremos tu firewall con estos pasos sencillos—generalmente toma unos 15-30 minutos para hacerlo todo seguro.
- Primero, establece tus políticas predeterminadas: Ejecuta ‘ufw default deny incoming’ y ‘ufw default allow outgoing’ para bloquear cualquier tráfico entrante no deseado mientras permites que tu tráfico saliente fluya libremente. Para iptables, usa ‘iptables -P INPUT DROP’ y ‘iptables -P OUTPUT ACCEPT’. De esta manera, no estás dejando la puerta completamente abierta.
- Siguiente, permite esos servicios esenciales: Agrega ‘ufw allow ssh’ o ‘ufw allow 22/tcp’ para que no te quedes accidentalmente bloqueado. Con iptables, es ‘iptables -A INPUT -p tcp –dport 22 -j ACCEPT’. Un error muy común aquí es olvidar el acceso SSH, lo que puede dejarte varado remotamente—siempre pruébalo desde otra sesión de terminal para estar seguro.
- Enciende el registro para mantener un ojo en las cosas: Solo usa ‘ufw logging on’ para UFW, o agrega ‘iptables -A INPUT -j LOG’ si estás en iptables. Esto te ayuda a detectar cualquier amenaza potencial sin mucho esfuerzo.
- Finalmente, pruébalo todo: Recarga con ‘ufw reload’, luego intenta hacer ping a algún sitio externo o usa ‘telnet localhost 22’ para verificar la conectividad. Un gran no-no es saltar sin una copia de seguridad—guarda primero la configuración de iptables con ‘iptables-save> /etc/iptables.rules’ para poder revertir si es necesario.
3.2 Permitir solo puertos esenciales
Para configurar tu firewall de manera óptima, usa ‘ufw allow 22/tcp’, ‘ufw allow 80/tcp’ y ‘ufw allow 443/tcp’ para abrir los puertos SSH, HTTP y HTTPS mientras mantienes todo lo demás bloqueado. Cada uno de estos comandos abre los puertos clave que necesitas para un acceso seguro al servidor.
Comienza estableciendo una política de denegación predeterminada con ‘sudo ufw default deny incoming’ y ‘sudo ufw default allow outgoing’, luego habilita UFW usando ‘sudo ufw enable’. Todo este proceso debería tomarte menos de 5 minutos y funciona genial para servidores web básicos o alojamiento VPS.
- ‘ufw allow 22/tcp’ abre SSH para que puedas gestionar tu servidor de forma remota. Es perfecto para inicios de sesión de administración, pero limítalo solo a IPs confiables—prueba algo como ‘ufw allow from to any port 22’ para restringirlo. Es bastante directo, pero siempre usa autenticación basada en claves para evitar esos ataques de fuerza bruta.
- ‘ufw allow 80/tcp’ permite el tráfico HTTP no cifrado, lo cual es útil para probar tu sitio al principio, pero en producción, deberías redirigir todo a HTTPS usando la configuración de tu Apache o Nginx.
- ‘ufw allow 443/tcp’ pone HTTPS en marcha de forma segura—combínalo con certificados SSL gratuitos de Let’s Encrypt, especialmente para configuraciones de comercio electrónico.
Después de cualquier ajuste, solo ejecuta ‘ufw reload’ para aplicar los cambios. Ten en cuenta que UFW bloquea el tráfico IPv6 por defecto, por lo que necesitarás habilitarlo por separado si lo estás usando. Además, revisa los registros regularmente para cualquier intento denegado y así puedas ajustar tus reglas.
3.3 Bloquear Todo el Tráfico Entrante por Defecto
Sabes, para mantener las cosas seguras, configura ‘ufw default deny incoming’ para que bloquee todas esas conexiones entrantes no solicitadas, y solo permita el tráfico que has aprobado específicamente. Esto establece una base sólida para tu firewall de Ubuntu—una línea base de seguridad súper sencilla.
Te tomará solo 10-15 minutos hacerlo correctamente si sigues estos cuatro pasos.
- Primero, establece esa política de denegación predeterminada ejecutando ‘sudo ufw default deny incoming’ y ‘sudo ufw default allow outgoing’. De esa manera, estás bloqueando el tráfico entrante mientras aún permites que tu tráfico saliente fluya libremente.
- Segundo, recarga el firewall con ‘sudo ufw reload’ para que esos cambios se mantengan—no es necesario reiniciar todo el sistema.
- Tercero, verifica tus reglas escribiendo ‘sudo ufw status verbose’. Esto te mostrará las políticas activas y se asegurará de que nada sospechoso como puertos no intencionados esté abierto de par en par.
- Cuarto, mantén un ojo en los logs con ‘sudo tail -f /var/log/ufw.log’ para detectar cualquier intento bloqueado. Es un buen hábito revisarlos diariamente para que puedas detectar cualquier patrón temprano.
Oh, y ten cuidado con errores comunes, como olvidar permitir servicios esenciales como SSH (‘sudo ufw allow 22’) antes de habilitar todo—eso podría bloquearte completamente. Siempre prueba esto en un entorno seguro primero para evitar dolores de cabeza.
4. Endurecer la configuración de SSH
SSH es una forma bastante común en que los atacantes intentan irrumpir, por lo que debes endurecerlo usando claves y añadiendo restricciones; eso reducirá tu exposición a ataques de fuerza bruta y accesos no autorizados.
4.1 Editar la Configuración de SSHD para Autenticación Basada en Claves
Querrás generar un par de claves SSH usando ‘ssh-keygen’, luego copiar la clave pública a ‘~/.ssh/authorized_keys’ en el servidor remoto, y asegurarte de configurar PubkeyAuthentication a yes en el archivo sshd_config.
Para finalizar esta configuración para un acceso SSH seguro y sin contraseña, solo sigue estos pasos sencillos:
- Genera el par de claves: Abre tu terminal y ejecuta `ssh-keygen -t rsa -b 4096`. Presiona Enter para usar los valores predeterminados, o agrega una frase de contraseña si quieres esa capa extra de seguridad. Esto creará tu clave privada en ~/.ssh/id_rsa y la pública en ~/.ssh/id_rsa.pub.
- Copia la clave pública: La forma más fácil es usar `ssh-copy-id user@remote-host` para agregarla directamente al archivo ~/.ssh/authorized_keys del servidor remoto. Si eso no funciona para ti, solo usa cat en el archivo.pub y pega su contenido manualmente en authorized_keys en el servidor.
- Edita la config: Ve al servidor y abre /etc/ssh/sshd_config con algo como sudo nano. Busca PubkeyAuthentication yes y asegúrate de que no esté comentada. Por precaución, configura PermitRootLogin a no para mantener las cosas más seguras.
- Reinicia SSH: Ejecuta `sudo systemctl restart sshd` para aplicar todos esos cambios—o si estás en un sistema más antiguo, prueba `service ssh restart`.
Todo el proceso suele tomar unos 10-15 minutos.
Ten cuidado con errores comunes como equivocarte en los permisos de archivos (corrígelo con chmod 700 ~/.ssh y chmod 600 authorized_keys), errores tipográficos en el nombre de host, o olvidar reiniciar el servicio, lo que significa que tus cambios no entrarán en vigor.
4.2 Desactivar Autenticación por Contraseña
En tu archivo sshd_config, cambia PasswordAuthentication a ‘no’ y reinicia el servicio para bloquear las cosas solo a inicios de sesión con clave—de esa manera, te deshaces de esos inicios de sesión con contraseña riesgosos para siempre.
A continuación, genera un par de claves SSH para esa autenticación segura. Solo ejecuta `ssh-keygen -t ed25519 -C “[email protected]”` para crear una clave Ed25519 sólida; es rápido, menos de un minuto, y no demasiado complejo, perfecto para tu servidor personal o configuración de desarrollo remoto.
Agrega una frase de contraseña para algo de seguridad extra.
Luego, copia tu clave pública al servidor con `ssh-copy-id user@hostname`—súper directo.
Si estás lidiando con cosas como despliegues automatizados o dando acceso al equipo, asegúrate de que PubkeyAuthentication esté configurado en ‘yes’ en tu sshd_config.
Ten en cuenta que deberías respaldar esas claves privadas en algún lugar seguro; el inconveniente es que si las pierdes sin una frase de contraseña, tendrás que generar nuevas desde cero.
4.3 Implementar Fail2Ban para la Protección contra Ataques de Fuerza Bruta
Para poner Fail2Ban en marcha, comienza con ‘apt install fail2ban’, configura jails para SSH y activa el servicio para que bloquee IPs después de solo 5 intentos de inicio de sesión fallidos. Si quieres asegurar tu servidor de la manera correcta, aquí tienes una guía numerada directa para seguir—generalmente toma unos 20-30 minutos.
- Instala Fail2Ban: En un sistema basado en Debian, ejecuta ‘sudo apt update && sudo apt install fail2ban’. Verifica que esté listo con ‘fail2ban-client –version’.
- Configura la jail de SSH: Abre ‘/etc/fail2ban/jail.local’ usando nano o vim. Agrega una sección [sshd] como esta: enabled = true, bantime = 3600, findtime = 600, maxretry = 5. Guárdalo y sal.
- Actívalo y arráncalo: Usa ‘sudo systemctl enable fail2ban’ y ‘sudo systemctl start fail2ban’. Mira el estado con ‘sudo systemctl status fail2ban’ para asegurarte de que todo funcione bien.
- Prueba los bloqueos: Desde otra máquina, intenta 6 o más inicios de sesión SSH fallidos. Verifica si funciona ejecutando ‘sudo fail2ban-client status sshd’.
Cuidado con estos errores comunes: No dejes que los errores de sintaxis en el archivo de configuración te detengan—pueden impedir que el servicio se inicie por completo—o configures maxretry demasiado bajo, lo que podría bloquear usuarios legítimos demasiado rápido. Mantén un ojo en tus logs en /var/log/fail2ban.log para detectar cualquier problema.
5. Administrar Usuarios y Permisos
Asegúrate de manejar correctamente la gestión de usuarios y permisos para mantener el daño por brechas al mínimo. Concéntrate en recortar privilegios y eliminar esas cuentas no utilizadas.
5.1 Eliminar usuarios predeterminados innecesarios
Deberías identificar y eliminar esos usuarios no esenciales, como ‘games’ o ‘lp’, ejecutando ‘userdel -r username’ – esto ayuda a reducir la superficie de ataque de tu sistema y lo hace más seguro.
Aquí tienes un conjunto sencillo de pasos para manejar la eliminación de manera segura:
- Para empezar, lista todos tus usuarios escribiendo getent passwd en la terminal. Esto te permite seleccionar los que no están contribuyendo, como ‘games’ o ‘lp’ – solo ignora los que tienen trabajos reales.
- Ahora, elimina el usuario con sudo userdel -r username. Esa bandera -r es clave porque elimina el directorio home y el spool de correo, para que no queden lugares para que los hackers se escondan.
- Verifica doble que se ha ido ejecutando getent passwd de nuevo y mirando en /etc/passwd para asegurarte de que el usuario ha desaparecido.
- Finalmente, escanea por cualquier servicio en ejecución con systemctl list-units –type=service para ver si algo dependía de ese usuario – si es así, reinicia esos servicios para mantener todo funcionando.
Todo el proceso usualmente te toma 10-15 minutos por usuario.
Evita errores típicos, como:
- omitir la -r (que deja archivos atrás para problemas),
- eliminar un usuario de sistema vital por error,
- pasar por alto la verificación de servicios, lo que podría arrojar tu configuración al caos.
5.2 Establecer Permisos Estrictos de Archivos (p. ej., 644 para Archivos, 755 para Directorios)
Puedes aplicar ‘chmod 644 filename’ a archivos y ‘chmod 755 directory’ a directorios, lo que otorga a todos acceso de lectura sin conceder permisos de escritura donde no los necesitas.
Esta configuración significa que el propietario obtiene lectura/escritura/ejecución (eso es el 7), mientras que el grupo y otros obtienen lectura/ejecución en directorios (el 55) o solo lectura en archivos (el 44).
Es una forma inteligente de evitar cambios no autorizados en configuraciones compartidas como servidores web.
Realizarlo es sencillo: solo entra en tu terminal, navega al directorio y ejecuta el comando.
Es súper amigable para principiantes y toma solo segundos por archivo.
Lo encontrarás útil para cosas como bloquear archivos de configuración—por ejemplo, ‘chmod 600 sensitive.conf’ para acceso solo del propietario—o hacer scripts ejecutables sin riesgos de edición, como ‘chmod 755 script.sh’.
Para operaciones en masa, prueba ‘find. -type f -exec chmod 644 {} \; ‘ para afectar recursivamente todos los archivos.
Ten en cuenta que siempre verifica la propiedad primero con ‘ls -l’, ya que chmod no resolverá problemas de usuario o grupo.
Además, podría no funcionar en sistemas de archivos montados sin privilegios de sudo.
5.3 Usar grupos para el control de acceso
Puedes crear un grupo con ‘groupadd webgroup’, agregar usuarios usando ‘usermod -aG webgroup username’, y establecer la propiedad de grupo en archivos para ese extra de control.
Para configurar esto de manera fluida para el intercambio de archivos seguro en Linux, solo sigue estos pasos sencillos:
- Crear el grupo: Ejecuta sudo groupadd webgroup para crear tu nuevo grupo. Solo toma unos segundos, pero necesitarás privilegios de administrador.
- Agregar usuarios: Para cada persona, ejecuta sudo usermod -aG webgroup username—como sudo usermod -aG webgroup alice. La bandera -a es clave porque agrega a sus grupos existentes sin sobrescribirlos; omítela, y accidentalmente los expulsarás de todo lo demás, lo cual es una trampa total para novatos.
- Establecer propiedad: Cambia la propiedad de grupo con sudo chgrp webgroup /path/to/directory o sudo chown:webgroup file.txt. ¿Quieres aplicarlo a todo dentro de una carpeta? Agrega la bandera -R para la magia recursiva.
- Probar acceso: Dile a los usuarios que cierren sesión y vuelvan a iniciar sesión para que el grupo surta efecto, luego verifícalo con groups username o id username. Prueba leer o escribir en archivos compartidos para confirmar que todos están listos.
Todo este proceso suele completarse en 10-15 minutos. Oh, y tómate tu tiempo en el paso 4—saltarte la actualización de cierre de sesión/inicio de sesión es una forma segura de encontrar bloqueos de acceso.
6. Instalar y Configurar Herramientas de Seguridad
Cuando despliegas herramientas de seguridad, básicamente estás apilando capas extras de protección para tu configuración.
Opta por las que monitorean amenazas automáticamente, escanean vulnerabilidades y aplican tus políticas—luego configúralas correctamente para sacar el máximo provecho.
6.1 Implementar Fail2Ban y Logwatch
Una vez que hayas instalado Fail2Ban, querrás configurarlo para múltiples servicios y configurar Logwatch para que te envíe resúmenes diarios por correo electrónico de los registros de tu sistema—de esa manera, podrás detectar amenazas potenciales temprano. Para que todo funcione sin problemas, solo sigue estos cuatro pasos; debería tomarte solo unos 30-45 minutos en total.
- Configura tus cárceles de Fail2Ban: Dirígete a /etc/fail2ban/jail.local y ajústalo para habilitar cosas como SSH (prueba configurando bantime a 3600 segundos y maxretry a 5) y Apache. Si estás ejecutando un servidor de correo, agrega algunos filtros personalizados para eso también.
- Configura esos informes de Logwatch: Edita /etc/logwatch/conf/overrides.conf para enfocarte en registros de servicios específicos—como solo los eventos de seguridad—y aumenta el nivel de detalle a medio para que sea informativo sin abrumarte.
- Inicia y habilita los servicios: Lánzalos con ‘systemctl enable –now fail2ban’ y ‘systemctl enable –now logwatch’ para que se activen automáticamente al inicio.
- Activa las alertas por correo electrónico: En el archivo /etc/cron.daily/00logwatch de Logwatch, ingresa los detalles de tu servidor SMTP y la dirección de correo electrónico donde quieres que se envíen los informes. Luego, pruébalo ejecutándolo manualmente para asegurarte de que todo funcione.
Un par de errores comunes a tener en cuenta:
- No olvides reiniciar los servicios después de tus cambios—como con ‘systemctl restart fail2ban’—o podrías terminar bloqueado.
- Y definitivamente agrega tu propia IP a la lista blanca de Fail2Ban para que no te bloquees accidentalmente.
6.2 Configurar ClamAV para el Escaneo de Malware
Puedes instalar ClamAV fácilmente ejecutando ‘apt install clamav clamav-daemon’ en tu terminal, luego actualiza sus definiciones de virus con ‘freshclam’, y configura escaneos regulares usando cron para mantener todo verificado automáticamente.
ClamAV es esta herramienta antivirus de código abierto útil diseñada para servidores Linux—detecta malware en archivos y correos electrónicos sin mucho alboroto.
Configurarlo es bastante sencillo y no debería tomarte más de 10 minutos para lo básico, pero si quieres que el daemon funcione sin problemas, necesitarás ajustar el archivo de configuración en /etc/clamav/clamd.conf, como aumentar el MaxFileSize a 50M para un mejor rendimiento.
Es genial para cosas como escanear subidas en tu servidor web o conectarlo con Postfix para asegurar tus correos electrónicos.
Para escaneos manos libres, solo agrega un trabajo cron como este: ‘0 2 * * * /usr/bin/clamscan -r /home –bell -i’ para ejecutarlo todos los días a las 2 AM, y registrará todo en /var/log/clamav/scan.log para que puedas revisar los resultados.
Ten en cuenta que puede consumir algo de CPU durante los escaneos, así que intenta programarlos durante horas de bajo tráfico para evitar ralentizar las cosas.
Además, ten cuidado con los falsos positivos ocasionales, y nota que no hace monitoreo en tiempo real de fábrica—puedes necesitar extras como el escáner de acceso de ClamAV para eso.
6.3 Habilitar AppArmor o SELinux
Si estás en Ubuntu, puedes habilitar los perfiles de AppArmor ejecutando ‘aa-enforce /etc/apparmor.d/*’.
Para SELinux en CentOS, solo configúralo en modo enforcing en tu archivo /etc/selinux/config.
Para poner estos módulos de seguridad completamente en funcionamiento, aquí tienes una guía paso a paso sencilla:
- En primer lugar, instala los paquetes necesarios si no están ya presentes.En Ubuntu, obténlos con ‘sudo apt install apparmor-utils’.En CentOS, usa ‘sudo yum install selinux-policy-targeted’.Esto debería tomar solo unos 5 minutos.
- Siguiente, activa la aplicación usando esos comandos que mencioné antes, y luego reinicia el servicio—prueba ‘sudo systemctl restart apparmor’ para Ubuntu o ‘sudo setenforce 1’ para CentOS.
- Carga los perfiles con ‘sudo apparmor_parser -r /etc/apparmor.d/*’ en Ubuntu, o ‘sudo semodule -i custom_policy.pp’ si estás lidiando con reglas SELinux personalizadas en CentOS.Verifica doblemente que todo esté bien ejecutando ‘aa-status’ o ‘sestatus’.
- Mantén un ojo en esos logs de auditoría en /var/log/apparmor/audit.log para AppArmor o /var/log/audit/audit.log para SELinux.Revísalos regularmente en busca de cualquier denegaciones, y ajusta tus políticas para que no las bloquees demasiado estrictamente.
En resumen, puedes completar esto en 30-45 minutos.
Solo ten cuidado con errores comunes como omitir un reinicio, lo que podría dejar tus políticas inactivas, o pasar por alto las auditorías de logs, permitiendo que violaciones sigilosas pasen desapercibidas.
7. Implementar monitoreo y registro básico
Puedes detectar problemas temprano con un monitoreo efectivo: solo configura el registro para mantener el control de las actividades y alertas para señalar anomalías en tiempo real. Comienza con el registro para capturar cosas como acciones de usuarios o errores.
En Python, utiliza el módulo de registro incorporado; es perfecto para el registro detallado de eventos y súper fácil de configurar con solo unas pocas líneas: import logging; logging.basicConfig(level=logging.INFO); logging.info(‘User logged in’). Es ideal para depurar aplicaciones web o servidores.
Para las alertas, integra notificaciones por correo electrónico usando smtplib. Detecta anomalías como un alto uso de CPU con umbrales, luego envía esas alertas: te tomará unos 30-60 minutos configurarlo, pero asegúrate de manejar tus credenciales de forma segura.
Esto resulta útil para cosas como picos de tráfico en el comercio electrónico o brechas de seguridad.
Ten en cuenta las limitaciones: demasiados registros pueden consumir tu almacenamiento, así que rota los archivos semanalmente y no registres datos sensibles que podrían exponerte.
Preguntas Frecuentes
¿Cuáles son los primeros pasos después de contratar un VPS?
Los primeros pasos después de contratar un VPS incluyen acceder a tu servidor vía SSH, actualizar el sistema operativo con los últimos parches y cambiar la contraseña predeterminada de root por una fuerte y única para prevenir accesos no autorizados.
¿Por qué es crucial seguir esta guía para nuevos usuarios?
Porque un VPS recién contratado es vulnerable a ataques debido a las configuraciones predeterminadas; asegurarlo temprano protege contra amenazas comunes como ataques de fuerza bruta y garantiza la integridad de los datos desde el principio.
¿Cómo actualizo el software de mi VPS?
Inicia sesión como root vía SSH y ejecuta comandos como ‘apt update && apt upgrade’ para sistemas basados en Debian o ‘yum update’ para CentOS, luego reinicia si es necesario para aplicar actualizaciones del kernel.
¿Qué configuración de firewall se recomienda?
La configuración de firewall recomendada implica instalar y configurar UFW (Uncomplicated Firewall) en Ubuntu o firewalld en CentOS, permitiendo solo puertos esenciales como el 22 para SSH y 80/443 para tráfico web mientras se deniegan todos los demás por defecto.
¿Cómo asegurar el acceso SSH?
Para asegurar el acceso SSH, deshabilita el inicio de sesión de root, usa autenticación basada en claves en lugar de contraseñas y edita el archivo de configuración de SSH (/etc/ssh/sshd_config) para cambiar el puerto predeterminado del 22 a un número más alto, reduciendo los riesgos de ataques automatizados.
¿Por qué incluir copias de seguridad?
Es esencial porque, incluso con una seguridad fuerte, pueden ocurrir incidentes; configura copias de seguridad automatizadas en una ubicación externa usando herramientas como rsync o almacenamiento en la nube para garantizar una recuperación rápida y minimizar la pérdida de datos.
¡EMPRENDE CON NEUBOX!
Desde 2004 hemos ayudado a más de 200,000 clientes a alojar sus ideas en internet con un Hosting y/o Dominio de NEUBOX.
Visita nuestro sitio y anímate a emprender tu negocio en línea con ayuda de NEUBOX.
Síguenos en redes sociales para que te enteres de todas nuestras promociones:
Facebook @neubox
Instagram @neubox
Twitter @neubox
Linkedin @neubox
Youtube @neubox
TikTok @neubox



