Zurück
Featured image of post nginx IP Redirect blockieren

nginx IP Redirect blockieren

nginx leitet standardmäßig alle Anfragen an die IP-Adresse des nginx Reverse Proxy Servers weiter. Mit der folgenden Anleitung kann das behoben werden

Diese Anleitung setzt voraus, dass du bereits nginx auf einem Server installiert und eingerichtet hast.

Die IP-Adressen und Websitenamen in diesem Artikel sind rein fiktiv und dienen nur der Veranschaulichung!

Voraussetzung

Schauen wir uns zuerst die Voraussetzung an. Nehmen wir an, du hast deinen Reverse Proxy intern unter der IP-Adresse ‘192.168.2.5’ aufgesetzt und ihn extern unter der IP-Adresse ‘160.25.100.4’.

Du hast den Server so konfiguriert, dass er alle Anfragen unter “blog.pietstech.eu” (und zwar nur unter dieser Adresse) zu einem anderen Webserver weiterleiten soll. Ruft man deinen Reverse Proxy direkt über die IP auf, so soll eine Fehlermeldung angezeigt werden bzw. der Benutzer nicht an deinen Webserver weitergeleitet werden.

Problem

Wenn du deinen Server testest, wirst du merken, dass er nicht nur die Besucher von “blog.pietstech.eu” weiterleitet, sondern auch die, die deinen Server über seine IP-Adresse “160.25.100.4” aufrufen. Dies ist eine Standardkonfiguration von nginx und muss speziell deaktiviert werden!

Lösung

Die Lösung besteht darin, alle Anfragen, die an die IP-Adresse des Servers gesendet werden, zu blockieren und einen Fehler 404 zurückzugeben.

Verbinde dich dazu auf deinen Reverse Proxy und navigiere in das Verzeichnis, indem die nginx Konfiguration liegt. Der Standardpfad unter Ubuntu ist “/etc/nginx/”. In diesem Verzeichnis sollte es einen Ordner namens “conf.d” geben. Wechsel zum Ordner und erstelle eine neue Datei.

nano BeliebigerDateiname.conf

Port 80 Redirect blockieren

Füge anschließend folgenden Inhalt in deine Datei ein:

server {
	listen 80;
	server_name 192.168.2.5;
	redirect 404;
}

server {
	listen 80;
	server_name 160.25.100.4;
	redirect 404;
}

Schauen wir uns den Code einmal genauer an.

Der erste Block lauscht auf alle Anfragen unter Port 80, die an die interne IP unseres Servers geleitet werden. Anschließend werden diese Anfragen an einen 404 Error weitergeleitet.

Der zweite Block funktioniert genauso, nur das hier die externe IP-Adresse des Reverse Proxies eingetragen ist.

Port 443 Redirect blockieren

Möchstest du auch Port 443 (SSL/HTTPS) einschließen, musst du den Code um folgenden Bereich erweitern:

server {
	listen 80;
	listen 443;
	server_certificate <Pfad zu deinem Zertifikat>;
	server_certificate_key <Pfad zu deinem Private Key>;
	server_name 192.168.2.5;
	redirect 404;
}

server {
	listen 80;
	listen 443;
	server_certificate <Pfad zu deinem Zertifikat>;
	server_certificate_key <Pfad zu deinem Private Key>;
	server_name 160.25.100.4;
	redirect 404;
}

nginx überprüfen und neustarten

Anschließend kannst du nginx auf Konfigurationsfehler überprüfen.

nginx -t

Wenn alles OK ist und keine Fehler gefunden wurden, musst du nur noch nginx neustarten, damit deine Änderung auch greift.

nginx -s reload
Licensed under CC BY-NC-ND 4.0