Apache HTTP

Cómo proteger su servidor Apache

Cómo proteger su servidor Apache
Apache es un servidor web popular de código abierto disponible para sistemas Linux y Windows. Permite la configuración para una amplia gama de casos de uso, desde páginas web HTML hasta contenido dinámico de aplicaciones web con preprocesador de hipertexto (PHP).Apache proporciona una plataforma segura y robusta para implementar sus aplicaciones web. Sin embargo, sigue siendo importante instalar los últimos parches de seguridad y configurar el servidor correctamente para establecer un entorno seguro para sus aplicaciones web.
En este artículo, encontrará algunos consejos y trucos para fortalecer las configuraciones de su servidor web Apache y mejorar la seguridad general.

Cuenta de usuario sin privilegios

El propósito de una cuenta de usuario no root o sin privilegios es restringir al usuario el acceso innecesario a ciertas tareas dentro de un sistema. En el contexto de un servidor web Apache, esto significa que debería funcionar en un entorno restringido con solo los permisos necesarios. De forma predeterminada, Apache se ejecuta con privilegios de cuenta demonio. Puede crear una cuenta de usuario no root separada para evitar amenazas en caso de vulnerabilidades de seguridad.

Además, si apache2 y MySQL están bajo las mismas credenciales de usuario, cualquier problema en el proceso de un servicio tendrá un impacto en el otro. Para cambiar los privilegios de usuario y grupo para el servidor web, vaya a / etc / apache2, abra el archivo envvars y configure el usuario y el grupo en una nueva cuenta de usuario sin privilegios, digamos, "apache", y guarde el archivo.

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / envvars
... recortar ..
exportar APACHE_RUN_USER = apache
exportar APACHE_RUN_GROUP = apache
... recortar ..

También puede utilizar el siguiente comando para cambiar la propiedad del directorio de instalación al nuevo usuario no root.

ubuntu @ ubuntu ~: $ sudo chown -R apache: apache / etc / apache2
Emita el siguiente comando para guardar los cambios:
ubuntu @ ubuntu ~: $ sudo service apache2 restart

Mantenga Apache actualizado

Apache es famoso por proporcionar una plataforma segura con una comunidad de desarrolladores muy preocupada que rara vez se enfrenta a errores de seguridad. Sin embargo, es normal descubrir problemas una vez que se lanza el software. Por lo tanto, es esencial mantener actualizado el servidor web para aprovechar las últimas funciones de seguridad. También se recomienda seguir las Listas de anuncios del servidor Apache para mantenerse actualizado sobre los nuevos anuncios, lanzamientos y actualizaciones de seguridad de la comunidad de desarrollo de Apache.

Para actualizar su apache usando apt, escriba lo siguiente:

ubuntu @ ubuntu ~: $ sudo apt-get update
ubuntu @ ubuntu ~: $ sudo apt-get upgrade

Deshabilitar la firma del servidor

La configuración predeterminada de un servidor Apache expone muchos detalles sobre el servidor y su configuración. Por ejemplo, habilitó las directivas ServerSignature y ServerTokens en / etc / apache2 / apache2.conf agregue un encabezado adicional a la respuesta HTTP que exponga información potencialmente sensible. Esta información incluye detalles de la configuración del servidor, como la versión del servidor y el sistema operativo de alojamiento, que pueden ayudar al atacante con el proceso de reconocimiento. Puede deshabilitar estas directivas editando el apache2.conf a través de vim / nano y agregue la siguiente directiva:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.conf
... recortar ..
ServerSignature Off
... recortar ..
ServerTokens Prod
... recortar ..

Reinicie Apache para actualizar los cambios.

Deshabilitar listas de directorios de servidores

Las listas de directorios muestran todo el contenido guardado en la carpeta raíz o en los subdirectorios. Los archivos de directorio pueden incluir información confidencial no destinada a la visualización pública, como scripts PHP, archivos de configuración, archivos que contienen contraseñas, registros, etc.
Para no permitir listados de directorios, cambie el archivo de configuración del servidor Apache editando el archivo apache2.conf archivo como:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.conf
... recortar ..

Opciones -índices

... recortar ..

O

... recortar ..

Opciones -índices

... recortar ..

También puede agregar esta directiva en el .htaccess del directorio principal de su sitio web.

Proteger la configuración del sistema

La .El archivo htaccess es una característica conveniente y poderosa que permite la configuración fuera del apache2 principal.conf archivo. Sin embargo, en los casos en que un usuario puede cargar archivos en el servidor, un atacante puede aprovecharlos para cargar los suyos propios ".htaccess ”archivo con configuraciones maliciosas. Por lo tanto, si no está utilizando esta función, puede desactivar la .directiva htaccess, i.mi.:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.conf
... recortar ..
#AccessFileName .htaccess
... recortar ..

