[Problem] OpenWrt: Firewall mit DMZ ohne NAT möglich?

Fischers Freetz

Mitglied
Mitglied seit
16 Jun 2008
Beiträge
327
Punkte für Reaktionen
1
Punkte
18
Hallo!

In einem anderen Thema [1] hatte ich schon mal angefragt, aber ich verlege meine Frage mal hierhin, das scheint mir angebrachter zu sein. Wäre schön, wenn mir jemand helfen könnte, denn ich komme da alleine nicht weiter.

Ich möchte gerne mit OpenWrt eine Firewall mit DMZ einrichten. Das funktioniert soweit auch, und sieht so aus:


DMZ
|
TP (OpenWrt) - FritzBox - Internet
|
LAN

Die FB ist dabei die Zone WAN für den TP.

Nach vielen Versuchen habe ich das mit den VLAN hinbekommen: auf dem TP sind u.a. 2 VLAN definiert für DMZ und LAN, und Zugriffe sind entsprechend geregelt: LAN darf auf DMZ zugreifen, aber nicht umgekehrt, und, ganz wichtig: die DMZ hat keinen Zugriff auf die FB! In der FB gibt es eine Portweiterleitung direkt zum Server in der DMZ. Dank eines Eintrags für die statische Route findet die FB den Server auch im anderen Subnetz.

Jetzt habe ich noch ein kleines Problem: in der DMZ läuft ein Service, der darauf angewiesen ist, daß er die *ursprüngliche* IP des Benutzers sieht. Damit meine Firewall-Konstruktion aber funktioniert, muss ich auf dem OpenWrt-Router aber NAT aktivieren, und damit sieht der Server in der DMZ immer die IP seines VLAN-Gateway (3.3.3.1). Deaktiviere ich das NAT, egal auf welcher Regel, und sei es nur auf der Regel "DMZ <-> WAN", sieht die DMZ zwar die richtige IP von außen, aber mein LAN kommt nicht mehr ins WAN.

Irgend etwas habe ich da noch nicht richtig verstanden. :( Wäre schön, wenn mir jemand aus der Misere hilft.

Die /etc/config/network auf dem TP sieht so aus:

Code:
config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'wan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '1.1.1.2'
        option ifname 'eth0'
        option metric '1'
        option gateway '1.1.1.1'
        option dns '1.1.1.1'

config interface 'lan'
        option type 'bridge'
        option proto 'static'
        option ifname 'eth1.2'
        option ipaddr '2.2.2.1'
        option netmask '255.255.255.0'

config interface 'dmz'
        option ifname 'eth1.3'
        option type 'bridge'
        option proto 'static'
        option ipaddr '3.3.3.1'
        option netmask '255.255.255.0'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan 'eth1_2'
        option device 'switch0'
        option vlan '2'
        option ports '0t 2'

config switch_vlan 'eth1_3'
        option device 'switch0'
        option vlan '3'
        option ports '0t 3'

Und die /etc/config/firewall:

Code:
config defaults
        option syn_flood '1'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'wan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option network 'wan'

config zone
        option name 'dmz'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option network 'dmz'
        option forward 'REJECT'
        option masq '1'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option network 'lan'
        option forward 'REJECT'
        option masq '1'

config forwarding
        option dest 'wan'
        option src 'dmz'

config forwarding
        option dest 'dmz'
        option src 'wan'

config forwarding
        option dest 'dmz'
        option src 'lan'


config forwarding
        option dest 'wan'
        option src 'lan'


[1] http://www.ip-phone-forum.de/showthread.php?t=263708
 
Noch nie die Kombination versucht... wie schaltest Du NAT aus? masq auf 0?

Wenn Du NAT deaktivierst brauchst Du auf jeden Fall eine Weiterleitungsregel.
 
Noch nie die Kombination versucht... wie schaltest Du NAT aus? masq auf 0?

Och, das ist einfach: einfach das Häkchen entfernen. ;)

Auf der Web-Oberfläche unter "Firewall: allgemeine Einstellungen". Dort gibt es hinter jeder Zonenregel zwei Optionsn: NAT und MSS-Korrektur.

Wenn Du NAT deaktivierst brauchst Du auf jeden Fall eine Weiterleitungsregel.

Das ist logisch, aber genau das ist der schwierige Teil: aber ich habe einige Dutzend Weiterleitungsregeln ausprobiert, und nichts hat funktioniert. Logisch betrachtet müsste eine Weiterleitungsregel für den Port 443 vom Rechner im LAN (2.2.2.2) zum Server in der DMZ (3.3.3.3) reichen. Aber: die Pakete kommen nicht an. Tracepath endet an der IP des VLAN auf dem TP (3.3.3.1). Gleichzeitig kann ich aber, wenn ich per SSH auf dem TP angemeldet bin, den Server in der DMZ ansprechen. Genau genommen findet also ohne NAT keine Weiterleitung der Pakete von 3.3.3.1 nach 3.3.3.3 statt, obwohl es keine Regel gibt, die das verbietet. Und das ist der Punkt, an dem ich nicht weiterkomme.
 
Geschafft! :)

So, habe eine Lösung des Problems gefunden: "Source NAT"

Unter "Firewall, Verkehrsregeln" gibt es unten auf der Seite die Option "Source NAT". Dort habe ich eine Regel erstellt, die besagt, daß bei Zugriff von 2.2.2.2 (mein PC) auf 3.3.3.3 (DMZ-Server) die IP auf 3.3.3.1 umgeschrieben wird. Damit funktioniert es: jetzt kann mein LAN, genau genommen *nur* mein PC¹, auf den DMZ-Server zugreifen und gleichzeitig wird die IP bei Zugriff von außen *nicht* mehr umgeschrieben, so daß der Server die externe IP des Benutzers sieht. Daß er die interne IP meines PC nicht sieht, ist nicht schlimm, denn das kann ja dann nur ein Rechner sein. ;)
_____

Nachtrag: ich habe meinen PC in "Einzelhaft" gesteckt, eine eigene FW-Zone erstellt. Deshalb kann nur mein PC auf die DMZ zugreifen. Die anderen Maschinen im normalen LAN benötigen diesen Zugriff auch nicht.
 
Zuletzt bearbeitet:
Source NAT ist aber nicht "ohne NAT" aber so lange es zum Ziel führt. ;-)
 
Als ich meine Frage stellte, ging ich davon aus, daß das NAT in diesem Fall das Problem ist. Naja, ist es ja auch irgend wie. ;)

Ich würde nur gerne wissen, warum OpenWrt keine Weiterleitung ohne NAT von einem VLAN ins andere macht, obwohl man das in den Firewall-Regeln erlaubt hat, warum ich dafür eine SNAT-Regel erstellen muss. Das ist ja nun mal irgend wie nicht das selbe. :confused:
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.