Server hinter der 7170 (DMZ, VLAN...)

ckirsch

Neuer User
Mitglied seit
4 Jul 2007
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Hallo,

lese zwar schon einige Zeit anonym mit, allerdings habe ich auch nach längerem Suchen keine Antwort auf mein aktuelles Problem gefunden.
Ich möchte einen Server hinter der Fritz!Box Fon 7170 betreiben. Eigentlich soll das nur temporär sein, aber wie es meistens mit temporären Sachen ist, bestehen sie dann doch länger als gedacht. Deswegen möchte ich sowohl das LAN, als auch die Box selbst vor dem Server schützen. Folgende Punkte sollten erfüllt sein:
- Port Forwarding einer Port Range oder einfach alle
- Zugriff des Servers auf das Internet
- kein Zugriff des Servers auf das LAN
- kein Zugriff des Servers auf das Management Interface der Box (Telnet, SSH, Web, etc)

Mir sind dazu folgende Sachen eingefallen:
- Exposed Host in der Default Firmware erfüllt meines Erachtens nicht die letzten beiden Punkte
- Eine echte DMZ, wie hier beschrieben bietet auch keinen Schutz des Management Interfaces. Außerdem müßte ich noch eine weitere Box kaufen.
- In der DS Firmware habe ich im Firewall-CGI den Punkt "Web Interface nur über xxx zugänglich machen" gefunden. Dort habe ich die Auswahl LAN A, LAN B, USB und WLAN. Schonmal nicht schlecht, bloß wofür steht LAN A oder LAN B - ich habe hier an der Box nur LAN 1-4? Beim Rumprobieren kam ich per Port 80 weder auf die Box noch auf sonst einen Rechner im Internet. Nur ein iptables --flush per Telnet ließ mich wieder rauskommen....
- Ein weiterer Thread beschäftigt sich mit dem Thema VLAN. Dadurch scheint mir eine saubere Trennung vom Server zum LAN möglich zu sein. Doch wie untersage ich dem Server, das Management Interface der Box aufzurufen?

Habe ich Möglichkeiten übersehen oder ich seh ich gar den Wald vor Bäumen nicht und es ist wesentlich einfacher?

Über Empfehlungen, Anregungen oder Hinweise bin ich sehr dankbar.

Gruß
Christian
 
Die Variante VLAN scheint mir auch die beste für Deine Zwecke zu sein. Der Server wird dann einfach in ein zweites IP-Subnetz gesteckt. Im zweiten Schritt kannst Du mittels iptables und entsprechenden Filterregeln alle Netze und/oder Internet je nach Bedarf von einander trennen. Auf die gleiche Weise unterbindest Du Zugriffe vom Server auf die Box, denn Du kannst ja eingehende Pakete auf der Box anhand der Absender-IP und des Zielports filtern (der Server hat ja sicher eine feste IP und die Zielports wären z.B. 22 für SSH, 80 für HTTP...).

Das Firewall-CGI lässt sich dafür meines Wissens nur begrenzt einsetzen, bau Dir lieber ein zusätzliches Script ein oder nimm die debug.cfg.
 
