Apache: un poco de optimización y hardening

Este es un repaso esas cosas que siempre hay que hacerle al Apache en servidores nuevos, aprendidas con el paso del tiempo, consejos de amigos, prueba y error, etc.

Ocultaremos la versión de Apache, cambiando la configuración en el archivo httpd.conf:

ServerTokens ProductOnly
ServerSignature Off

También borraremos el manual de Apache, ya que su visualización a través de errores o páginas de ayuda pueden desvelar también la versión.

# rm -rf /var/www/manual

También podemos eliminar la sección relativa ‘manual‘ del httpd.conf que usa el módulo content_negotiation, aunque no podemos deshabilitar dicho módulo.

 

Módulos innecesarios

Como norma general, deshabilitar módulos innecesarios. En mi caso suelo quitar (marcar en la configuración como Disabled):

 foo_module  
 auth_anon_module  
 auth_dbm_module  
 auth_digest_module  
 cache_module  
 disk_cache_module  
 mem_cache_module  
 mime_magic_module  
 usertrack_module  
 unique_id_module  
 dav_module  
 asis_module  
 dav_fs_module  
 imap_module  
 actions_module  
 speling_module 

Tener en cuenta que desactivar alguno de los módulos de Apache puede hacer que no pueda arrancar, si algún trozo de la configuración hace referencia a directivas que provienen de dichos módulos. Debemos deshabilitar esas configuraciones también para que Apache no se queje al arrancar.

mod_proxy

Muchos paneles de control usan “mod_proxy” y otros derivados para interceptar URLs especiales para acceder a webmail -como Horde- usando el nombre del dominio de un virtual host (varias webs sobre una misma IP). Si no lo necesitamos, y considerando también que según la versión de Apache puede haber agujeros de seguridad, también podemos deshabilitarlo (teniendo cuidado de eliminar también las referencias a mod_proxy en otros puntos de la configuración).

De estas forma podemos deshabilitar varios módulos que comienzan llamándose proxy_*

#LoadModule proxy_module /usr/lib/httpd/modules/mod_proxy.so
#LoadModule proxy_connect_module /usr/lib/httpd/modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module /usr/lib/httpd/modules/mod_proxy_ftp.so
#LoadModule proxy_http_module /usr/lib/httpd/modules/mod_proxy_http.so

Al querer arrancar de nuevo Apache nos pueden dar problemas directivas del tipo ProxyPass y ProxyPassReverse. Simplemente deshabilitar esas referencias, perdiendo su funcionalidad lógicamente.

 

Otros Tweaks

Aunque esto ya debería venir por defecto en Linux modernos:

EnableSendFile On
EnableMmap On

Otros consejos de optimización y rendimiento en otros artículos de Toma2tazas:

Apache: Usando mod_expires
Instalando mod_perl
Apache: activando mod_deflate para compresión gzip
Caso técnico: configurar Apache y Tux/RHCA para servir archivos estáticos y dinámicos

Esta entrada fue publicada en Apache y etiquetada , , , . Guarda el enlace permanente.

Deja un comentario