Tutorial: Apache Reverse Proxy aufsetzen | Debian
Hi,
hier ein kleines Tutorial, das zeigt, wie man ganz einfach Apache als Reverse-Proxy aufsetzt.
Da hier viele danach gesucht haben und auch Noobs ein Recht auf Sicherheit haben, werde ich es mit euch teilen. :P
Los gehts:
1.) apt install apache2
2.) a2enmod proxy
3.) a2enmod proxy_http
4.) a2dissite 000-default.conf
5.) service apache2 reload
Damit hat man Apache2 installiert und die Module Proxy und Proxy_http geladen und die Standard Website "entladen".
Dann folgende Datei anlegen (in meinem Fall heißt sie "reverseproxy.conf":
1.) nano /etc/apache2/sites-available/reverseproxy.conf
Folgendes in die reverseproxy.conf einfügen:
Code:
<VirtualHost *:80>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ServerName domain.tld #<----- Die Seitendomain
ServerAlias www.domain.tld #<----- Die Seitendomain
ServerAdmin [email protected]
ProxyPreserveHost On
ProxyPass / http://xxx.xxx.xxx.xxx/ #<----- Die IP vom Backend-Server, wo die Seite drauf liegt
ProxyPassReverse / http://xxx.xx.xxx.xxx/ #<----- Die IP zum Backend-Server, wo die Seite drauf liegt
</VirtualHost>
Dann die ganze Sache noch laden (mit a2ensite) und den Apache neu laden:
1.) a2ensite reverseproxy.conf
2.) service apache2 reload
Apache neu starten.
Sollte jetzt soweit funktionieren.
Dann kann man noch Let's Encrypt installieren, wenn man will, damit die Domain SSL verschlüsselt ist:
1.) apt-get remove certbot
2.) wget https://dl.eff.org/certbot-auto --no-check-certificate
3.) mv certbot-auto /usr/local/bin/certbot-auto
4.) chown root /usr/local/bin/certbot-auto
5.) chmod 0755 /usr/local/bin/certbot-auto
Und dann noch folgendes, um die Zertifikate zu erstellen:
1.) /usr/local/bin/certbot-auto --apache
Automatisches Update der Zertifikate:
1.) echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew" | sudo tee -a /etc/crontab > /dev/null
Fertig.
Damit die originalen IPs und nicht die des Proxys an das Backend geschickt werden, noch folgendes:
Mod_remoteip aktivieren:
1.) a2enmod remoteip
Dann die Datei "remoteip.conf" anlegen:
1.) nano /etc/apache2/conf-available/remoteip.conf
Folgendes in die remoteip.conf einfügen:
Code:
RemoteIPHeader X-Forwarded-For
Config laden:
1.) a2enconf remoteip.conf
2.) service apache2 reload
Dann noch die "00_nameserver.conf" ändern:
1.) nano /etc/apache2/sites-enabled/00_nameserver.conf
Folgendes:
Code:
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" vlogger
Ersetzen mit:
Code:
LogFormat "%v %a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" vlogger
Apache neu starten.
Fertig.
Die Reverse-Proxy-Server-IP muss natürlich via A-Record auf die Domain zeigen.
Verbesserungsvorschläge sind gerne gesehen. :)
Gruß
Alexej