O
Desactivar el .htaccess, excepto para los directorios habilitados específicamente mediante la edición de apache2.conf y convirtiendo la directiva AllowOverRide en None;

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.conf
... recortar ..

AllowOverride Ninguno

... recortar ..

Directorios seguros con autenticación

Puede crear credenciales de usuario para proteger todos o algunos de los directorios utilizando la utilidad htpasswd. Vaya a la carpeta de su servidor y use el siguiente comando para crear un .htpasswd para almacenar hashes de contraseña para las credenciales asignadas a, digamos, un usuario llamado dev.

[correo electrónico protegido] ~: $ sudo htpasswd -c / etc / apache2 / -htpasswd dev

El comando anterior le pedirá la nueva contraseña y la confirmación de la contraseña. Puedes ver el gato ./ htpasswd para verificar el hash de las credenciales de usuario almacenadas.

Ahora, puede configurar automáticamente el archivo de configuración en el directorio your_website que necesita proteger modificando el .archivo htaccess. Utilice el siguiente comando y directivas para habilitar la autenticación:

ubuntu @ ubuntu ~: $ sudo nano / var / www / su_sitio_web /.htaccess
... recortar ..
AuthType Basic
AuthName "Agregar el mensaje de diálogo"
AuthUserFile / etc / apache2 / nombre_usuario / nombre_dominio /.htpasswd
Requerir usuario válido
... recortar ..

Recuerde agregar la ruta según la suya.

Ejecute los módulos necesarios

La configuración predeterminada de Apache incluye módulos habilitados que es posible que ni siquiera necesite. Estos módulos preinstalados abren puertas para problemas de seguridad de Apache que ya existen o pueden existir en el futuro. Para deshabilitar todos estos módulos, primero debe comprender qué módulos son necesarios para el buen funcionamiento de su servidor web. Para este propósito, consulte la documentación del módulo apache que cubre todos los módulos disponibles.

A continuación, use el siguiente comando para averiguar qué módulos se están ejecutando en su servidor.

[correo electrónico protegido] ~: $ sudo ls / etc / apache2 / mods-enabled

Apache viene con el poderoso comando a2dismod para deshabilitar el módulo. Evita cargar el módulo y le avisa con una advertencia al deshabilitar el módulo de que la acción puede afectar negativamente a su servidor.

[correo electrónico protegido] ~: $ sudo a2dismod module_name

También puede deshabilitar el módulo comentando en la línea LoadModule.

Prevenir el ataque lento de Loris y DoS

La instalación predeterminada de un servidor Apache lo obliga a esperar las solicitudes de los clientes durante demasiado tiempo, lo que somete al servidor a ataques Slow Loris y DoS. El apache2.conf proporciona una directiva que puede utilizar para reducir el valor de tiempo de espera a unos segundos para evitar este tipo de ataques, i.mi.:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.conf
Tiempo de espera 60

Además, el nuevo servidor Apache viene con un módulo útil mod_reqtimeout que proporciona una directiva RequestReadTimeout para proteger el servidor de solicitudes ilegítimas. Esta directiva viene con algunas configuraciones complicadas, por lo que puede leer la información relacionada disponible en la página de documentación.

Deshabilitar solicitudes HTTP innecesarias

Las solicitudes HTTP / HTTPS ilimitadas también pueden provocar un bajo rendimiento del servidor o un ataque DoS. Puede limitar la recepción de solicitudes HTTP por directorio utilizando LimitRequestBody a menos de 100K. Por ejemplo, para crear una directiva para la carpeta / var / www / your_website, puede agregar la directiva LimitRequestBody debajo de AllowOverride All, i.mi.:

... recortar ..

Opciones -índices
Permitir anular todo
LimitRequestBody 995367

... recortar ..

Nota: Recuerde reiniciar Apache después de los cambios aplicados para actualizarlo en consecuencia.

Conclusión

La instalación predeterminada del servidor Apache puede proporcionar mucha información confidencial para ayudar a los atacantes en un ataque. Mientras tanto, hay muchas otras formas (no enumeradas anteriormente) de proteger el servidor web Apache, también. Continúe investigando y manteniéndose actualizado sobre nuevas directivas y módulos para asegurar aún más su servidor.

El botón de clic izquierdo del mouse no funciona en Windows 10
Si está utilizando un mouse dedicado con su computadora portátil o computadora de escritorio, pero el el botón izquierdo del mouse no funciona en Wind...
El cursor salta o se mueve aleatoriamente mientras escribe en Windows 10
Si descubre que el cursor del mouse salta o se mueve por sí solo, automáticamente, de manera aleatoria mientras escribe en una computadora portátil o ...
Cómo invertir la dirección de desplazamiento del mouse y los paneles táctiles en Windows 10
Ratón y Panel táctils no solo facilitan la informática, sino que también hacen que sea más eficiente y requieran menos tiempo. No podemos imaginar una...