Reverse Proxy mit Apache und mod_security2

Was ist ein Reverse Proxy? –> Quelle Wikipedia ;-)

Ein Proxy tritt im Falle des Reverse Proxys als vermeintliches Zielsystem in Erscheinung, wobei die Adressumsetzung dann in der entgegengesetzten Richtung vorgenommen wird und so dem Client die wahre Adresse des Zielsystems verborgen bleibt. Während ein typischer Proxy dafür verwendet werden kann, mehreren Clients seines internen (privaten – in sich geschlossenen) Netzes den Zugriff auf ein externes Netz zu gewähren, funktioniert ein Reverse Proxy genau anders herum.

reverse-proxy

Was ist ModSecurity?

ModSecurity ist eine “web application firewall” die embedded, also zum Schutz des Apache Server in dem das Modul eingebunden ist und auch als reverse proxy verwendet werden kann. ModSecurity bietet Schutz vor einer ganzen Reihe von Angriffen auf Webaplikationen und erlaubt HTTP traffic monitoring, logging und real-time Analyse.

Konfigurationsbeispiel:

ModSecurity2

ModSecurity2 muss nur installiert und als Modul (mod_security2) in die Apache Konfigurationsdatei (httpd.conf) eingebunden werden.

Reverse Proxy mit Apache

Als allererstes muss natürlich der Apache Server entsprechend konfiguriert bzw. installiert sein. Wenn Apache als reverse Proxy genutzt werden soll muss das Modul mod_proxy installiert und eingebunden sein.

Mit der nachfolgenden Konfiguration leitet der Reverse Proxy alle Anfragen an beispiel.de bzw. an 10.0.0.1 direkt an 10.0.0.33 weiter. Vor der Weiterleitung wird der Traffic durch das mod_security2 Modul geprüft. Die Konfigurationszeilen müssen am Ende der httpd.conf eingefügt werden.

<VirtualHost 10.0.0.1:80>
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ServerName beispiel.de
    DocumentRoot /var/www/beispiel.de
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass  / http://10.0.0.33/
    ProxyPassReverse / http://10.0.0.33/
    ErrorLog logs/beispiel.de_access_log
    CustomLog logs/beispiel.de_error_log combined
</VirtualHost>

Ein Reverse Proxy kann auch als Loadbalancer eingesetzt werden.

<VirtualHost 10.0.0.1:80>
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ServerName beispiel.de
    DocumentRoot /var/www/beispiel.de
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass /balancer-manager !
    ProxyPass / balancer://beispiel/
    ProxyPassReverse / http://10.0.0.33/
    ProxyPassReverse / http://10.0.0.44/
    <Proxy balancer://beispiel>
        BalancerMember http://10.0.0.33/
        BalancerMember http://10.0.0.44/
        ProxySet lbmethod=byrequests
    </Proxy>
    <Location /balancer-manager>
        SetHandler balancer-manager
    </Location>
    ErrorLog logs/beispiel.de_error_log
    CustomLog logs/beispiel.de_access_log combined
</VirtualHost>

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>