Danke für Deine Antwort. Habs jetzt wie folgt umgesetzt, vielleicht hilft es auch anderen.
- die 4 Ports des Switches werden wieder einzelnen Interfaces zugeordnet, mit dem Befehl:
Code:
cpmaccfg ssm split
Danach gibt es die Interfaces eth0-3. Dabei ist eth0 das "alte" LAN Interface. Alle anderen müssen für die Nutzung konfiguriert werden.
Am besten wird dieser Befehl in der debug.cfg aufgerufen. Details siehe hier und hier
- in der ar7.cfg wird das Interface, an dem der Server hängt, konfiguriert - in meinem Beispiel eth3:
Code:
ar7cfg {
        mode = dsldmode_router;
        tsdisabled = no;
        igddenabled = yes;
        igdd_control_enabled = no;
        wan_bridge_with_dhcpc = yes;
        wan_bridge_gateway = 0.0.0.0;
        dhcpc_use_static_dns = no;
        ethmode = ethmode_router;
        StatisticStartOfMonth = 1;
        macdsl_override = 00:00:00:00:00:00;
        ethinterfaces {
                name = "eth0";
                dhcp = no;
                ipaddr = 192.168.178.1;
                netmask = 255.255.255.0;
                dstipaddr = 0.0.0.0;
                dhcpenabled = yes;
                dhcpstart = 192.168.178.100;
                dhcpend = 192.168.178.200;
        } {
                name = "eth0:0";
                dhcp = no;
                ipaddr = 169.254.1.1;
                netmask = 255.255.0.0;
                dstipaddr = 0.0.0.0;
                dhcpenabled = yes;
                dhcpstart = 0.0.0.0;
                dhcpend = 0.0.0.0;
        } {
                name = "eth3";
                dhcp = no;
                ipaddr = 10.0.0.1;
                netmask = 255.255.255.0;
                dstipaddr = 0.0.0.0;
                dhcpenabled = no;
                dhcpstart = 0.0.0.0;
                dhcpend = 0.0.0.0;
        } {
                name = "usbrndis";
                dhcp = no;
                ipaddr = 192.168.179.1;
                netmask = 255.255.255.0;
                dstipaddr = 0.0.0.0;
                dhcpenabled = yes;
                dhcpstart = 0.0.0.0;
                dhcpend = 0.0.0.0;
        } {
                name = "wlan";
                dhcp = no;
                ipaddr = 192.168.182.1;
                netmask = 255.255.255.0;
                dstipaddr = 0.0.0.0;
                interfaces = "tiwlan0", "wdsup0", "wdsdw0", "wdsdw1", 
                             "wdsdw2", "wdsdw3";
                dhcpenabled = yes;
                dhcpstart = 192.168.182.100;
                dhcpend = 192.168.182.200;
        }
        brinterfaces {
                name = "lan";
                dhcp = no;
                ipaddr = 192.168.178.1;
                netmask = 255.255.255.0;
                dstipaddr = 0.0.0.0;
                interfaces = "eth0", "usbrndis", "tiwlan0", "wdsup0", 
                             "wdsdw0", "wdsdw1", "wdsdw2", "wdsdw3";
                dhcpenabled = yes;
                dhcpstart = 192.168.178.100;
                dhcpend = 192.168.178.200;
        } {
                name = "lan:0";
                dhcp = no;
                ipaddr = 169.254.1.1;
                netmask = 255.255.0.0;
                dstipaddr = 0.0.0.0;
                dhcpenabled = yes;
                dhcpstart = 0.0.0.0;
                dhcpend = 0.0.0.0;
        }
        dslinterface {
                name = "dsl";
                dhcp = no;
                ipaddr = 169.254.2.1;
                netmask = 255.255.255.255;
                dstipaddr = 169.254.2.1;
                dhcpenabled = yes;
                dhcpstart = 0.0.0.0;
                dhcpend = 0.0.0.0;
        }
        dslinterface_metric = 2;
        ipbridge {
                enabled = no;
        }
        pppoefw {
                interfaces = "usbrndis", "eth0", "tiwlan0", "wdsup0", 
                             "wdsdw0", "wdsdw1", "wdsdw2", "wdsdw3";
                nofirewall = yes;
                ipnetbiosfilter = yes;
                dnsfilter_for_active_directory = yes;
                hostuniq_filter = "";
                dpconfig {
...
- Nach diesen Maßnahmen, kann der Server das Internet erreichen. Nun muß ihm nur verboten werden, mit dem WLAN, LAN, oder Box zu kommunizieren. Dazu füge ich folgende Zeilen in die debug.cfg ein:
Code:
modprobe iptable_filter
iptables -A FORWARD -i eth3 -o dsl -j ACCEPT
iptables -A FORWARD -i eth3 -j DROP
iptables -A INPUT -i eth3 -j DROP
iptables -I INPUT -i eth3 -p tcp --dport 53 -j ACCEPT
iptables -I INPUT -i eth3 -p udp --dport 53 -j ACCEPT
Diese Befehle sind von hier übernommen und ein bischen angepaßt worden.

Voraussetzung dafür waren:
- FB 7170 mit DS MOD
- iptables im DS MOD
- "Alle Computer befinden sich im selben IP-Netzwerk" deaktivieren

Damit der Server von aussen erreichbar ist, habe ich die benötigten Ports im WebInterface der FB weitergeleitet. Interessanterweise kann ich dort auch IP Adressen eingeben, die nicht im dhcp Bereich liegen - in meinem Beispiel 10.0.0.2.

An dieser Konfiguration stört mich nur, dass auch aus dem LAN, oder WLAN heraus nicht auf den Server zugegriffen werden kann - beispielsweise mit SSH. Wahrscheinlich muß noch eine Regel erzeugt oder die zweite verändert werden, so daß dies funktioniert....

Gruß Christian
 
Kostenlos!

Statistik des Forums

Themen
248,469
Beiträge
2,292,120
Mitglieder
377,909
Neuestes Mitglied
kernig123