Asegurando Apache en Ubuntu – Parte 1

Apache es uno de los servidores web más utilizados y populares del mundo, y alimenta casi el 40% de todos los servidores del mundo. Si usted es un webmaster o administrador que mantiene un servidor Apache, es importante que sepa cómo asegurar Apache y evitar que sea pirateado. En este artículo, describiremos algunos consejos y trucos que puede utilizar para proteger su servidor Apache.

Nota: estamos usando Ubuntu 14.04 para este tutorial.

Instalar y actualizar Apache

Primero, debe actualizar e instalar Apache en su sistema.

Para esto, ejecute el siguiente comando:

sudo apt-get update
sudo apt-get install apache2

Ocultar versión de Apache

Por defecto, Apache muestra la versión de su servidor web Apache instalado en su sistema con el nombre del sistema operativo de su servidor.

versión apache

En la captura de pantalla anterior, puede ver la versión de Apache y el sistema operativo instalado en su servidor. Esto puede ser un problema de seguridad importante para su servidor web. Para ocultar esta información, debe editar el archivo de configuración principal de Apache (“/etc/apache2/conf-enabled/security.conf”).

sudo nano /etc/apache2/conf-enabled/security.conf

Agregue/edite la siguiente línea:

ServerSignature Off
ServerTokens Prod

Guarde el archivo y reinicie el servicio de apache.

sudo /etc/init.d/apache2 restart

Desactive la exploración de directorios y deshabilite los enlaces simbólicos

Por defecto, la lista de directorios está habilitada en el servidor Apache. La lista de directorios muestra todo el directorio con todos los archivos del servidor Apache. Si está habilitado, un atacante puede ver fácilmente cualquier archivo, analizarlo y obtener información confidencial sobre una aplicación.

Puede ver la lista de directorios predeterminada en la imagen a continuación.

apache-dir-lista

Puede deshabilitar esta configuración editando el archivo de configuración de Apache.

sudo nano /etc/apache2/apache2.conf

Agregue/edite la siguiente línea:

       Options -FollowSymLinks
       AllowOverride None
       Require all granted

Nota: el código anterior asume que sus páginas web se sirven desde la carpeta «/var/www/html». Si ha cambiado la carpeta pública a una ubicación personalizada, cambie la Directory ruta en el código anterior.

La línea Options -FollowSymLinks también deshabilita los enlaces simbólicos. Si desea habilitar enlaces simbólicos, elimine el signo «-» delante de FollowSymLinkspor lo que se convierte Options FollowSymLinks.

Guarde el archivo y reinicie el servidor Apache.

Después de esto, intente visitar la Web en un navegador y obtendrá un error prohibido que se muestra en la imagen a continuación.

apache-dir-lista-deshabilitar

Deshabilitar módulos innecesarios

Por defecto, Apache viene con varios módulos instalados que no son necesarios para el uso normal. Se recomienda recortar la grasa y deshabilitar todos esos módulos innecesarios. Puede enumerar todos los módulos habilitados en su servidor usando el siguiente comando:

sudo ls /etc/apache2/mods-enabled/

Esto mostrará la salida como se muestra en la imagen de abajo.

apache-habilitar-módulo

De los módulos mencionados anteriormente, algunos módulos como «estado» y «autoíndice» están habilitados pero no son necesarios.

Puede deshabilitar estos módulos usando el siguiente comando:

sudo a2dismod autoindex
sudo a2dismod status
sudo /etc/init.d/apach2 restart

Hacer uso de ModSecurity

Mod security es un módulo gratuito de Apache que se utiliza para proteger su servidor web de varios ataques como inyección de SQL, secuencias de comandos entre sitios, secuestro de sesión, fuerza bruta y muchas otras vulnerabilidades. También le permite monitorear el tráfico en tiempo real.

Puede instalar mod security usando el siguiente comando:

sudo apt-get install libapache2-modsecurity

Para verificar si el módulo mod_security se está ejecutando, use el siguiente comando:

