Lista de verificación de 14 pasos de las mejores prácticas de seguridad de Apache (libro electrónico en PDF incluido)

Publicado: 2017-11-22

ferrocarrilfx / stock.adobe.com

Apache sigue siendo actualmente el software de servidor web líder en el mundo con una cuota de mercado del 45,8%. Eso termina siendo alrededor de 80 millones de sitios web cuyos servidores web funcionan con Apache. Bastante impresionante, ¿verdad?

Apache es un software de servidor web de código abierto que existe desde 1995, por lo que por sí solo dice mucho sobre su confiabilidad y longevidad. Luego están los sitios web de alto perfil que se ejecutan en servidores Apache: Apple, Adobe y Paypal son sólo algunas de las principales marcas que confían sus sitios web a Apache.

Por supuesto, eso no hace que Apache sea 100% seguro ya que ningún software estará 100% a salvo de los piratas informáticos, especialmente cuando se trata de una plataforma tan conocida y confiable (muy parecida a WordPress). Pero si está buscando un libro electrónico, un módulo, una guía, un tutorial, un marco o una lista de verificación de seguridad del servidor web en formato PDF sobre seguridad de Apache, ha venido al lugar correcto.

Si desea reforzar su seguridad de Apache o tiene algún problema de seguridad de Apache o intenta parchear una o dos vulnerabilidades, la siguiente lista de verificación le proporcionará 14 mejores prácticas de seguridad para agregar al plan de seguridad de su sitio web.

Nuestro equipo en WP Buffs ayuda a los propietarios de sitios web, agencias asociadas y socios autónomos a implementar las mejores prácticas de seguridad de Apache. Ya sea que necesite que administremos 1 sitio web o admitamos 1000 sitios de clientes, lo respaldamos.

La lista de verificación definitiva de mejores prácticas de seguridad de Apache

Para aquellos de ustedes que realmente desean fortalecer su sitio web de WordPress, es esencial proteger Apache como lo haría con cualquier otro software que se conecte y impulse su sitio web. No hacerlo puede incluso afectar la velocidad de su sitio. Entonces, así es como lo harás:

1. Actualizar Apache

¿Sabes que WordPress y todos los complementos y temas que hayas instalado deben actualizarse periódicamente? También lo hace su servidor web.

Si le preocupa que su sitio no se esté ejecutando en la versión más actual de Apache, puede verificarlo con una línea de comando httpd -v. Si la versión generada no coincide con la actual de Apache, puede actualizarla con lo siguiente:

# yum update httpd
# apt-get install [add Apache version here]c

2. Active los registros

Si está trabajando con un proveedor de alojamiento administrado de WordPress, él se encargará de monitorear su servidor y WordPress en busca de vulnerabilidades y otras señales de advertencia. Dicho esto, también debes vigilar el tráfico de tu servidor.

Con Apache, puede obtener acceso a este registro de actividad actualizando su módulo mod_log_config. Básicamente, le dirá qué hacen los usuarios cada vez que tocan su servidor.

3. Obtenga un certificado SSL

Debido a que su servidor web maneja todas las solicitudes del navegador/servidor a su sitio web, es importante protegerlo con un certificado SSL. La buena noticia es que ahora puedes obtener un certificado SSL gratis. Esto es más importante ahora que nunca, por lo que si no tiene la capacidad técnica para instalarlo usted mismo, cualquier proveedor de alojamiento de calidad podrá hacerlo por usted.

4. Agregue un cortafuegos

Además de la protección adicional del cifrado SSL, su servidor web debe estar reforzado con un firewall. Para Apache, esto significa activar ModSecurity.

Para instalarlo en tu servidor, puedes ejecutar lo siguiente:

# yum install mod_security
# /etc/init.d/httpd restart

Una vez que el firewall esté activo, evitará que una serie de actividades maliciosas lleguen a su servidor, como inyección SQL, secuestro de sesión y secuencias de comandos entre sitios.

5. Instale mod_evasive

Mod_evasive es el módulo que protegerá su servidor Apache de fuerza bruta y ataques DDoS, así que asegúrese de que también esté habilitado. Incluirá en una lista negra los intentos de inicio de sesión simultáneos y fallidos, así como también monitoreará las direcciones IP maliciosas.

6. Establecer límites HTTP

Los ataques de denegación de servicio distribuido (DDoS) son bastante sencillos de bloquear si sabes qué tipo de acciones debes observar. Dado que los DDoS tienden a ocurrir al atacar repetidamente a su servidor con grandes solicitudes, su objetivo debe ser establecer límites que eviten que esto suceda.

Estos son algunos de los límites que querrás establecer:

  • Mantener vivo = activado
  • Mantener con vida el tiempo de espera
  • Cuerpo de solicitud de límite
  • Limitar campos de solicitud
  • Limitar tamaño del campo de solicitud
  • Línea de solicitud de límite
  • LimitXMLRequestBody
  • Clientes maximos
  • Solicitudes MaxKeepAlive
  • MaxRequestTrabajadores
  • SolicitudReadTimeout
  • Se acabó el tiempo

