Tabla de Contenidos

, ,

Bastionar Apache

Instalación

Actualizaciones.

Hay que mantener el servidor actualizado con las últimas actualizaciones. A la hora de actualizar comprobar el changelog para ver si hay incompatibilidades.

Si lo hemos instalado desde los repositorios podemos hacer

yum update httpd

Desactivar los módulos innecesarios

Para ver los módulos cargados ejecutar

 httpd -t -D DUMP_MODULES</code> o bien <sxh bash>grep LoadModule /etc/httpd/conf/httpd.conf
grep LoadModule /etc/apache2/apache2.conf

para ver los módulos con los que se compiló

 httpd -V

Todos los módulos que hay para Apache están documentados en la siguiente URL: http://modules.apache.org/

Módulos que se suelen cargar por defecto:

Para desactivar un módulo y que no se cargue basta con poner un comentario en la línea que carga el módulo en el fichero de configuración Como minimo eliminar o deshabilitar los siguientes módulos

En CentOS / Redhat (RHEL) / Fedora para deshabilitar un módulo deberemos de renombrar dicho módulo quitándole la extensión .conf y reiniciamos el servicio del apache

Por ejemplo para deshabilitar el modulo mod_python vamos a la carpeta /etc/httpd/conf.d/ y renombramos el fichero python.conf a python.bak y reiniciamos el servidor apache

Para habilitar un módulo basta con hacer el proceso contrario. Renombramos el fichero a su extensión .conf y reiniciamos el servicio de apache

En Debian / Ubuntu para deshabilitar un módulo podemos usar dos scripts :

La forma de deshabilitar un módulo sería ejecutarlo

a2dismod {nombre-módulo}
y para habilitar un módulo sería con
a2enmod {nombre-módulo}

con el comando apachectl configtest debemos de comprobar que no hemos deshabilitado un módulo que estemos usando

Instalar módulos

Para agregar nuevos módulos mediante el comando config-status.

Ejemplo Instalación de Módulos

Para instalar módulos, el primer módulo que debe ser activado es el módulo para módulos, esto se realiza mediante el comando:

./config.status --activate-module=src/modules/standard/mod_so.c

El comando anterior agrega mod_so (el módulo de módulos) a config.status; para instalar otros módulos se utilizan parámetros similares:

./config.status --enable-module=proxy 

Módulos que pueden aumentar la seguridad

El mod_security hace las veces de firewall de las aplicaciones web y nos permite además monitorizar el tráfico en tiempo real.

El mod_evasive nos protege de ataques por fuerza bruta y DDos

Para instalar ambos módulos

yum install mod_security mod_evasive

<note>reiniciar el servicio httpd para aplicar los cambios </code>

Permisos

  1. Sólo el administrador debe poder modificar los archivos de configuración para que nadie más pueda manipularlos.
  2. Crear una cta para arrancar y parar los servicios
  3. Crear un grupo para gestionar el servidor

Suministrar la menor información

Modificamos /etc/httpd/conf/httpd.conf

ServerTokens ProductOnly
ServerSignature Off

Quitar el acceso a los listados de directorios

quitar o comentar el acceso a los index

## option indexes FlollowSymLinks

También podemos podemos editar la configuración y usar la orden options

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

Desactivar la directiva de uso como proxy

ProxyRequests off

Directiva FilesMacth Limitar los ficheros a descargar

<FilesMatch "\.(old|bak|tgz|sql|inc|tar\.gz|zip|rar)$">
   Order Deny,Allow
   Deny from All
</FilesMatch>

Fortificar con Varnish

http://terminus.ignaciocano.com/k/2011/05/26/mejorando-la-seguridad-de-apache-con-varnish/

Herramientas

Referencias