sudo apachectl -M | grep --color security

La imagen que se muestra a continuación indica que el módulo se cargó.

apache-mod-seguridad

Para habilitar las reglas de mod_security, debe cambiar el nombre y editar el archivo de configuración recomendado de mod security y configurar el SecRuleEngine opción a On.

Para esto ejecute el siguiente comando:

sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo nano /etc/modsecurity/modsecurity.conf

Agregue/edite la siguiente línea:

Ahora reinicie Apache para que los cambios surtan efecto.

Hay muchas reglas de seguridad que vienen con Modesecurity (llamado Conjunto de reglas básicas) que se encuentran en el directorio «/usr/share/modsecurity-crs». Ahora necesita habilitar estas reglas para que funcione con Apache.

Puede hacerlo editando el archivo “/etc/apache2/mods-enabled/security2.conf”.

sudo nano /etc/apache2/mods-enabled/security2.conf

Agregue/edite la siguiente línea:

        IncludeOptional /etc/modsecurity/*.conf
        IncludeOptional "/usr/share/modsecurity-crs/*.conf"
        IncludeOptional "/usr/share/modsecurity-crs/base_rules/*.conf

Guarde el archivo y reinicie Apache.

Desactive las inclusiones del lado del servidor y la ejecución CGI.

Se recomienda deshabilitar las inclusiones del lado del servidor y la ejecución de CGI si no es necesario.

Para ello, debe editar el archivo de configuración principal de Apache.

sudo nano /etc/apache2/apache2.conf

Agregue/edite la siguiente línea:

        Options -FollowSymLinks -Includes -ExecCGI
        AllowOverride None
        Require all granted

Guarde el archivo y reinicie Apache.

También puede hacer esto para un directorio específico. Por ejemplo, para desactivar las inclusiones del lado del servidor y las ejecuciones de archivos cgi para el directorio «/var/www/html/webdir1», ddd/editar la siguiente línea:

        Options -Includes -ExecCGI

Guarde el archivo y reinicie Apache.

Limitación de solicitudes grandes

Por defecto, Apache no tiene límite en el tamaño de la solicitud HTTP. Esto permitirá que un atacante envíe una gran cantidad de datos. Apache tiene varias directivas que le permiten establecer un tamaño de solicitud adecuado. Esto protegerá su servidor web de un ataque de denegación de servicio.

Puede establecer el valor de 0 (ilimitado) a 2147483647 (2 GB) en el archivo de configuración principal de Apache.

Por ejemplo, limite el tamaño de la solicitud del directorio «/var/www/html/webdir1» a 200K.

sudo nano /etc/apache2/apache2.conf

Agregue/edite la siguiente línea:

Guarde el archivo y reinicie Apache.

No permitir la exploración fuera de la raíz del documento

Se recomienda que Apache solo pueda acceder al directorio raíz del documento. Puede proteger el directorio raíz (/) configurando la siguiente línea:

sudo nano /etc/apache2/apache2.conf

Agregue/edite la siguiente línea:

   Options None
   Order deny,allow
   Deny from all

Esto es lo que hace el código:

  • Options None : Esto apagará todas las opciones.
  • Order deny,allow : el orden en que se aplican los comandos allow y deny.
  • Deny from all : Esto denegará una solicitud de todos al directorio raíz.

Guarde el archivo y reinicie Apache.

Mantenga Apache actualizado

Las nuevas actualizaciones de Apache contendrán nuevas correcciones y parches que reducirán la vulnerabilidad de su servidor Apache, por lo que se recomienda utilizar la última versión del servidor Apache.

Puede actualizar su Apache a la última versión usando el siguiente comando:

sudo apt-get install apache2 --reinstall

Conclusión

Espero que esta publicación lo ayude a proteger su servidor Apache. Encontrará más consejos y trucos de seguridad avanzados para asegurar el servidor Apache en mi próxima publicación. Siéntase libre de comentar a continuación si tiene alguna pregunta.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada.