Reverse Proxy

Man kann behaupten, dass fast jeder weiß was ein Proxy Server ist. Dabei geht es meist ja darum, dass viele Computer aus einem (meist) privaten Netzwerk über diesen in das Internet gelangen. Sei es, weil die Internetverbindung klein ist und dieser Proxy als Caching Proxy läuft, was dafür sorgt, dass viel Webinhalte zwischen gespeichert werden, oder es darum geht eine weitere Stufe für mehr Sicherheit zu schaffen.

Beim Reverse Proxy ist das fast genau so. Allerdings ist die Richtung umgekehrt. Das bedeutet, dass Zugriff von außen über den Proxy reinkommen und über ihn bpsw. ein Webserver erreicht werden soll. Gerne wird das auch für Load Balancing verwendet.

Ich zeige hier wie man einen Reverse Proxy einrichtet, um den dahinterliegenden Webserver 10.0.10.122 (Port 8080) zu erreichen. Natürlich kann der Webserver auch auf Port 80 laufen oder was auch immer der Port sein soll.

 

Bringt ein Reverse Proxy mehr Sicherheit?

Das ist eine berechtigte Frage, die sich aber nur mit einem Jain beantworten lässt. Letzendlich ist der RP auch nur ein Webserver, der als Quelle nicht die eigene Datenbank und Dateien auf der Festplatte verwendet, sondern einen anderen Webserver. Die dort bereitgestellten Informationen werden abgeholt und vom RP dann wiedergegeben.

Aber was bringt er mir dann? Ein Reverse Proxy erhöht die Sicherheit in jedem Fall, wenn/weil

Das Plus erhält man natürlich nur, wenn der RP vernünftig konfiguriert wurde gepflegt wird. Dazu gehört beispielsweise die Geschwätzigkeit des Servers in den Headern abgestellt genau so wie das schließen aller ungenutzten Ports und Aktualität der verwendeten Software, dass keine bekannten Lücken (Türen) offen sind.

 

Apache und Mods installieren

apt-get install apache2
a2enmod proxy
a2enmod proxy_html
a2enmod proxy_http
 

Apache vHost konfigurieren

Die Datei /etc/apache2/sites-available/000-default.conf anpassen, dass sie wie folgt ausschaut:

<VirtualHost *:80>
        ServerName 'KVM'
        ProxyPreserveHost On
        ProxyRequests off
        ProxyPass / 'http://10.0.10.122:8080/'
        ProxyPassReverse / 'http://10.0.10.122:8080/'
</VirtualHost>

Den Apache jetzt mit einem /etc/init.d/apache2 restart neu starten und ab jetzt sollte mit Aufruf der IP des Reverse-Proxy die Website des Server 10.0.10.122 sichtbar sein. Zum Test empfehle ich die index.html etwas anzupassen, dass man erkennt, wenn der Zugriff erfolgreich war.