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é.
6 liens
- Le site Web HTTPOXY https://httpoxy.org/
- Merci à Jesse pour la recette Debian 8.