GNU/Linux >> Tutoriels Linux >  >> Linux

Vulnérabilité HTTPOXY :comment protéger et tester votre serveur Web

La vulnérabilité HTTPOXY qui a été découverte récemment est une vulnérabilité qui affecte les applications qui s'exécutent dans des environnements cgi ou de type cgi. Cela signifie que le problème affecte presque tous les serveurs Web, y compris Apache et Nginx, ainsi que la plupart des applications PHP. Même le mode mod_php sur apache est affecté.

Ce tutoriel vous montrera comment protéger votre serveur Web de HTTPOXY. Il contient des sections pour les distributions Linux CentOS + RHEL, Debian et Ubuntu les plus utilisées. Les étapes peuvent également être appliquées à d'autres distributions Linux, mais les chemins d'accès aux fichiers de configuration peuvent différer.

Une description détaillée de la vulnérabilité HTTPOXY peut être trouvée sur ce site https://httpoxy.org/.

Les étapes décrites dans ce didacticiel sont compatibles avec les didacticiels de serveur parfait ISPConfig.

1 Comment HTTPOXY affecte-t-il mon serveur ?

HTTPOXY affecte les clients qui honorent la variable HTTP_PROXY et l'utilisent pour leur configuration de proxy et les applications côté serveur qui utilisent HTTP_PROXY comme variable réelle ou émulée dans leur environnement. Le résultat d'une attaque peut être un trafic transmis par proxy par l'application Web à un système cible choisi par l'attaquant ou l'application ouvre des connexions sortantes vers d'autres systèmes. La vulnérabilité est facilement exploitable à distance et les serveurs peuvent être scannés pour cela, il est donc fortement recommandé de prendre des mesures pour la fermer sur votre serveur.

1.1 Solution générale

La solution recommandée pour le moment consiste à désactiver ou à filtrer la variable d'en-tête HTTP_PROXY. Cela se fait dans apache avec le module mod_headers et cette instruction de configuration :

RequestHeader unset Proxy early

Sur Nginx, vous pouvez utiliser cette ligne pour désactiver la variable HTTP_PROXY.

fastcgi_param HTTP_PROXY "";

Le chapitre suivant décrit la procédure détaillée pour différentes distributions Linux.

2 Debian

Ce chapitre décrit la configuration pour protéger Apache et Nginx sur les serveurs Debian 8 (Jessie) et Debian 7 (Wheezy) contre HTTPOXY. Les étapes suivantes supposent que vous êtes connecté en tant qu'utilisateur root sur le shell. Si vous êtes connecté sous un autre utilisateur, utilisez la commande su (ou sudo si vous avez configuré sudo) pour devenir l'utilisateur root.

2.2 Debian 8 (Jessie) avec Apache

Activer le module d'en-têtes apache

a2enmod headers

Ajoutez un fichier de configuration global /etc/apache2/conf-available/httpoxy.conf. Je vais utiliser l'éditeur nano ici :

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

et collez le contenu suivant dans ce fichier :

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

Enregistrez le fichier. Activez-le ensuite dans la configuration avec la commande a2enconf et redémarrez apache.

a2enconf httpoxy
service apache2 restart

2.2 Debian 7 (Wheezy) avec Apache

Activez le module d'en-têtes apache :

a2enmod headers

Ajoutez un fichier de configuration global /etc/apache2/conf.d/httpoxy.conf. Je vais utiliser l'éditeur nano ici :

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

et collez le contenu suivant dans ce fichier :

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

Enregistrez le fichier. Redémarrez ensuite apache.

service apache2 restart

2.3 Debian avec Nginx

La commande suivante ajoutera un fastcgi_param qui définit la variable HTTP_PROXY sur une chaîne vide dans le fichier /etc/nginx/fastcgi_params.

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

Redémarrez ensuite nginx pour appliquer la modification de configuration.

service nginx restart

3 Ubuntu

Ce chapitre décrit la configuration pour protéger Apache et Nginx sur les serveurs Ubuntu 14.04 - 16.04 contre HTTPOXY.

