GNU/Linux >> Tutoriales Linux >  >> Linux

Vulnerabilidad HTTPOXY:cómo proteger y probar su servidor web

La vulnerabilidad HTTPOXY que se ha encontrado recientemente es una vulnerabilidad que afecta a las aplicaciones que se ejecutan en entornos cgi o similares a cgi. Esto significa que el problema afecta a casi todos los servidores web, incluidos Apache y Nginx, y también a la mayoría de las aplicaciones PHP. Incluso el modo mod_php en apache se ve afectado.

Este tutorial le mostrará cómo proteger su servidor web de HTTPOXY. Contiene secciones para las distribuciones de Linux más utilizadas CentOS + RHEL, Debian y Ubuntu. Los pasos también se pueden aplicar a otras distribuciones de Linux, pero las rutas a los archivos de configuración pueden diferir.

Puede encontrar una descripción detallada de la vulnerabilidad HTTPOXY en este sitio web https://httpoxy.org/.

Los pasos descritos en este tutorial son compatibles con los tutoriales del servidor perfecto de ISPConfig.

1 ¿Cómo afecta HTTPOXY a mi servidor?

HTTPOXY afecta a los clientes que respetan la variable HTTP_PROXY y la utilizan para su configuración de proxy y aplicaciones del lado del servidor que utilizan HTTP_PROXY como variable real o emulada en su entorno. El resultado de un ataque puede ser tráfico que la aplicación web envía por proxy a un sistema de destino elegido por el atacante o la aplicación abre conexiones salientes a otros sistemas. La vulnerabilidad se puede explotar fácilmente de forma remota y los servidores se pueden escanear en busca de ella, por lo que se recomienda encarecidamente tomar medidas para cerrarla en su servidor.

1.1 Solución general

La solución recomendada en este momento es desactivar o filtrar la variable de encabezado HTTP_PROXY. Esto se hace en apache con el módulo mod_headers y esta declaración de configuración:

RequestHeader unset Proxy early

En Nginx, puede usar esta línea para desactivar la variable HTTP_PROXY.

fastcgi_param HTTP_PROXY "";

El siguiente capítulo describe el procedimiento detallado para diferentes distribuciones de Linux.

2 Debian

Este capítulo describe la configuración para proteger Apache y Nginx en servidores Debian 8 (Jessie) y Debian 7 (Wheezy) contra HTTPOXY. Los siguientes pasos asumen que ha iniciado sesión como usuario raíz en el shell. Si ha iniciado sesión con un usuario diferente, use el comando su (o sudo si configuró sudo) para convertirse en el usuario root.

2.2 Debian 8 (Jessie) con Apache

Habilite el módulo de encabezados de apache

a2enmod headers

Agregue un archivo de configuración global /etc/apache2/conf-disponible/httpoxy.conf. Usaré el editor nano aquí:

nano /etc/apache2/conf-available/httpoxy.conf

y pegue el siguiente contenido en ese archivo:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Guarda el archivo. Luego habilítelo en la configuración con el comando a2enconf y reinicie apache.

a2enconf httpoxy
service apache2 restart

2.2 Debian 7 (Wheezy) con Apache

Habilite el módulo de encabezados de apache:

a2enmod headers

Agregue un archivo de configuración global /etc/apache2/conf.d/httpoxy.conf. Usaré el editor nano aquí:

nano /etc/apache2/conf.d/httpoxy.conf

y pegue el siguiente contenido en ese archivo:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Guarda el archivo. Luego reinicie apache.

service apache2 restart

2.3 Debian con Nginx

El siguiente comando agregará un fastcgi_param que establece la variable HTTP_PROXY en una cadena vacía en el archivo /etc/nginx/fastcgi_params.

echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

A continuación, reinicie nginx para aplicar el cambio de configuración.

service nginx restart

3 Ubuntu

Este capítulo describe la configuración para proteger Apache y Nginx en servidores Ubuntu 14.04 - 16.04 contra HTTPOXY.

3.1 Ubuntu con Apache

Habilite el módulo de encabezados de apache.

sudo a2enmod headers

Agregue un archivo de configuración global /etc/apache2/conf-disponible/httpoxy.conf. Usaré el editor nano aquí:

sudo nano /etc/apache2/conf-available/httpoxy.conf

y pegue el siguiente contenido en ese archivo:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Guarda el archivo. Luego habilítelo en la configuración con el comando a2enconf y reinicie apache.

sudo a2enconf httpoxy
sudo service apache2 restart

3.2 Ubuntu con Nginx

Los pasos para proteger Ubuntu contra HTTPOXY son similares a los de Debian. Solo tenemos que asegurarnos de ejecutar los comandos con sudo. Este comando de eco agregará una línea fastcgi_param que establece la variable HTTP_PROXY como una cadena vacía. El archivo /etc/nginx/fastcgi_params se incluye en las secciones @PHP y cgi-bin predeterminadas de los archivos vhost de nginx y también en los vhosts creados por ISPConfig. Si agregó vhosts personalizados, verifique que contengan "include /etc/nginx/fastcgi_params;" en las secciones de configuración para php y otros conectores cgi o fastcgi.

Ejecute el siguiente comando para agregar la variable HTTP_PROXY vacía.

sudo echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

A continuación, reinicie Nginx para aplicar el cambio de configuración.

sudo service nginx restart

4 CentOS, RHEL y Fedora

Este capítulo describe la configuración para proteger Apache y Nginx en servidores CentOS contra HTTPOXY. Los mismos pasos también deberían funcionar para los servidores Fedora. Inicie sesión como usuario raíz en el shell antes de continuar con los comandos a continuación.

4.1 Apache

El archivo de configuración de Apache (httpd) en CentOS es /etc/httpd/conf/httpd.conf. Agregaré la regla de encabezado de apache al final del archivo httpd.conf con este comando:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

Luego reinicie httpd para aplicar el cambio de configuración.

service httpd restart

4.2Nginx

El servidor web Nginx en CentOS incluye fastcgi_params en la sección PHP y CGI del vhost predeterminado, por lo que podemos agregar la regla para configurar la variable HTTP_PROXY vacía allí. Ejecute este comando para agregar la variable HTTP_PROXY vacía.

echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

A continuación, reinicie nginx para aplicar el cambio de configuración.

service nginx restart

5 Prueba

Finalmente, debe probar si su servidor es seguro ahora. Luke Rehman ha desarrollado una buena herramienta de prueba en línea que se puede encontrar aquí: https://httpoxy.rehmann.co/

Introduzca la URL de su servidor o sitio web en la herramienta y haga clic en el botón "probar".

Aquí está el resultado de howtoforge.com. Como puede ver, nuestro sitio web es seguro.

6 Enlaces

  • El sitio web HTTPOXY https://httpoxy.org/
  • Gracias a Jesse por la receta de Debian 8.


Linux
  1. Cómo configurar un servidor web Apache

  2. Cómo encontrar archivos de configuración de MySQL, PHP y Apache

  3. ¿Qué es un servidor web y cómo funciona un servidor web?

  4. ¿Cómo solucionar la vulnerabilidad DROWN en el servidor web Apache/NGINX y SMTP?

  5. ¿Cómo compruebo los errores de sintaxis en la configuración de mi servidor web Apache?

Cómo alojar un sitio web en un servidor web Apache

Cómo instalar el servidor web Apache en Alpine Linux

Proteja su servidor web Apache Mejores prácticas

¿Cómo optimizar el servidor web Apache?

Cómo agregar compatibilidad con PHP-FPM en el servidor web Apache y Nginx en Ubuntu 18.04

Cómo instalar y configurar un servidor web LAMP en Ubuntu 18.04