Nginx als reverse ssl proxy auf der IPFire funktioniert nicht
January 25, 2020 05:01PM
Hallo!

Mein Versuch, nginx als reverse ssl proxy auf der aktuellen IPFire zum Laufen zu bekommen, funktioniert leider nicht, obwohl ich strikt nach der Anleitung der IPFire Wiki zu "Nginx" vorgegangen bin (vgl. https://wiki.ipfire.org/nginx).

Ich habe auch schon direkt im neuen IPfire-Forum nachgefragt, erhalte aber seit über 2 Wochen keine Antwort, auch nach netter Erinnerung nicht... Daher versuche ich mein Glück nun hier.

Folgendes Ziel habe ich:

Ich möchte einen Server mit fester IP, auf dem Kolab ohne SSL läuft, über den reverse Proxy von Nginx mit SSL versorgen. Der Server steht in der DMZ des IPFire (organgene Zone) und ist über die feste IP einwandfrei von außen erreichbar.

Infrastruktur (jeweils eigenständige Geräte):

Fritz-Router ---> IPFire (Apu 4c4) ---> Server in der DMZ mit Kolab

Im Fritz-Router ist der IPFire mit allen Ports freigegeben. Die DMZ (orangene Zone) ist ebenfalls komplett offen - lediglich auf dem Server läuft eine Firewall mit iptables (natürlich mit den Ports 80 und 443 offen).

Meine configs sehen genau so aus wie in der Wiki angegeben (freilich mit der internen IP meines Servers anstelle der dort angegebenen, aber ansonsten alles genau gleich).

Funktioniert aber leider nicht.

Merkwürdige für mich: Auf der IPFire wird port 443 als "open" angezeigt solange nginx läuft; sobald ich nginx stoppe, dann verschwindet 443 (also nicht mehr offen)= nginx startet ohne Fehlermeldung und hört auf 443.

Aber wenn ich ein "nmap server-IP" (also auf die IP des Servers) absetze, dann wird port 443 stets als "closed" angezeigt. Daraus werde ich einfach nicht schlau!

Kann mir jemand einen Hinweis geben, wo mein Ansatz falsch ist? Das wäre klasse!

Herzliche Grüße,
Markus
Re: Nginx als reverse ssl proxy auf der IPFire funktioniert nicht
April 29, 2020 04:50PM
Ich habe es inzwischen selbst hinbekommen:

1.) Auf einem RaspberryPi4 habe ich Nginx installiert und mit Certbot ein multiples Zertifikat für die Domänen, die in der DMZ angesprochen werden sollen, erstellt. Dieser Nginx-Server nimmt alle Anfragen an Domänen in der DMZ an und leitet sie als Proxy weiter an die betreffenden Server, weshalb jetzt alle Webseiten dahinter SSL-Verschlüsselung (https) qua Zertifikat des Raspi4 besitzen.

2.) Im Nginx-Server habe ich die Direktive "upstream" benutzt, um auf die internen IPs zu verweisen, an welche die Anfragen weitergeleitet werden sollen. Die Unterscheidung läuft dabei sinngemäß so:

https://domain_01.tld/service_01 -> upstream "server01"= 192.168.1.30
https://domain_01.tld/service_02 -> upstream "server02"= 192.168.1.31
https://domain_01.tld/service_03 -> upstream "server03"= 192.168.1.32
https://domain_02.tld/service_01 -> upstream "server04"= 192.168.100.1
https://domain_03.tld/service_01 -> upstream "server02"= 192.168.1.31

Das ist jetzt nicht die Syntax, aber grob das Prinzip, wie man damit verschiedene interne IPs ansprechen kann. domain_nr bzw. service_nr stehen dabei für Domänennamen (wie z.B. meinedomain.de) und Servicenamen (wie z.B. roundcubemail).

3.) Im IPFire-Router muss natürlich die Firewall so eingestellt sein, dass der Nginx-Server direkt zu erreichen ist. Und der Nginx-Server muss mit den anderen Servern kommunizieren können, d.h. auch hier müssen entsprechende Firewall-Regeln erstellt werden.
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 117
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready