GNU/Linux >> LINUX-Kenntnisse >  >> Linux

HTTPOXY-Schwachstelle:So schützen und testen Sie Ihren Webserver

Die kürzlich gefundene HTTPOXY-Schwachstelle ist eine Schwachstelle, die Anwendungen betrifft, die in CGI- oder CGI-ähnlichen Umgebungen ausgeführt werden. Das bedeutet, dass das Problem fast alle Webserver betrifft, einschließlich Apache und Nginx und auch die meisten PHP-Anwendungen. Sogar der mod_php-Modus auf Apache ist betroffen.

Dieses Tutorial zeigt Ihnen, wie Sie Ihren Webserver vor HTTPOXY schützen. Es enthält Abschnitte für die am häufigsten verwendeten Linux-Distributionen CentOS + RHEL, Debian und Ubuntu. Die Schritte können auch auf andere Linux-Distributionen angewendet werden, aber die Pfade zu den Konfigurationsdateien können abweichen.

Eine detaillierte Beschreibung der HTTPOXY-Schwachstelle finden Sie auf dieser Website https://httpoxy.org/.

Die in dieser Anleitung beschriebenen Schritte sind mit den ISPConfig Perfect Server-Anleitungen kompatibel.

1 Wie wirkt sich HTTPOXY auf meinen Server aus?

HTTPOXY wirkt sich auf Clients aus, die die HTTP_PROXY-Variable berücksichtigen und für ihre Proxykonfiguration und serverseitige Anwendungen verwenden, die HTTP_PROXY als echte oder emulierte Variable in ihrer Umgebung verwenden. Das Ergebnis eines Angriffs kann Traffic sein, der von der Webanwendung an ein vom Angreifer ausgewähltes Zielsystem weitergeleitet wird, oder die Anwendung öffnet ausgehende Verbindungen zu anderen Systemen. Die Schwachstelle ist leicht aus der Ferne ausnutzbar und Server können danach gescannt werden, daher wird dringend empfohlen, Maßnahmen zu ergreifen, um sie auf Ihrem Server zu schließen.

1.1 Allgemeine Lösung

Die derzeit empfohlene Lösung besteht darin, die Header-Variable HTTP_PROXY aufzuheben oder zu filtern. Dies geschieht in Apache mit dem Modul mod_headers und dieser Konfigurationsanweisung:

RequestHeader unset Proxy early

Auf Nginx können Sie diese Zeile verwenden, um die HTTP_PROXY-Variable zu deaktivieren.

fastcgi_param HTTP_PROXY "";

Das nächste Kapitel beschreibt die detaillierte Vorgehensweise für verschiedene Linux-Distributionen.

2 Debian

Dieses Kapitel beschreibt die Konfiguration zum Schutz von Apache und Nginx auf Debian 8 (Jessie)- und Debian 7 (Wheezy)-Servern vor HTTPOXY. Die nächsten Schritte gehen davon aus, dass Sie als Root-Benutzer auf der Shell angemeldet sind. Wenn Sie unter einem anderen Benutzer angemeldet sind, verwenden Sie den Befehl su (oder sudo, wenn Sie sudo konfiguriert haben), um der Root-Benutzer zu werden.

2.2 Debian 8 (Jessie) mit Apache

Aktivieren Sie das Apache-Header-Modul

a2enmod headers

Fügen Sie eine globale Konfigurationsdatei /etc/apache2/conf-available/httpoxy.conf hinzu. Ich werde den Nano-Editor hier verwenden:

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

und fügen Sie den folgenden Inhalt in diese Datei ein:

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

Speicher die Datei. Aktivieren Sie es dann in der Konfiguration mit dem Befehl a2enconf und starten Sie Apache neu.

a2enconf httpoxy
service apache2 restart

2.2 Debian 7 (Wheezy) mit Apache

Aktivieren Sie das Apache-Header-Modul:

a2enmod headers

Fügen Sie eine globale Konfigurationsdatei /etc/apache2/conf.d/httpoxy.conf hinzu. Ich werde den Nano-Editor hier verwenden:

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

und fügen Sie den folgenden Inhalt in diese Datei ein:

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

Speicher die Datei. Starten Sie dann Apache neu.

service apache2 restart

2.3 Debian mit Nginx

Der folgende Befehl fügt der Datei /etc/nginx/fastcgi_params einen fastcgi_param hinzu, der die HTTP_PROXY-Variable auf eine leere Zeichenfolge setzt.

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

Starten Sie dann nginx neu, um die Konfigurationsänderung zu übernehmen.

service nginx restart

3 Ubuntu

