My Digital Lifestyle

Einträge mit dem Schlagwort Netz

Die interne Fritzbox Stateful-Firewall

Ich habe viel über Firewall-Projekte auf der Fritzbox gelesen. Im DS-MOD gibt es die Möglichkeit, iptables auf die Fritzbox zu bringen. Meiner Meinung nach macht das aber wenig sinn. Auf der Fritzbox befindet sich bereits eine, der Hardware entsprechend, leistungsfähige Firewall. Konfiguriert und administriert wird diese wie gewohnt über die ar7.cfg.

Vor der Konfiguration muss man sich klar machen, in welchem Modus die Fritzbox läuft. Es müssen nämlich unterschiedliche Bereiche in der ar7.cfg verändert werden. In der Sektion accesslist werden die entsprechenden Regeln definiert. Es gibt jeweils eine Sektion accesslist in den Kategorien pppoefw, dslifaces und dsldpconfig.

  • pppoefw – Router läuft im PPPOE Mode (nur als Modem)
  • dslifaces – Router läuft im Router-Mode (NAT-Funktionalität)
  • dsldpconfigKann ich leider nicht sagen. Wer weiß mehr?

In meinem Beispielfall werde ich die Regeln im Bereich dslifaces betrachten und verändern. Für den Fall, dass die Firewall nicht nur als Modem sondern als Router fungiert, ist die Nutzung von diesem virtuellen Interfaceabschnitt zwingend notwendig.

Der Firewall-Regel-Syntax ist in allen Bereichen identisch. Als Beispiel könnte man folgendes Beispiel nehmen:

accesslist =
            /*####################
              ### Own FW-Rules         ###
              ####################*/

            /* Erlaube eingehend eine statische IP auf den SSH-Port des Routers */
            "permit tcp host 194.94.10.10 host 194.10.65.181 eq 22",

            /* Erlaube eingehend eine statische IP ins lokale Netz */
            "permit ip host 194.94.10.10 195.10.183.192 255.255.255.240",

            /* Erlaube eingehend Port 80 auf den Webserver im lokalen Netz */
            "permit tcp any host 195.10.183.206 eq 80",

            /* Stateful-Regel für die 2. WAN-IP */
            "permit ip host 194.10.65.181 any",
            "permit ip any host 194.10.65.181 connection outgoing-related",
            "reject ip any host 194.10.65.181",
            /* Stateful-Regeln für das lokale Netzwerk */
            "permit ip 195.10.183.192 255.255.255.240 any",
            "permit ip any 195.10.183.192 255.255.255.240 connection outgoing-related",
            "reject ip any 195.10.183.192 255.255.255.240",

            /*###################################
              ### Standard FRITZ!Box FW-Rules                  ###
              ###################################*/
            "deny ip any 242.0.0.0 255.0.0.0",
            "deny ip any host 255.255.255.255",
            "deny udp any any eq 135",
            "deny tcp any any eq 135",
            "deny udp any any range 137 139",
            "deny tcp any any range 137 139",
            "deny udp any any range 161 162",
            "deny udp any any eq 520",
            "deny udp any any eq 111",
            "deny udp any any eq 22289",
            "deny udp any any eq 1710",
            "deny udp any any eq 1048",
            "deny udp any any eq 158",
            "deny udp any any eq 515";

Der Aufbau der Regeln ist ganz einfach:

#Aktion# #Protokoll# #Quelle# #Ziel# #Zusätzliche parameter#

#Aktion#

  • Permit – Erlaube eine Verbindung mit folgenden Parametern
  • Deny – Lehne eine Verbindung mit folgenden Parametern ab
  • Reject – Weise eine Verbindung mit folgenden Parametern zurück

#Protokoll#

  • tcp – Diese Parameter definieren eine TCP-Verbindung
  • udp – Diese Parameter definieren eine UDP-Verbindung
  • icmp – Diese Parameter definieren eine ICMP-Verbindung
  • ip – Diese Parameter definieren eine Verbindung mit allen Protokollen

#Quelle# oder #Ziel#

  • any – Ist gleichzusetzen mit *. Definiert alle Hosts und Netze
  • host [ip] – Nur diese IP / nur dieser Host
  • [net] [subnetmask] – Definiert ein Netz mit der größe des angegebenen Subnetzes

#Parameter#

  • eq [Port] – Regel zieht nur bei diesem port
  • range [Startport] [Endport] – Es wird eine Portspanne definiert. Alle Ports innerhalb dieser Spanne sind von der Regel betroffen
  • connection outgoing-related – Wirkt nur, wenn sich die Regel auf eine ausgehende Verbindung bezieht (Stateful)
  • connection incoming-related – Wirkt nur, wenn sich die Regel auf eine eingehende Verbindung bezieht (Stateful)

Die Accessliste muss in den virtuellen Interface-Definitionen sowohl im lowinput als auch im highoutput Bereich eingetragen bzw. verändert werden.

Um die erstellen Regeln in den aktuellen Betrieb zu übernehmen, muß das Kommando ar7cfgchanged ausgeführt werden.

Hinweis: Jeder Tippfehler mit dem folgenden Kommando ar7cfgchanged wird mit einem vollständigen Konfigurations-Reset geahndet!