7. Eliminar módulos no utilizados

Al dejar módulos sin usar, sin mantenimiento o caducados en su servidor Apache, está dejando su sitio abierto a los piratas informáticos a través de un punto de entrada que ni siquiera necesita estar allí.

Lo primero que debes hacer es averiguar qué módulos están realmente activos. Puede hacer esto usando un comando LoadModule. Una vez que haya examinado la lista e identificado qué módulos no necesita, simplemente agregue el símbolo "#" antes de cada módulo que desee desactivar y luego reinicie.

8. Cambiar usuario y grupo predeterminados

La configuración predeterminada y los usuarios que se dejan en cualquier software, en general, son una mala práctica de seguridad. La razón de esto es simple: si está utilizando el nombre de grupo o usuario predeterminado de Apache, puede apostar que los piratas informáticos también saben cuáles son esos nombres predeterminados.

En lugar de dejar los valores predeterminados, debe crear una nueva cuenta sin privilegios para ejecutar sus procesos de Apache. Usando los comandos # groupadd y # useradd, puedes configurar las nuevas entidades. Sólo recuerde actualizar su httpd.conf con los nuevos nombres de usuario y grupo que ha creado.

9. Bloquear el acceso al directorio

A continuación se muestra otro ejemplo de configuración predeterminada que debe cambiarse. En este caso, es el acceso otorgado a los archivos de su directorio lo que permite a cualquiera explorar donde quiera.

Para implementar un bloqueo total, use el siguiente comando:

<Directory "/">
Require all denied
</Directory>

Si quieres habilitar el acceso a determinados usuarios, puedes hacerlo con esto:

<Directory "/usr/users/*/public_html">
Require all granted
</Directory>

Si desea habilitar el acceso a ciertas carpetas dentro del directorio, puede hacerlo con esto:

<Directory "/usr/local/httpd">
Require all granted
</Directory>

También es posible que desee examinar el repositorio del módulo Apache para realizar más ajustes en los derechos de acceso de los usuarios.

10. No publique el directorio

¿Sabías que si tu servidor no tiene un archivo de índice, los usuarios podrán ver todo el contenido que tienes almacenado en tu directorio raíz? Obviamente, eso no es bueno, por lo que deberás desactivar esta configuración predeterminada con lo siguiente:

<Directory /var/www/html>
Options -Indexes
</Directory>

11. Ocultar detalles del servidor

Debido a que Apache es un software de código abierto, los detalles sobre la versión utilizada están disponibles si estas configuraciones no están deshabilitadas en el lado del servidor. Dado que los piratas informáticos pueden usar esa información confidencial para descubrir cómo ingresar a su servidor, querrá bloquear esta información.

Hay dos cosas que querrás desactivar:

  • ServerSignature – que es la versión de Apache
  • ServerTokens: que incluye la versión del sistema operativo, entre otros detalles confidenciales del servidor

Otros usuarios pueden encontrar esta información simplemente viendo una página de error en su sitio web, por lo que es muy importante bloquear esta información para que no se muestre. Para hacer esto, actualice httpd.conf con lo siguiente:

ServerSignature Off
ServerTokens Prod

12. Ocultar la ETag

Desafortunadamente, el encabezado ETag en Apache incluye una serie de detalles confidenciales sobre su servidor. Obviamente, todo lo que comparta ese tipo de información con el mundo exterior debería ocultarse. Además, si tiene un sitio web de comercio electrónico, deberá ocultarlo para cumplir con PCI.

Para hacer esto, agregue la siguiente directiva a su httpd.conf:

FileETag None

13. Deshabilitar la anulación de .htaccess

El .htaccess es un archivo importante para cualquier sitio web de WordPress. Es por eso que necesita bloquearlo y asegurarse de que nadie más pueda anular sus ajustes de configuración.

Para desactivar esto, agregue lo siguiente a su httpd.conf en la raíz:

<Directory />
Options -Indexes
AllowOverride None
</Directory>

14. Deshabilite SSI y CGI

Los archivos habilitados para Server Side Incluye (SSI) pueden exponer su sitio a una serie de problemas de seguridad si no se controlan. Lo mismo ocurre con los guiones CGI. Para evitar que cualquiera de estos permita a los piratas informáticos sobrecargar su servidor o inyectar scripts maliciosos en su código, recuerde desactivarlos o restringir lo que hacen a través de la directiva Opciones.

A continuación se muestran algunos valores de Opciones que puede utilizar:

  • Opciones todas
  • Opciones IncluyeNOEXEC
  • Opciones -Incluye
  • Opciones -ExecCGI
  • Opciones -Incluye -ExecCGI
  • Opciones Multivistas

Cuidando su servidor Apache

En un esfuerzo por reforzar la seguridad de su sitio web, preste especial atención a su servidor Apache. Problemas como la mala configuración del servidor y el mantenimiento de la configuración predeterminada pueden poner su sitio en riesgo tanto como un núcleo no actualizado o prácticas de codificación PHP inseguras.

¿Quieres dar tu opinión o unirte a la conversación?Añade tus comentarios en Twitter.