Asegurar tu servidor web: Pasos cruciales para una protección integral
Los ciberataques son cada vez más sofisticados, por lo que es fundamental tomar medidas para proteger la integridad de los datos y mantener la disponibilidad de los servicios en línea.
El primer paso para asegurar tu servidor web es realizar una configuración inicial segura. Esto incluye implementar un firewall que actúe como una primera línea de defensa, deshabilitar los servicios innecesarios que no se utilizan y establecer contraseñas robustas y únicas para todas las cuentas de usuario.
La protección del software es otro aspecto crucial de la seguridad del servidor web. Es fundamental mantener el software actualizado con las últimas correcciones de seguridad, instalar un antivirus y un anti-malware para detectar y eliminar software malicioso, y habilitar solo los módulos de PHP y Apache que sean necesarios.
La gestión de usuarios y permisos también juega un papel vital en la seguridad del servidor web. Se recomienda crear cuentas de usuario individuales para cada usuario, asignar permisos mínimos que sean necesarios para realizar las tareas, y utilizar la autenticación de dos factores para agregar una capa adicional de seguridad.
Por último, es importante implementar medidas de monitoreo y realizar copias de seguridad regulares. Monitorizar los registros del servidor puede ayudar a detectar actividad inusual, mientras que realizar copias de seguridad de los datos importantes permite restaurarlos en caso de un ataque o un fallo del sistema.
Asegurar tu servidor web es un proceso continuo que requiere atención constante. Implementando las medidas de seguridad adecuadas, manteniendo una vigilancia constante y adaptando las medidas a las necesidades específicas de tu servidor y tu entorno, podrás proteger tu servidor y tus datos de forma efectiva.
Instalar un firewall y/o rastreador de fallos de inicio de sesión
Es fundamental ejecutar un firewall en tu servidor para protegerlo contra intrusiones no deseadas. Un firewall actúa como una barrera que permite solo el tráfico legítimo en los puertos que utilizas, como HTTP, SMTP, IMAP/POP3. Esto te ayuda a prevenir ataques de fuerza bruta, escaneo de puertos y otras amenazas.
Además del firewall, es recomendable instalar un rastreador de fallos de inicio de sesión. Este tipo de software registra los intentos de acceso a tu servidor y bloquea las direcciones IP que muestren un comportamiento sospechoso. De esta forma, puedes evitar que bots y usuarios malintencionados accedan a tu sistema.
Existen diversas opciones de software para firewalls y rastreadores de fallos de inicio de sesión. Algunas opciones populares incluyen:
- Firewalls:
- ConfigServer Security & Firewall (gratuito para uso personal)
- UFW (gratuito)
- iptables (gratuito)
- Rastreadores de fallos de inicio de sesión:
- Fail2ban (gratuito)
- DenyHosts (gratuito)
- rkhunter (gratuito)
Desactivar la función «local infile» en MySQL
La función «local infile
» de MySQL permite cargar datos desde un archivo local en el servidor. Si bien esta función puede ser útil en algunos casos, también representa un riesgo de seguridad. Un atacante podría aprovechar esta función para leer archivos confidenciales o ejecutar código malicioso en el servidor.
Por lo tanto, se recomienda deshabilitar la función «local infile
« para proteger tu servidor. Esto es especialmente importante si utilizas aplicaciones PHP que podrían ser vulnerables a ataques de inyección SQL.
Para deshabilitar la función «local infile
«, debes editar el archivo de configuración de MySQL, /etc/my.cnf
. Busca la sección [mysqld]
y agrega la siguiente línea:
local-infile = 0
Guarda el archivo y reinicia el servicio MySQL. El comando para reiniciar MySQL puede variar según la distribución de Linux que estés utilizando. En Ubuntu y Debian, puedes usar el siguiente comando:
sudo service mysql restart
Alternativas a «local infile
«:
Si necesitas cargar datos en MySQL, puedes utilizar otras alternativas a la función «local infile», como:
- Cargar datos desde un archivo remoto: Puedes utilizar la función LOAD DATA INFILE con la opción URL para cargar datos desde un archivo remoto.
- Importar datos usando una herramienta de línea de comandos: Puedes usar herramientas como mysqlimport o mysqlpump para importar datos desde un archivo CSV o SQL.
Recuerda que siempre es importante mantener tu servidor actualizado con las últimas correcciones de seguridad para protegerte de vulnerabilidades conocidas.
Seguridad de SSH
- Deshabilitar los inicios de sesión SSH como usuario root:
Permitir inicios de sesión SSH como root es un riesgo de seguridad importante. Un atacante que obtenga acceso a la cuenta root podría tener control total sobre el servidor. Para evitar esto, se recomienda deshabilitar los inicios de sesión SSH como root y usar cuentas de usuario con privilegios específicos para las tareas que se necesitan realizar.
- Permitir solo inicios de sesión de clave pública:
La autenticación por contraseña es vulnerable a ataques de fuerza bruta. En su lugar, se recomienda usar claves públicas para la autenticación SSH. Esto proporciona un método de acceso más seguro y evita que los atacantes adivinen las contraseñas.
- Cambiar el puerto SSH:
El puerto SSH por defecto (22) es conocido y escaneado por bots y atacantes. Cambiar el puerto a un valor no estándar dificulta los ataques automatizados y aumenta la seguridad del servidor.
- Permitir solo el protocolo SSH 2:
El protocolo SSH 1 es obsoleto e inseguro. Se recomienda deshabilitarlo y permitir solo el protocolo SSH 2, que ofrece mayor seguridad y mejores características.
Para realizar estos cambios:
- Edita el archivo de configuración de SSH: /etc/ssh/sshd_config.
- Busca las opciones relacionadas con cada medida y modifica los valores según sea necesario.
- Guarda el archivo y reinicia el servicio SSH:
sudo service ssh restart
Recursos adicionales
- Securing SSH – CentOS Wiki: [se quitó una URL no válida]
- Securing SSHD – CentOS Help: [se quitó una URL no válida]
- Guía de seguridad de SSH: [se quitó una URL no válida]
Compatibilidad
Ten en cuenta que cambiar el puerto SSH o deshabilitar la autenticación por contraseña puede afectar la compatibilidad con algunos clientes SSH antiguos. Asegúrate de que tus clientes SSH sean compatibles con las configuraciones que elijas.
Seguridad de Apache
- Usar Apache 2.2 o posterior:
Las versiones anteriores de Apache son vulnerables a una serie de vulnerabilidades conocidas. Se recomienda actualizar a Apache 2.2 o una versión posterior para obtener las últimas correcciones de seguridad y mejoras de rendimiento.
- Ejecutar PHP como suPHP:
La configuración predeterminada de PHP puede permitir que un script malicioso afecte a las cuentas de otros usuarios en el servidor. Ejecutar PHP como suPHP aísla cada script en su propio proceso, lo que limita el daño potencial en caso de un ataque.
- Configurar la Firma del Servidor como «Solo Producto»:
Revelar la versión específica de Apache en mensajes de error o encabezados HTTP puede proporcionar información útil a los atacantes. Configurar la Firma del Servidor como «Solo Producto» oculta esta información y reduce el riesgo de ataques.
- Usar solo los módulos de Apache necesarios:
Cada módulo de Apache que se carga aumenta la superficie de ataque del servidor. Deshabilitar o eliminar los módulos que no se necesitan reduce el riesgo de vulnerabilidades y mejora el rendimiento.
Para realizar estos cambios:
Consulta la documentación de Apache para obtener instrucciones específicas sobre la actualización a la última versión.
Configura suPHP en tu panel de control de alojamiento o mediante la edición del archivo de configuración de PHP.
Edita el archivo de configuración de Apache (/etc/apache2/apache2.conf
) y busca la directiva ServerSignature
. Cambia el valor a ProductOnly
.
Revisa la lista de módulos de Apache instalados y deshabilita o elimina los que no sean necesarios.
Compatibilidad
Ten en cuenta que actualizar a una versión posterior de Apache puede afectar la compatibilidad con algunos scripts o módulos antiguos. Asegúrate de que tu sitio web o aplicaciones sean compatibles con la versión que elijas.
Seguridad WHM/cPanel
- Deshabilitar el «Acceso al Compilador»:
El acceso al compilador puede permitir a un atacante ejecutar código arbitrario en el servidor. Deshabilitar esta función reduce el riesgo de ataques y no debería afectar el funcionamiento normal de la mayoría de los sitios web.
- Habilitar la «Protección contra Fork Bomb en Shell»:
Un «fork bomb» es un ataque que puede consumir todos los recursos del servidor. Habilitar la protección contra fork bombs ayuda a prevenir este tipo de ataques.
- Configurar la «Fuerza de Contraseña» a un valor de al menos 50:
Las contraseñas débiles son un blanco fácil para los atacantes. Configurar una fuerza de contraseña mínima de 50 obliga a los usuarios a crear contraseñas más seguras y difíciles de adivinar.
Para realizar estos cambios:
- Accede a WHM y ve al «Centro de Seguridad».
- Busca la opción «Acceso al Compilador» y desactívala.
- Busca la opción «Protección contra Fork Bomb en Shell» y actívala.
- Busca la opción «Fuerza de Contraseña» y configúrala a un valor de al menos 50.
Contraseñas
- No uses contraseñas simples:
- Las contraseñas simples, como palabras del diccionario o nombres de familiares, son fáciles de adivinar.
- Usa contraseñas que sean una combinación de letras mayúsculas y minúsculas, números y símbolos.
- Usa diferentes contraseñas para cada servicio:
- No uses la misma contraseña para tu correo electrónico, WHM/cPanel, redes sociales y otros servicios.
- Si un atacante descubre una de tus contraseñas, no podrá acceder a todas tus cuentas.
- Cambia tus contraseñas regularmente:
Cambia tus contraseñas cada dos semanas o mensualmente para reducir el riesgo de que sean comprometidas.
- Usa un administrador de contraseñas:
Un administrador de contraseñas te puede ayudar a generar y almacenar contraseñas seguras para todos tus servicios.
Seguridad del software PHP
- Mantén tu software actualizado:
Las versiones obsoletas de software PHP son vulnerables a ataques conocidos. Es importante actualizar a la última versión tan pronto como esté disponible para parchear vulnerabilidades y mejorar la seguridad.
- Sigue las recomendaciones de seguridad:
Existen diversas recomendaciones de seguridad para endurecer tu instalación de software PHP. Estas recomendaciones pueden incluir:
- Deshabilitar funciones no utilizadas.
- Limitar el acceso a archivos y directorios sensibles.
- Usar contraseñas seguras.
- Implementar un firewall de aplicaciones web (WAF).
- Configura permisos de archivo de forma segura:
Los permisos de archivo incorrectos pueden permitir a los atacantes acceder a archivos sensibles o modificar el contenido de tu sitio web. Los permisos recomendados son:
- Directorios: 755 o 750
- Archivos: 644 o 640
- Archivos de configuración (wp-config.php, configuration.php, config.php): 600 o más restrictivos
- No otorgues permisos 777 a directorios:
Otorgar permisos 777 a directorios es una práctica insegura que puede permitir a los atacantes modificar cualquier archivo dentro del directorio.
Escaneo de Antivirus/Malware
Existen numerosas herramientas disponibles para escanear y monitorear tu servidor y cuentas en busca de contenido malicioso. Algunas de las opciones más populares son:
- Es un antivirus de código abierto y gratuito.
- Detecta virus, troyanos, malware y otras amenazas.
- Ofrece diferentes métodos de escaneo, incluyendo escaneo manual, automático y programado.
- Se puede integrar con otros programas y scripts.
- Es una solución antivirus comercial con una versión gratuita para uso personal.
- Ofrece una interfaz gráfica de usuario fácil de usar.
- Detecta y elimina virus, malware y otras amenazas en tiempo real.
- Incluye protección contra phishing y ransomware.
- Es una herramienta gratuita que busca rootkits y otras vulnerabilidades en el sistema.
- Ofrece escaneos rápidos y completos.
- Puede ser configurado para enviar notificaciones por correo electrónico en caso de encontrar amenazas.
- Es otra herramienta gratuita para buscar rootkits y otras amenazas.
- Ofrece diferentes métodos de escaneo, incluyendo escaneo manual, automático y programado.
- Puede ser utilizada desde la línea de comandos o desde una interfaz gráfica de usuario.
Otras herramientas antivirus/antimalware:
Recomendaciones
- Es importante elegir la herramienta antivirus/antimalware más adecuada para tus necesidades.
- Mantén tu software antivirus/antimalware actualizado con las últimas definiciones de virus.
- Realiza escaneos regulares de tu servidor y cuentas.
Ten cuidado al abrir archivos adjuntos y enlaces de correos electrónicos desconocidos.
Instala un firewall para proteger tu servidor de intrusiones no autorizadas.
Nota
Es importante recordar que ninguna herramienta antivirus/antimalware es 100% efectiva. Se recomienda combinar el uso de estas herramientas con otras prácticas de seguridad para proteger tu servidor y tus datos.
Seguridad del servidor: resumen y recomendaciones
Copias de seguridad
- Realiza copias de seguridad con frecuencia: Es crucial proteger tus datos y tu sitio web realizando copias de seguridad regulares. Tu proveedor de alojamiento web no es responsable de las copias de seguridad a menos que se especifique en tu plan o pagues por el servicio.
- Utiliza las funciones de copia de seguridad estándar de cPanel: Puedes descargar las copias de seguridad y almacenarlas en tu computadora o estación de trabajo local.
- Recomendación: Haz una copia de seguridad ahora mismo. No lo pospongas.
Prevención del SPAM
- Protege tu formulario de contacto: Asegúrate de que no sea vulnerable a bots. Puedes usar un captcha para aumentar la seguridad.
- Limita el envío de correos electrónicos: Establece un límite de envío de correos electrónicos por hora por cuenta en WHM/Tweak Settings. 500 debería ser suficiente para la mayoría de las cuentas.
- Utiliza contraseñas seguras: Protege las cuentas de correo electrónico con contraseñas robustas y difíciles de adivinar.
- Monitoriza tus estadísticas de correo electrónico: Revisa de forma regular quién está enviando correos y en qué volumen para detectar posibles actividades sospechosas.
Servicios innecesarios
Deshabilita servicios no utilizados: Algunas instalaciones de Linux incluyen servicios que rara vez se usan en entornos de alojamiento web y pueden representar riesgos de seguridad. Algunos ejemplos son cups, xfs, bluetooth, nfs, rpcidmapd, etc. Detén y deshabilita estos servicios si no los necesitas.
Recomendaciones adicionales
- Mantén tu software actualizado: Instala las últimas actualizaciones de seguridad para tu sistema operativo, software y aplicaciones.
- Utiliza un firewall: Un firewall puede ayudarte a proteger tu servidor de intrusiones no autorizadas.
- Limita el acceso SSH: Restringe el acceso SSH a usuarios específicos y utiliza claves públicas para la autenticación.
- Monitorea tu servidor: Utiliza herramientas de monitoreo para detectar actividad inusual o ataques en tiempo real.
- Realiza pruebas de penetración: Realiza pruebas de penetración regulares para identificar y corregir vulnerabilidades en tu servidor.
- Mantente informado: Sigue las últimas noticias y tendencias en seguridad informática para estar al tanto de nuevas amenazas y soluciones.
Recuerda
La seguridad del servidor es un proceso continuo que requiere atención constante. Implementar las medidas de seguridad adecuadas y mantener una vigilancia constante te ayudará a proteger tu servidor y tus datos.