Professional Documents
Culture Documents
Esta es una gua de configuraciones bsicas que pueden ser aplicadas al servidor web Apache2, todos
los comandos han sido probados bajo una plataforma LINUX lo que implica que el servidor debe tener
la suite LAMP para funcionar, la distribucin sobre la que se hicieron las pruebas es Ubuntu 14.04 LTS,
habiendo instalado previamente a LAMP todas las actualizaciones de seguridad en el mismo.
La versin de apache utilizada es Apache 2.4, cabe mencionar que las posibilidades de seguridad que
nos brinda este servidor web son muy extensas por lo que en este manual se dan los parmetros para
comenzar a implementar una seguridad efectiva en ese servidor, sin embargo, el usuario puede llegar
hasta donde sus necesidades lo requieran.
Paso 1. Debemos conocer cual es la versin de Apache que estamos ejecutando, esto lo hacemos con el
comando:
#apache2 -version
Paso 2. Agregaremos el nombre del servidor al archivo de configuracin apache2.conf, ubicado en
/etc/apache2/ , para tal efecto agregaremos la siguiente lnea:
ServerName localhost
localhost ser usado para efectos de nuestra clase, aqu debera utilizarse el FQDN del server
Paso 3. El servidor Apache 2.4 trae por defecto el Document Root /var/www/html, en este caso
cambiaremos la ruta a /var/www, esto se hace en el archivo de configuracin 000-default.conf, este
archivo se ubica en la ruta /etc/apache2/sites-available/, para hacer dicho cambio teclearemos los
siguientes comandos en nuestra consola:
#cd /etc/apache2/sites-available
#nano 000-default.conf
y substituiremos la lnea DocumentRoot /var/www/html
por DocumentRoot /var/www/
Una vez hecho este cambio, reiniciaremos el servicio apache con el comandos
# /etc/init.d/apache2 restart
Paso 5. Ocultando los encabezados de Apache, los encabezados se refieren a toda la info desplegada en
la imgen anterior, para ocultarlos nos dirigiremos a la ruta /etc/apache2/conf-available y editaremos el
archivo security.conf; en este archivo buscaremos o agregaremos la siguiente lnea:
ServerTokens Prod
el efecto ser que no se muestre la versin de sistema operativo que estamos ejecutando.
Lo siguiente ser ocultar la versin de Apache, esto se consigue editando las siguientes lneas:
descomentarizamos ServerSignature Off
y comentarizarmos ServerSignature On
Una vez ms deberemos reiniciar nuestro servicio Apache.
Paso 6. Queda un ultimo paso, y es no permitir que se listen los directorios que contiene apache,
para esto en el mismo archivo security.comf descomentamos las siguientes lineas y agregamos lo que
sea necesario.
<Directory /var/www>
Options -Indexes -ExecCGI -FollowSymLinks
AllowOverride None
Order Deny,Allow
# Deny from all
</Directory>
-execcgi, bloquea el uso de cgis creados del lado del servidor, y -Followsymlinks Esta funcionalidad
puede posibilitar que un atacante, que tenga permisos de escritura sobre el DocumentRoot, y cree un
enlace simblico a archivos contenidos fuera del DocumentRoot para luego acceder a ellos a travs del
navegador, -Indexes, impide que se muestren los directorios que contiene el DocumentRoot.
Ahora solo queda reiniciar el servicio nuevamente.
DOSHashTableSize
Cuanto ms grande sea el tamao de la tabla de Hash, ms memoria requerir, pero el rastreo de Ips
ser ms rpido.
Es til aumentar su tamao si nuestro servidor recibe una gran cantidad de peticiones, pero as mismo
la memoria del servidor deber ser tambin mayor.
DOSPageCount
Nmero de peticiones a una misma pgina para que una IP sea aadida a la lista de bloqueo
, dentro del intervalo de bloqueo en segundos especificado en el parmetro DOSPageInterval
DOSSiteCount
Igual que DOSPageCount, pero corresponde al nmero de peticiones al sitio en general, usa el
intervalo de segundos especificado en DOSSiteInterval.
DOSPageInterval
Intervalo en segundos para el parmetro umbral de DOSPageCount.
DOSSiteInterval
Intervalo en segundos para el parmetro umbral DOSSiteCount.
DOSBlockingPeriod
Periodo de bloqueo para una IP si se supera alguno de los umbrales anteriores.
El usuario recibir un error403 (Forbidden) cuando sea bloqueado, si el atacante lo sigue intentando,
este contador se resetear automticamente, haciendo que siga ms tiempo bloqueada la IP.
DOSEmailNotify
Direccin de correo electrnico que recibir informacin sobre los ataques.
DosWhitelist
Podemos especificar una IP o rango que ser excluido del rastreo por mod_evasive.
Verificamos que nuestro modulo este en funcionamiento
sudo a2enmod evasive
y al recibir el mensaje de afirmativo, reiniciaremos nuestro apache.
lo probaremos con el comando test.pl que viene dentro del tar.gz y que esta en la carpeta donde lo
descargamos
perl test.pl
Con esto ya tendramos un protector de ataques DoS a apache funcionando. No obstante, puede ser de
utilidad el siguiente comando, que nos indicar el nmero de peticiones al puerto 80 por cada IP en el
momento que lo ejecutemos:
netstat -plan|grep :80 | awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -n