Einen Reverse Proxy einrichten

(Last Updated On: 23. September 2016)

Was ist ein Reverse Proxy?

Ein Reverse proxy ist ein Serverdienst, der alle eingehenden Clientanfragen für andere Serverdienste annimmt. Diese anderen Serverdienste können enwteder auf dem selben physikalischen Rechner sein wie der Reverse proxy – oder auf anderen physikalischen Rechnern. DEr Reverse Proxy nimmt die Clientanfragen für diese verschiedenen Serverdienste stelltvertrend für diese an und leitet sie dann an die jeweiligen Serverdienste weiter. Ein Reverse Proxy funktioniret dabei ähnlcih wie Ihr DSL-Router zu Hause, bei welchem Sie ein port-forwarding einrichten: Nur Verbindungen auf Ports, die Sie weiterleiten, kommen bei den anderen Servern im Netzwerk letztendlich an.

Dies birgt für den Administrator des Servers einige Vorteile:

  • wenn der Serverdienst, den ein Client ursprünglich anfragen möchte, nicht auf dem selben Rechner läuft wie der reverse Proxy, dann bleibt die eigentliche IP-adresse des Servers für den Client verborgen. Der client kennt nur die IP-Adresse des reverse Proxys.
  • Der Reverse Proxy kann einen ähnlichen Sicherheitsmechanismus bieten wie ein DSL-Router in unserem Heimnetzwerk: Die Server hinter dem Reverse Proxy können nur auf den Ports erreicht werden, die der reverse proxy an diese besonders schützenswerten Server weiterleitet.  Nehmenw ir mal beispielsweise an, auf einem Server läuft ein Samba-Dienst, der für das lokale Netzwerk Dateien und Drucker freigeben soll, und ein FTP-Server, der bestimmte Dateien nach außen über das Internet freigeben soll. Ohne einen Reverse Proxy und ohne eine sonst wie eingerichtete Firewall könnte sich ein Außenstehender auf beide Dienste verbinden – FTP udn Samba Server. Ist der Samba Server schlecht konfiguriert oder ist knackt der außenstehende das Passwort eines Samba-Benutzers, kann er auf alle Dateien zurgeifen, die eigentlich nur für das lokale Netzwerk bestimmt wären. Mit Hilfe eines reverse proxies kann konfiguriert werden, dass nur der Port für den FTP-Dienst durchgelassen wird, und alle Clientanfragen auf den SAmba-Port eben nicht.
  • Es ist damit auch möglich, beispielsweise nur den Zugriff auf bestimmte URLs zuzulassen. Wenn Sie beispielsweise nur von ihrem lokalen Netzwerk aus die Adresse http://ihrwordpressblog.com/wp-admin aufrufen wollen, weil das das Administrationscockpit ist, können Sie den Zugriff für alle Außenstehenden durch einen Reverse Proxy abschalten.
  • der reverse Proxy kann außerdem dazu genutzt werden, um Antworten auf bestimmte Clientanfragen auf einen Webserver zu cachen. Wenn beispielsweise der Reverse Proxy dazu eingerichtet wird, um Clientanfragen auf einen Webserver weiterzuleiten, dann können häufig gestellte Anfragen an den Webserver durch den Reverse Proxy gecached werden. Frägt ein Client nun eine Website an, die bereits von vielen anderen Nutzern zuvor angeragt wurde, dann leitet der reverse Proxy die Anfrage gar nicht erst an den Webserver weiter, sondern beantwortet sie gleich selbst aus seinem Cache heraus. Das schotn den webserver, da dieser nicht mehr so viel Anfragelast verarbeiten muss. Diese Konfiguration eines reverse proxy nennt man HTTP Accelerator oder Surrogate Proxy.
  • ein Reverse Proxy kann auch zum Single Sign On für mehrere Webserver genutzt werden.  Ein nutzer bruacht sich nur einmal am Reverse Proxy anmelden und kann dann dei Dienste mehrerer Webserver nutzen.
  • es ist möglich, den Webserver selbst ohne SSL-Verschlüsselung zu konfigurieren und das SSL-zeritfikat stattdessen auf dem reverse Proxy zu installieren. Der Datenverkehr vom Reverse Proxy zum Webserver wird nicht verschlüsselt, aber der Datenverkehr vom Reverse proxy zum Client. Das birgt einige Vorteile
    • der webserver wird nicht so stark belastet, da er sich nicht um die SSL-Verschlüsselung kümmern muss
    • der Reverse Prox kann mit spezieller kryptografischer Beschleunigungshardware ausgestattet werden, um die SSL-Verschlüsselung zu beschleunigen, ohne dadurch die Rechenleistung des Webservers beeinträchtigen zu müssen
    • der reverse Proxy kann immer noch dei Webinhalte des webservers cachen, was bei SSL-Verschlüsselung nicht mehr möglich wäre.
  • der Reverse Proxy kann Clientanfragen auf mehrere Server verteilen. So aknn amn beispielsweise die selbe Website auf mehreren Servern installieren. Der reverse Proxy schreibt dann die URL immer so um, dass bei jeder Clientanfrage ein anderer Webserver genommen wird. So wird bei der ersten Anfrage beispielsweise der Webserver www1.<IhrName>.com genommen, bei der zweiten www2.<ihrName>.com
  • man kann einen Reverse Proxy auch so verwenden, dass amn seine Clientanfragen an fremde Serverdienste über den Reverse Proxy weitereleitet, so dass der fremde Server denkt,d ie Anfrage kommt von der IP-Adrese des Reverse Proxys.

Apache Webserver als Weiterleitungs-/Cache-Proxy

In diesem Sezanrio werden wir Apache als Reverse Proxy konfigurieren, um über ihn Anfragen an andere Server im lokalen Netzwerk weiterzuleiten.

Installation

aptitude update
aptitude -y upgrade
aptitude install -y build-essential
aptitude install -y libapache2-mod-proxy-html lixbml2-devb
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html

Jeztt bearbeiten wir dei Datei /etc/apache2/sites-enabled/000-default.conf

Beispiel: Nehemn wir an unser Reverse Proxy läuft unter dafrk-blog.com und wir wollen, dass er Anfragen an http://dafrk-blog.com/forum an den webserver, auf welchem ein forum läuft, weiterleitet. dieser server liegt im lokalen Netzwerk des reverse proxys und hat dort den Hostnamen forummaster, und das Forum liegt dort unter /var/www/board. Wr wollen also Anfragen an http://dafrk-blog.com /forum weiterleiten an http://forummaster/board. Dann sähe der Eintrag dazu folgendermaßen aus

<VirtualHost dafrk-blog.com:*>
ProxyPreserverHost On
ProxyPass /forum http://forummaster/board
ProxyPassreverse /forum http://forummaster/board
ServerName dafrk-blog.com
</VirtualHost>

Apache Webserver als Load Balancing Reverse Proxy

In unserem näcshten Szenario wollen wir den apache so konfigurieren, dass er Anfragen auf dafrk-blog.com:80/ zum Lastausgleich auf zwei verschiedene Webserver aufteilt. Der eine Webserver läuft im lokalen Netzwerk unte rder Ip-Adresse 192.168.1.1:8080, der andere unter 192.168.1.2:8081

Dazu beareiten wir wieder die /etc/apache2/sites-enabled/000-defualt.conf und fügen Einträge in diesme Format ein

<Proxy balancer://mycluster>
BalancerMember http://192.168.1.1:8080/
BalancerMember http://192.168.1.2:8081/
</Proxy>

<VirtualHost dafrk-blog.com:80>
ProxyPass / balancer://mycluster
</VirtualHost>

 

 

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

DaFRK

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

Das könnte Dich auch interessieren …

1 Antwort

  1. Jan sagt:

    Die Konfiguration nach dieser Anleitung hat wunderbar funktioniert!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.