Dieses Kapitel beschreibt die Konfiguration zum Schutz von Apache und Nginx auf Ubuntu 14.04–16.04-Servern vor HTTPOXY.

3.1 Ubuntu mit Apache

Aktivieren Sie das Apache-Header-Modul.

sudo a2enmod headers

Fügen Sie eine globale Konfigurationsdatei /etc/apache2/conf-available/httpoxy.conf hinzu. Ich werde den Nano-Editor hier verwenden:

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

und fügen Sie den folgenden Inhalt in diese Datei ein:

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

Speicher die Datei. Aktivieren Sie es dann in der Konfiguration mit dem Befehl a2enconf und starten Sie Apache neu.

sudo a2enconf httpoxy
sudo service apache2 restart

3.2 Ubuntu mit Nginx

Die Schritte zum Schutz von Ubuntu vor HTTPOXY ähneln denen für Debian. Wir müssen nur sicherstellen, dass die Befehle mit sudo ausgeführt werden. Dieser echo-Befehl fügt eine fastcgi_param-Zeile hinzu, die die HTTP_PROXY-Variable als leere Zeichenfolge festlegt. Die Datei /etc/nginx/fastcgi_params ist in den standardmäßigen @PHP- und cgi-bin-Abschnitten der nginx vhost-Dateien und auch in vhosts enthalten, die von ISPConfig erstellt werden. Wenn Sie benutzerdefinierte vhosts hinzugefügt haben, überprüfen Sie, ob sie „include /etc/nginx/fastcgi_params;“ enthalten. in den Konfigurationsabschnitten für PHP und andere cgi- oder fastcgi-Connectors.

Führen Sie den folgenden Befehl aus, um die leere HTTP_PROXY-Variable hinzuzufügen.

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

Starten Sie dann Nginx neu, um die Konfigurationsänderung zu übernehmen.

sudo service nginx restart

4 CentOS, RHEL und Fedora

Dieses Kapitel beschreibt die Konfiguration zum Schutz von Apache und Nginx auf CentOS-Servern vor HTTPOXY. Die gleichen Schritte sollten auch für Fedora-Server funktionieren. Melden Sie sich als Root-Benutzer auf der Shell an, bevor Sie mit den folgenden Befehlen fortfahren.

4.1 Apache

Die Apache (httpd)-Konfigurationsdatei auf CentOS ist /etc/httpd/conf/httpd.conf. Ich werde die Apache-Header-Regel am Ende der httpd.conf-Datei mit diesem Befehl hinzufügen:

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

Starten Sie dann httpd neu, um die Konfigurationsänderung zu übernehmen.

service httpd restart

4.2 Nginx

Der Nginx-Webserver auf CentOS fügt die fastcgi_params in den PHP- und CGI-Abschnitt des Standard-vhost ein, sodass wir die Regel hinzufügen können, um dort die leere HTTP_PROXY-Variable festzulegen. Führen Sie diesen Befehl aus, um die leere HTTP_PROXY-Variable hinzuzufügen.

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

Starten Sie dann nginx neu, um die Konfigurationsänderung zu übernehmen.

service nginx restart

5 Test

Abschließend sollten Sie testen, ob Ihr Server jetzt sicher ist. Luke Rehman hat ein nettes Online-Testtool entwickelt, das hier zu finden ist: https://httpoxy.rehmann.co/

Geben Sie die URL zu Ihrem Server oder Ihrer Website in das Tool ein und klicken Sie auf die Schaltfläche „Testen“.

Hier ist das Ergebnis für howtoforge.com. Wie Sie sehen, ist unsere Website sicher.

  • Die HTTPOXY-Website https://httpoxy.org/
  • Danke an Jesse für das Debian 8-Rezept.


Linux
  1. So konfigurieren Sie einen Apache-Webserver

  2. So finden Sie MySQL-, PHP- und Apache-Konfigurationsdateien

  3. So starten, starten und stoppen Sie den Apache-Webserver

  4. So schützen Sie Apache und SSH mit Fail2Ban unter CentOS 8

  5. Wie überprüfe ich meine Apache-Webserverkonfiguration auf Syntaxfehler?

So hosten Sie eine Website auf einem Apache-Webserver

So installieren Sie den Apache-Webserver unter Alpine Linux

Sichern Sie Ihren Apache-Webserver Best Practice

Wie optimiere ich den Apache-Webserver?

So fügen Sie PHP-FPM-Unterstützung auf Apache und Nginx-Webserver auf Ubuntu 18.04 hinzu

So installieren und konfigurieren Sie einen LAMP-Webserver unter Ubuntu 18.04