flattr this!

Mehrere WAN Ips und Netze auf einer Fritzbox

Ich habe schon lange Zeit den Wunsch, über die Fritzbox eine zusätzliche IP bzw. ein zusätzliches Netz neben der schon zugewiesenen dynamischen IP zu nutzen. Da ich bis dato keinen Erfolg bei Google und einschlägigen Foren hatte, habe ich mich also dran gesetzt und selbst nach einer Möglichkeit gesucht. Und siehe da, ich kann Euch heute mein Ergebnis vorstellen :-)

Beschreibung eines Beispielszenarios
Ich werde in meinem Howto ein Szenario beschreiben, welches natürlich von Fall zu Fall verändert werden muss. In meinem Beispiel gelten folgende Randparameter:

  • Eine zusätzliche IP auf dem WAN-Interface welche als zusätzliche NAT-IP bereitgestellt wird
  • Die zusätzliche IP soll nur zu fest definierten Hosts/Netzen für einen Client genattet werden
  • Ein zusätzliches /28 Netz, welches auf dem WAN-Interface liegt, soll von entsprechenden Clients nativ genutzt werden

Technische Informationen

  • LAN-IP der Fritzbox: 192.168.2.1
  • WAN-IP: 194.10.65.181
  • WAN-Netz: 195.10.183.192/28

Realisierung auf der Fritzbox
Zunächst loggen wir uns auf der Fritzbox via telnet oder ssh ein. Mit nvi editieren wir die Datei: /var/flash/ar7.cfg. In muss dann nach folgendem Eintrag gesucht werden: brinterfaces. In den darunter liegenden Zeilen befindet sich der Eintrag: lan:0. Unter diesen konfigurieren wir dann diese Einträge (Auf die geschweiften Klammern achten!):

  {
      name = "lan:1";
      dhcp = no;
      ipaddr = 192.168.178.1;
      netmask = 255.255.255.0;
      dstipaddr = 0.0.0.0;
      dhcpenabled = no;
      dhcpstart = 0.0.0.0;
      dhcpend = 0.0.0.0;
} {
      name = "lan:2";
      dhcp = no;
      ipaddr = 195.10.183.193;
      netmask = 255.255.255.240;
      dstipaddr = 0.0.0.0;
      dhcpenabled = no;
      dhcpstart = 0.0.0.0;
      dhcpend = 0.0.0.0;
}

Ich habe ein zusätzliches Interface mit einer 192.168.178.1 IP gewählt, da wir im späteren Verlauf Host/Netz abhängige Routen für das entsprechende NAT setzen wollen.

Nun suchen wir in der Datei den Kategoriepunkt dsldpconfig.
Hier gibt es dann eine weitere Sektion mit Namen: forwardrules. Entsprechend unserem Beispiel werden wir hier nun die zusätzliche NAT-IP und 2 IPS aus dem zusätzlichen Netz konfigurieren.

Das Resultat könnte dann wie folgt aussehen:

forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060",
               "ip 194.10.65.181 192.168.178.2 0 # Zusätzliche NAT-WAN-IP",
               "ip 195.10.183.195 195.10.183.195 0 # WAN Netz - 1. Host",
               "ip 195.10.183.196 195.10.183.196 0 # WAN Netz - 2. Host";

Nach den Änderungen muss die Datei natürlich noch gespeichert werden. Anschliessend wird dann folgendes Kommando auf der Konsole abgesetzt: ar7cfgchanged. Es werden alle Änderungen neu geladen und aktiviert.

Client-Konfiguration mit zusätzlicher NAT-IP mit Host abhängiger Route
Auf diesem Client müssen 2 lokale IPs konfiguriert sein (z.B. 192.168.2.2 und 192.168.178.2). Das Default-Gateway wurde in der Netzwerkkonfiguration auf die 192.168.2.1 gesetzt. Die ganz normale Kommunikation geschieht im lokalen 192.168.2.0/24 Netz.

Nun möchten wir aber zu einem bestimmten Host mit der zusätzlichen NAT-IP (feste IP) connecten. Dazu muss lediglich eine Host-Route auf dem Client-System gesetzt werden.

Unter Windows würde das beispielsweise wie folgt aussehen:

route -p add 193.99.144.85 mask 255.255.255.255 192.168.178.1
  • Das -p bewirkt einen Permanenteintrag.
  • 193.99.144.85 ist in diesem Beispiel die IP von www.heise.de

Sobald der Client sich mit www.heise.de in Verbindung setzt, wird die Kommunikation nun im 192.168.178.0/24 Netz geführt, und somit die ausgehende Verbindung anders genattet.

Konfiguration von 2 Clients mit IPs aus dem zusätzlichen Netz
Diese Konfiguration ist am einfachsten. Es müssen lediglich die öffentlichen IPs auf der Netzwerkkarte konfiguriert werden, mit der entsprechenden öffentlichen IP auf der Fritzbox als Gateway.

Hinweis
Die obige Konfiguration basiert auf einem Beispiel und muss natürlich an die lokalen Gegebenheiten angepasst werden.

flattr this!