Consejos al instalar un servidor web Apache

En base a la experiencia que he tenido instalando servidores web de Apache 1.x y 2.x voy a tratar de resumir los puntos mas importantes a tener en cuenta:

Instalar y actualizar a la ultima versión.

La mejor opción es instalar la ultima versión dependiendo la distribución de linux que estemos corriendo. Obviamente me refiero a la versión estable. Mejor si lo hacemos atraves del sistema de archivos especifico de la distribución linux, como por ejemplo apt-get, yum etc; asi las actualizaciones serán mas fáciles. También se puede instalar atraves del código fuente, pero haciendo esto las actualizaciones no van a ser tan automatizadas como cuando instalamos el apache atraves de apt-get, yum, etc.

Des habilitar la firma del servidor.

Este es un punto muy importante, ya que con esto evitamos que cualquier persona en Internet pueda saber que versión de apache estamos corriendo, haciendo así mas fácil atacar nuestro servidor, ya que puede buscar “exploits” o scripts para atacarnos y si el atacante sabe la versión de apache que estamos utilizando, le haremos el trabajo mas facil.

Esto lo hacemos modificando la siguiente opción en el archivo /etc/apache2/apache2.conf (esto también lo podemos agregar en el httpd.conf, todo depende de la distribución de linux que estemos usando).

#
# Optionally add a line containing the server version and virtual host
# name to server-generated pages (internal error documents, FTP directory
# listings, mod_status and mod_info output etc., but not CGI generated
# documents or custom error documents).
# Set to “EMail” to also include a mailto: link to the ServerAdmin.
# Set to one of:  On | Off | EMail
#
ServerSignature Off

Definir un ServerLimit.

Con esto limitamos las conexiones que se realicen a nuestro servidor, con esto evitamos que lo puedan llegar a saturar, siempre teniendo en cuenta cuantas peticiones normalmente va a estar manejando el servidor al mismo tiempo, aquí defino el server limit en el prefork MPM:

<IfModule prefork.c>
StartServers         5
MinSpareServers      5
MaxSpareServers     10
MaxClients          20
ServerLimit    100
MaxRequestsPerChild  0
</IfModule>

Monitorear el consumo de espacio en disco duro de los logs de apache.

Recomiendo periódicamente verificar el consumo de disco duro de los logs de apache, con esto evitamos que el apache “llene” el disco con sus logs, yo reviso el consumo de la siguiente manera:

rolando@mail:/var/log$ df -m
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/hda3                34984     21986     11193  67% /

Habilitar el modulo mod_status.c.

Esto es de gran ayuda para los sysadmin a la hora de montar un servidor apache, con esto podemos ver cuantas conexiones y cuantos megas/gigas esta transfiriendo nuestro servidor apache. Yo habilito la opción ExtendedStatus On para ver información mas detallada. Siempre limitando las conexiones al /server-status a mi red clase B que seria 192.168..

<IfModule mod_status.c>
#
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the “.example.com” to match your domain to enable.
#
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168.
</Location>
</IfModule>
ExtendedStatus On

Este modulo nos va a dar información detallada de nuestro servidor apache, incluso nos va a mostrar conexiones e direcciones IP de los clientes como lo muestra la siguiente imagen:

Permisos 755 en las carpetas de los sitios web.

Por ningún motivo los sitios web tienen que tener permisos de 777, ya que un atacante podría sobre escribir nuestros archivos e incluso borrarlos. Esta medida es por seguridad.

Con estos consejos podrán montar un servidor web apache y sacarle provecho a este servidor web. Como lo mencione arriba, recuérdense de mantenerlo actualizado así evitamos que nuestro servidor web este vulnerable a ataques.

Cualquier comentario o sugerencia es bienvenida.


bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark
tabs-top


7 Comentarios en “Consejos al instalar un servidor web Apache”

  1. Camilo says:

    Estimado a que se refiere el parametro “MaxClients” dentro del módulo prefork, tiene alguna implicancia en el otro paramtro “ServerLimit”…..

  2. Rolando says:

    @Camilo

    En el “modulo prefork” defines con el parametro MaxClients define cuantos procesos “hijo” child processes seran lanzados para manejar las peticiones.

  3. Seymour says:

    Hola.
    Gracias por compartir tu experiencia con todo el mundo.
    Yo tengo ganas de instalar un servidor web en casa para compartir cosas con los amigos, pero siempre me echa para atrás la idea de no tener una configuración suficientemente segura y que me puedan hackear el ordenador. No sé de seguridad informática como para saber si mi propio entorno es seguro. Pero estas indicaciones tuyas me animan un poco a instalarlo.
    Saludos.

  4. Alex-BL says:

    Muy buenos consejos, gracias por publicarlos, mi única duda es si todas estas configuraciones las haces en el httpd.conf?

    Saludos.

  5. Rolando says:

    @Alex-BL

    Esto en debian lo manejo en el /etc/apache2/apache2.conf

  6. Tito José Rosendo Canelón says:

    Gracias Rolando por tus consejos, para mí son muy útiles, pues quiero instalar y configurar apache en una forma correcta y segura.

  7. dayer says:

    Para lo de la firma del servidor ahora es necesario modificarlo en el archivo «/etc/apache2/conf.d/security». Y de paso también la directiva «ServerTokens» a «Prod» que es lo más restrictivo.

Deja tu Comentario