Ubuntu 3.1 avec Apache

Activez le module d'en-têtes apache.

sudo a2enmod headers

Ajoutez un fichier de configuration global /etc/apache2/conf-available/httpoxy.conf. Je vais utiliser l'éditeur nano ici :

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

et collez le contenu suivant dans ce fichier :

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

Enregistrez le fichier. Activez-le ensuite dans la configuration avec la commande a2enconf et redémarrez apache.

sudo a2enconf httpoxy
sudo service apache2 restart

Ubuntu 3.2 avec Nginx

Les étapes pour protéger Ubuntu contre HTTPOXY sont similaires à celles de Debian. Nous devons juste nous assurer d'exécuter les commandes avec sudo. Cette commande echo ajoutera une ligne fastcgi_param qui définit la variable HTTP_PROXY comme une chaîne vide. Le fichier /etc/nginx/fastcgi_params est inclus dans les sections @PHP et cgi-bin par défaut des fichiers vhost nginx ainsi que dans les vhosts créés par ISPConfig. Si vous avez ajouté des vhosts personnalisés, vérifiez qu'ils contiennent "include /etc/nginx/fastcgi_params ;" dans les sections de configuration pour php et d'autres connecteurs cgi ou fastcgi.

Exécutez la commande suivante pour ajouter la variable HTTP_PROXY vide.

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

Redémarrez ensuite Nginx pour appliquer la modification de configuration.

sudo service nginx restart

4 CentOS, RHEL et Fedora

Ce chapitre décrit la configuration pour protéger Apache et Nginx sur les serveurs CentOS contre HTTPOXY. Les mêmes étapes devraient également fonctionner pour les serveurs Fedora. Connectez-vous en tant qu'utilisateur root sur le shell avant de poursuivre avec les commandes ci-dessous.

Apache 4.1

Le fichier de configuration Apache (httpd) sur CentOS est /etc/httpd/conf/httpd.conf. Je vais ajouter la règle d'en-tête apache à la fin du fichier httpd.conf avec cette commande :

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

Redémarrez ensuite httpd pour appliquer le changement de configuration.

service httpd restart

4.2 Nginx

Le serveur Web Nginx sur CentOS inclut les fastcgi_params dans la section PHP et CGI du vhost par défaut, nous pouvons donc ajouter la règle pour y définir la variable HTTP_PROXY vide. Exécutez cette commande pour ajouter la variable HTTP_PROXY vide.

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

Redémarrez ensuite nginx pour appliquer la modification de configuration.

service nginx restart

5 tests

Enfin, vous devriez tester si votre serveur est sûr maintenant. Luke Rehman a développé un bel outil de test en ligne qui peut être trouvé ici : https://httpoxy.rehmann.co/

Entrez l'URL de votre serveur ou site Web dans l'outil et cliquez sur le bouton "tester".

Voici le résultat pour howtoforge.com. Comme vous pouvez le constater, notre site Web est sécurisé.

  • Le site Web HTTPOXY https://httpoxy.org/
  • Merci à Jesse pour la recette Debian 8.


Linux
  1. Comment configurer un serveur Web Apache

  2. Qu'est-ce qu'un serveur Web et comment fonctionne un serveur Web ?

  3. Comment réparer la vulnérabilité DROWN dans le serveur Web Apache/NGINX et SMTP ?

  4. Comment installer le serveur Web Apache sur Ubuntu

  5. Comment protéger Apache et SSH avec Fail2Ban sur CentOS 8

Comment héberger un site Web sur un serveur Web Apache

Comment installer le serveur Web Apache sur Alpine Linux

Meilleures pratiques pour sécuriser votre serveur Web Apache

Comment optimiser le serveur Web Apache ?

Comment ajouter la prise en charge de PHP-FPM sur Apache et Nginx Web Server sur Ubuntu 18.04

Comment installer et configurer un serveur Web LAMP sur Ubuntu 18.04