Router & Proxy-Server

Verknüpfung unterschiedlicher Netzwerke

Jedes lokale Netzwerk (LAN) ist normalerweise an einer Stelle mit dem Internet verknüpft. Der Daten-Verkehr zwischen den beiden Netzwerken wird durch einen Router (Hardware-Box oder PC) geregelt.
Netzwerk Zusammenarbeit - Lokal und weltweit
Verknüpfung von Netzwerken
Masquerading NAT Network Address Translation (IP+Port to Port)
Router Router an der Netzwerk-Schnittstelle
Proxy HTTP-Router mit Cache-Speicher
Firewall Mauer gegen unerwünschten Daten-Verkehr
Werkzeug Anzeige der Router-Adresse und anderer Daten
TCP Organisation der Daten-Übertragung auf Sockets
Links Ausgewählte Links zum Thema 'Router'

Verbindung von Netzwerken

Ein Router vermittelt zwischen 2 verschiedenen Netzwerken - In den meisten Fällen zwischen einem lokalen Netzwerk (LAN) und dem Internet.
Dazu verfügt ein Router über (mindestens) zwei Netzwerk-Interface, normalerweise mit 2 verschiedenen IP-Adressen.
Die äußere Form eines Routers kann durchaus unterschiedlich sein.
Kleine Netzwerke verwenden oft einen fertig konfektionierten Router (BlackBox). Solche Geräte enthalten meist einen kompletten eigenen Linux-Server und werden mit einem Browser über dynamische Webseiten konfiguriert.
Größere Netzwerke verwenden PC als Router, die für Profis mehr Möglichkeiten bieten.

Router-Adressen

Die IP-Adresse am Internet-Interface des Routers ist weltweit eindeutig. Sie wird entweder vom Provider fix vergeben, oder vom DHCP-Server des Providers zugeteilt und von Zeit zu Zeit geändert. Letztere Variante ist mühsamer, bietet aber mehr Sicherheit gegen Hacker.

Die IP-Adresse am LAN-Interface des Routers muss in den privaten Adressbereich des LAN fallen. Meist wird als letzte Ziffer 1 verwendet, z.B. 192.168.0.1
Details zum IP-Adressen Bereich privater Netzwerke

Der Router ist ein typisches (Server) Dienst-Programm (service). Er hat keine Bedienungs-Oberfläche und tut nichts, solange er keinen Auftrag erhält.
Der Router horcht an einem bestimmten Port auf Aufträge zur Weiterleitung.
Zur Einrichtung ihres Netzwerks sollten sie daher IP-Adresse und Port ihres Routers kennen.
Ethernet-Router
Der Router (rechts) vermittelt zwischen dem lokalen Netzwerk (hier 1 Server + 2 PC) und dem Internet (Web). Oben im Zentrum des sternförmigen Netzwerks ein Hub bzw. Switch.

NAT

(Network Address Translation). Die wichtigste Aufgabe eines Routers ist die Übersetzung der IP-Adressen und Ports beim Transport von Daten zwischen den beiden Netzwerken. In diesem Fall wird eine spezielle NAT-Variante namens Masquerading (Kapitel NAT) eingesetzt.

Zusatz-Aufgaben

Alle Daten zwischen LAN und Internet laufen über die Router-Schnittstelle. Daher ist es logisch, genau dort auch andere zusätzliche Dienste anzusiedeln - z.B. Proxy-Server oder Firewall (auf dieser Seite).
Diese und andere zusätzliche Aufgaben kann sowohl ein konfektionierter Fertig-Router als auch ein PC als Router übernehmen.

Dienste

Die meisten Router leiten nicht jedes Daten-Paket weiter, sondern beschränken die Weiterleitung auf Daten bestimmter Dienste (die an ihren Ports erkannt werden).

Der HTTP-Dienst (Webseiten) wird von jedem gängigen Router unterstützt, meist auch FTP, Mail und SOCKS. Andere Dienste sind je nach Router-Software möglich bzw. konfigurierbar.

Network Address Translation (NAT)
IP + Port to Port = Masquerading

Jedes lokale Netzwerk (LAN) wird über einen Router oder Proxy-Server mit dem Internet verbunden. Dieses Gerät (Hardware-Box oder PC) hat 2 verschiedene Netzwerk-Interface: Je ein Interface (mit eigener IP-Adresse) verbindet den Router mit dem LAN und mit dem Internet.
Details zur Verwendung von Ports

Der Router muss zwischen 2 unterschiedlichen Adressen-Räumen vermitteln: Im Internet werden weltweit eindeutige IP-Adressen verwendet, im LAN private IP-Adressen
Details zu IP-Adressen in privaten Netzwerken
Der Router vermittelt Daten-Pakete in beide Richtungen. Hier wird demonstriert, wie ein Router zwischen (LAN-Adressen + Port) und (Internet-Adresse + Port) übersetzt.

Masquerading

Von außen (aus dem Internet) erscheint das gesamte LAN so wie ein einziger PC - Es versteckt sich sozusagen hinter der Maske des Routers, daher die Bezeichnung Masquerading.

Szenario:

Sie verwenden ein lokales Netzwerk (LAN) der Type C
Basis-Adresse ihres LAN = 192.168.123.0
Netzwerk-Maske ihres LAN = 255.255.255.0
Ihr LAN ist über einen Proxy-Server mit dem Internet verbunden. Er hat 2 Netzwerk-Karten mit je einer IP-Adresse:
Fixe LAN-Adresse des Proxy = 192.168.123.1
Internet-Adresse des Proxy = 38.107.179.212 (kann fix oder variabel sein).

An ihr LAN sind 2 Arbeits-PC angeschlossen. Sie verwenden
LAN-Adresse (PC3) = 192.168.123.3
LAN-Adresse (PC5) = 192.168.123.5
Auf beiden PC laufen Browser-Programme, sie fordern bei Klick auf Hyperlinks verschiedene Webseiten an.
Auf einem PC läuft zusätzlich ein FTP-Programm
 Lokales NetzwerkNATInternet
1→ 192.168.123.3:1234 →
192.168.255.11:80
3:1234 → 6001 38.107.179.212:6001 →
192.168.255.11:80
2→ 192.168.123.5:2345 →
192.168.255.11:80
5:2345 → 6002 38.107.179.212:6002 →
192.168.255.11:80
←3 192.168.123.3:1234 ←
192.168.123.1:7001
3:1234 ← 6001 38.107.179.212:6001 ←
192.168.255.11:4567
←4 192.168.123.5:2345 ←
192.168.123.1:7002
5:2345 ← 6002 38.107.179.212:6002 ←
192.168.255.11:4569
5→ 192.168.123.3:2468 →
72.14.221.104:80
3:1234 → 6003 38.107.179.212:6003 →
72.14.221.104:80
←6 192.168.123.3:2468 ←
192.168.123.1:7003
3:1234 ← 6003 38.107.179.212:6003 ←
72.14.221.104:8005
←7 192.168.123.3:2468 ←
192.168.123.1:7005
3:1234 ← 6003 38.107.179.212:6003 ←
72.14.221.104:8006
8→ 192.168.123.5:3333 →
192.35.244.50:21
5:3333 → 6004 38.107.179.212:6004 →
192.35.244.50:21
←9     38.107.179.212:80 ←
11.22.33.44:567
Kommentar (Leitfarben für zusammen gehörende Daten)
(1) Ein Browser auf PC3 verlangt eine Webseite von 192.168.255.11:80 (Port 80 = Webserver). Der Router sendet die Anfrage mit seiner eigenen IP-Adresse und dem zufällig freien Port 6001 als Absender weiter. Er trägt die Daten in seine NAT-Liste ein: 192.168.123.3:1234 auf LAN-Seite entspricht dem Router-Port 6001 auf Internet-Seite.

(2) Ein Browser auf PC5 verlangt ebenfalls eine Webseite von 192.168.255.11:80
Der Router sendet die Anfrage unter seiner eigenen IP-Adresse als Absender weiter, benutzt jedoch einen anderen freien Port 6002
Er trägt die Daten in seine NAT-Liste ein: 192.168.123.5:2345 entspricht Port 6002

(3) Aus dem Internet trifft eine Antwort an den Router-Port 6001 ein.
Der Router übersetzt diesen Port in die lokale Adresse 192.168.0.3:1234 und sendet die Daten ins LAN. Der Browser von PC3 erhält die Antwort-Daten.

(4) Aus dem Internet trifft eine Antwort an den Router-Port 6002 ein. Der Router übersetzt diesen Port in die lokale Adresse 192.168.123.5:2345 und sendet die Daten ins LAN. Der Browser von PC5 erhält die Antwort-Daten.

(5) Der Browser von PC3 verlangt Daten von einem anderen Webserver (Port=80). Der Router sendet die Anfrage ins Internet und verwendet dazu Port 6003

(6) und (7) Aus dem Internet treffen mehrere Daten-Pakete an den gleichen Router-Port 6003 ein. Der Router übersetzt diesen Port und sendet die Daten ins LAN. Der Browser von PCA erhält mehrere Daten-Pakete, z.B. ein Bild.

(8) Ein FTP-Programm auf PC5 sendet eine Anfrage an einen FTP-Server (Port=21). Damit wird eine Anfrage an einen anderen Dienst demonstriert. Die Antwort des FTP-Servers wird hier nicht gezeigt.

(9) Eine Anfrage aus dem Internet erreicht den Router. Der Port 80 des Routers ist in der NAT-Liste nicht enthalten. Die Daten werden daher ignoriert.
Allerdings könnte hier ihr eigener Webserver lauschen, und auf diese Anfrage antworten. Dazu müssten die Daten eine korrekte HTTP-Anfrage enthalten (z.B. GET index.html ).
Die NAT Lookup-Tabelle des Routers / Proxy-Servers enthält 2 Spalten:
Linke Spalte: Lokale IP-Adresse und Port des Absenders. Die IP-Adresse bezeichnet eindeutig einen bestimmten PC im LAN, der Port bezeichnet ein Programm (oder Programm-Teil) auf diesem PC.
Rechte Spalte: Router-Port. Die IP-Adresse des Routers / Proxy-Servers ist fix, daher kann nur der Port frei gewählt werden.
Masquerading ist ein Spezialfall von NAT (Network Address Translation): Die Übersetzung zwischen LAN-(variable IP-Adresse + Port) und Internet (fixe IP-Adresse + Port).
Werkzeug zur Live-Anzeige von IP-Adresse:Port von Client und Server auf eigenen Webseiten.  

Router

DHCP
Ein DHCP-Server teilt einem PC beim Start dessen IP-Adresse zu. In der Praxis werden an den PC meist zusätzliche Daten übergeben, z.B. Adresse und Port des Routers. Das ist die einfachste und sicherste Methode.

Vorteil: Neue PC oder Gast-PC funktionieren sofort ohne manuelle Konfiguration. Bei einer Änderung der Router-Adresse wird diese spätestens beim nächsten Neu-Start an jeden PC im LAN mitgeteilt.

Umgebungs-Variable

An jedem PC des LAN muss die LAN-Adresse des Routers oder Proxy bekannt sein.

Auf Linux werden dazu diese Umgebungs-Variablen verwendet:
ftp_proxy, http_proxy, https_proxy, no_proxy
Auf SuSE Linux enthält die übergeordnete Konfigurations-Datei
/etc/sysconfig/proxy
Angaben zum Setzen dieser wichtigen Umgebungs-Variablen.
Kontrollieren sie die Datei /etc/.profile oder besser (ja nach System) /etc/.profile.local, /etc/bash.bashrc.local, wo die Umgebungs-Variablen eingetragen sind oder manuell konfiguriert werden können. Typische Daten sehen so aus:
http_proxy=http://192.168.0.1:8080/
https_proxy=http://192.168.0.1:8080/
ftp_proxy=http://192.168.0.1:8080/
export http_proxy https_proxy ftp_proxy

Es ist sehr empfehlenswert, diese Umgebungs-Variablen auch auf Windows-PC einzurichten. Viele System-unabhängige Programme und natürlich alle von Linux portierten Programme verwenden diese Umgebungs-Variablen.

Ausgabe aller aktuellen Umgebungs-Variablen an der Konsole:
# export

Windows-Registry
Windows versteckt die Proxy-Daten wie üblich in der Registry-Datenbank:
HKEY_CURRENT_USER | Software | Microsoft | Windows | CurrentVersion | Internet Settings
Variable (Beispiel):
ProxyEnable=1
ProxyOverride=localhost;127.0.0.1;<local>
ProxyServer=192.168.0.1:8080
Die Proxy-Adresse ist in der Konfiguration jedes Netzwerk-Interface eingetragen, z.B.
HKEY_LOCAL_MACHINE | System | Controlset001 | Services | Tcpip | Parameters | Interfaces | {...}
Variable (Beispiel):
DefaultGateway=192.168.0.1
Zusätzlich sind die Proxy-Daten in einigen anderen Schlüsseln versteckt. Suchen sie nach dem Namen oder der IP-Adresse des Proxy oder nach Begriffen wie Connection, Gateway, Proxy, z.B.
HKEY_LOCAL_MACHINE | SOFTWARE | Microsoft | Windows | CurrentVersion | Internet Settings | Connections | WinHttpSettings

Tipp: Erzeugen sie zusätzlich Umgebungs-Variable mit den Standard Linux-Namen:
HKEY_LOCAL_MACHINE | SYSTEM | CurrentControlSet | Control | Session Manager | Environment
Details zu Windows Umgebungs-Variablen.

Ausgabe aller aktuellen Umgebungs-Variablen an der Konsole:
C:\> set

Browser-Einstellung

Die LAN-Adresse des Routers muss an jedem PC und Browser eingestellt werden, z.B.
Firefox: Extras | Einstellungen | Allgemein | Verbindung
M$IE: Extras | Internetoptionen| Verbindungen | LAN-Einstellungen | Proxyserver
Opera: Extras | Einstellungen | Erweitert | Netzwerk | Proxyserver

Dienste: Jeder Router arbeitet als HTTP-Router (Webseiten), meist mit der gleichen Einstellung auch für andere angeführte Dienste (FTP, SOCKS, SSL..).

Java: Wenn sie Java verwenden, dann sollten sie auch am Java Control Panel die Router/Proxy-Daten einstellen:
Windows-Datei C:\Programme\Java\jre\bin\javacpl.exe
oder Windows-Systemsteuerung | Java | Allgemein | Netzwerk

Ausnahmen: Bei den Router-Einstellungen findet man immer eine Option für Ausnahmen. Dort sind jene IP-Adressen einzutragen, die nicht ins Internet geroutet werden sollen.
Aktivieren sie (falls angeboten) eine Option "Für lokalen Adressen umgehen" oder ähnlich.
Wenn sie eine eigene Domain verwenden, tragen sie deren Name in die Ausnahme-Liste ein, z.B. mydomain.at
Ohne Domain tragen sie die Namen und / oder IP-Adressen der PC ihres lokalen Netzwerks (LAN) ein, und zwar mindestens des eigenen PC und aller Server.
Der 'eigene PC' kann mit mehreren Methoden adressiert werden: Neben seinem Namen und seiner IP-Adresse (z.B. 192.168.0.3 ) wird der eigene PC immer mit dem Namen localhost oder mit der IP-Adresse 127.0.0.1 adressiert. Tragen sie auch diese beiden Daten als Ausnahmen ein.

Automatische Proxy-Konfiguration

Alle größeren lokalen Netzwerke (LANs) bieten Scripts zur automatischen Proxy-Konfiguration der Browser an. Dabei handelt es sich um Javascript-Funktionen, die am Webserver des LAN als Datei verfügbar sind.

Details zu AutoProxy-Scripts

Programmierung:

Wenn sie Programme erstellen, die auf das Internet zugreifen, dann muss IP-Adresse und Port eines evtl. vorhandenen Proxy definiert werden. Alle modernen Programmiersprachen bieten diese Möglichkeit, meist in den entsprechenden Modulen zusammen mit anderen HTTP-Funktionen.
Auch in diesen Fall ist es sehr empfehlenswert, die Daten aus Umgebungs-Variablen zu beziehen.
Eine Ausnahme sind Programme, die auf Linux automatisch (z.B. Zeit-gesteuert) ausgeführt werden. Sie erhalten aus Sicherheits-Gründen eine stark reduzierte Auswahl an Umgebungs-Daten.

Proxy-Server

Proxy-Cache

Alle aus dem Internet in das LAN fließenden Dateien werden von einem Proxy-Server direkt am Router-PC gespeichert. Dafür wird ein einstellbares Speicher-Volumen (Proxy-Cache) auf der Festplatte des Router-PC reserviert.
Jede aus dem LAN an das Internet gerichtete Anforderung wird zunächst mit dem Cache-Vorrat verglichen:
Wenn sich die gewünschte Datei bereits im Proxy-Cache befindet, dann wird sie von dort geholt und an den anfragenden PC gesendet.
Das ist wesentlich schneller, z.B. um einen Faktor 100..1000. Außerdem wird teures Download-Volumen gespart. Es ist daher sinnvoll, für das Proxy-Cache ausreichend Platz auf der Festplatte zu reservieren, z.B. einige GB. Durch Variation des Speicherplatzes kann man jene Größe einstellen, ab der die durchschnittliche Surf-Geschwindigkeit nicht mehr zunimmt.

Nicht alle Dateien dürfen aus dem Proxy-Cache entnommen werden: Manche Daten (z.B. Sekunden-aktuelle Webseiten) müssen bei jeder einzelnen Anfrage neu aus dem Internet bezogen werden. Dazu gibt es verschiedene Möglichkeiten bei der Programmierung der Webseiten und bei der Browser-Bedienung.

Browser-Cache

Unabhängig von einem allfälligen Proxy-Server und seinem Cache führt jeder Browser auf jedem einzelnen PC seinen eigenen Cache-Speicher.
Dieses Cache arbeitet genauso wie das Proxy-Cache: Neue Daten (Webseiten, Bilder, ...) werden im Cache gespeichert und bei wiederholter Verwendung nicht erneut (vom Router) angefordert sondern aus dem eigenen Cache geladen.
Kontrollieren sie die Cache-Einstellung ihrer Browser ! - Die meisten Browser reservieren bei Installation viel zu viel Speicher.
Insbesondere bei Verwendung eines Proxy-Servers kann jedes Browser-Cache auf 10..30MB begrenzt werden.
So können sie erreichen, dass häufig nachgefragte Daten für alle PC nur einmalig am Proxy gespeichert werden, und nicht mehrfach - von jedem einzelnen Browser an jedem einzelnen PC.

Web-Programmierung

Durch kluge Programmierung kann man auch das Laden von dynamischen Webseiten (werden nicht im Proxy-Cache gespeichert) sehr beschleunigen:

Man teilt die Webseiten in (möglichst große) gleichbleibende Teile und (möglichst kleine) veränderliche Teile. Die fixen Teile (z.B. Icons) werden dann aus dem (Proxy)-Cache entnommen.
Veränderliche Teile werden z.B. als Innen-Rahmen eingebettet.

Umgekehrt kann man Proxies und Browser dazu veranlassen, eine dynamische (veränderliche) Datei nicht im Cache zu speichern, sondern bei jeder Anforderung neu zu laden.
Dazu gibt es verschiedene Methoden, die allerdings von vielen Proxies und Browsern nicht (immer) befolgt werden.
Durch Änderung der Datei-.Namen werden auch hartnäckige Proxies und Browser zum Nachladen gezwungen: Verwenden sie Datei-Namen mit zufälligen Strings oder mit der aktuellen Zeit, z.B.
dynamisch_hhmiss.php
Beispiele zum Thema Temporäre Datei-Namen mit PHP
Je größer die Anzahl der PC in einem LAN, desto wichtiger wird der Proxy-Server: Jedes im Proxy-Cache gespeicherte Objekt kann für alle PC des LAN verwendet werden.

Je mehr gemeinsame Interessen beim Surfen verfolgt werden, desto öfter können Cache-Objekte verwendet werden: Das Surfen wird wesentlich schneller, das Download-Volumen geringer.
Professionelle Proxy-Server bieten zahlreiche Optionen zur Fein-Einstellung ihres Verhaltens und eine Statistik.
Verwenden sie die Statistik dazu, die Optionen möglichst genau an das Profil ihrer LAN-BenutzerInnen anzupassen, d.h. ein Maximum an Cache-Treffern zu erzielen.
Typische Einstellung: Verweil-Dauer = 30-50% der Zeit seit der letzten Änderung, maximal jedoch 5-15 Tage.

Linux-Proxy

Auf Linux wird fast ausschließlich der Proxy-Server Squid (Krake) eingesetzt. Er ist in jeder gängigen Linux Server Distribution enthalten oder kann zumindest aus dem Internet per Mausklick geladen werden.
Die Konfiguration des Proxy-Servers erfolgt z.B. auf SuSE Linux mit YAST | Network Services | Squid, jene des Proxy-Clients mitYAST | Network Services | Proxy

Der Squid-Server ist normalerweise mit einem guten Firewall kombiniert. Die meisten professionellen Linux Router-Lösungen (z.B. IP-Cop) verwenden Squid als Router/Proxy-Programm.

Auch in den meisten fertig konfigurierten Router-Boxen arbeitet ein Linux Server mit Squid Proxy.

Windows-Proxy

Alle neueren Windows-Systeme bieten die Möglichkeit, eine am PC fertig eingerichtete Internet-Verbindung im lokalen Netzwerk gemeinsam zu verwenden. Dieser Mini-Proxy bietet allerdings nur sehr geringen Komfort und Leistung. Die Einrichtung erfolgt mit Systemsteuerung | Netzwerkverbindungen. Markieren sie die konfigurierte und getestete Internet-Verbindung (z.B. DSL) und verwenden sie Eigenschaften | Erweitert | Gemeinsame Nutzung der Internetverbindung.

Ein ernstzunehmender Proxy-Server erfordert ein spezialisiertes Programm:
Gute Ergebnisse liefert der kostenfreie AnalogX-Proxy.(neue Version 2009) oder der Jana-Server (enthält viele zusätzliche Leistungen, die am Proxy nicht immer gebraucht werden).
Die bisher beste Leistung bietet der von Linux portierte kostenfreie Squid-Proxy: Er ist sehr schnell, sehr sicher und professionell konfigurierbar. Allerdings erfolgt die Konfiguration im Linux-Stil in einer Text-Datei C:\squid\etc\squid.conf und nicht nach Windows-Art mit einem eigenen Konfigurations-Programm.
Das Programm Squid @ Windows ist nur ca. 1MB groß, für die Dateien in den Proxy-Cache Verzeichnissen sollte man je nach Konfiguration 50...500MB reservieren. Das Programm belegt nur ca. 6MB Hauptspeicher. Der Bedarf an Prozessor-Zeit richtet sich nach dem Traffic zwischen LAN und Internet: In typischen kleinen Netzwerken <1%, bei intensivem Traffic in großen Netzwerken bis 10%.

Firewall

Am Router wird meist auch ein Firewall angebracht. Dieses Programm lässt nur 'erlaubte' Daten-Pakete zwischen LAN und Internet passieren und blockiert alle anderen Daten. Dazu werden beliebig viele Regeln aufgestellt.

IP-Adressen und Ports

Firewall-Regeln beziehen sich immer auf → IP-Adressen und / oder äquivalente Namen und / oder auf → Ports.
Eine Regel könnte z.B. nur einer bestimmten Gruppe von IP-Adressen des LAN Zugang zum Internet geben.
Eine andere Regel könnte unabhängig von der IP-Adresse nur Daten an bestimmte Ports ins Internet passieren lassen z.B. 80 (Webserver) oder 22 (Secure Shell SSH).
Andere Regeln könnten Internet-Daten von Servern einer "Schwarze Liste" blockieren, oder umgekehrt nur Daten aus einer Liste erlaubter Server ins LAN durchlassen.

Verboten und Erlaubt

Die meisten Regeln lassen sich wahlweise als Erlaubnis (allow) oder als Verbot (deny) formulieren.
Man kann die einfacher formulierbare Variante wählen.
Man kann die Variante mit mehr Sicherheit wählen.
Meistens wird eine 2teilige Formulierung gewählt: Zunächst wird grundsätzlich 'alles verboten', danach wird 'manches erlaubt'.
Bei Anwendung beider Regeln ist 'alles verboten, das nicht ausdrücklich erlaubt wurde'.
Die Reihenfolge der Regeln spielt eine wichtige Rolle.

Log

Jeder Firewall kann und soll ein Log führen: Das ist die Aufzeichnung aller wichtigen Ereignisse in einer Text-Datei. Für einen sinnvollen Betrieb müssen sie in der Lage sein, diese Log-Datei zu finden und zu lesen.
werden normalerweise in der Form Adresse / Maske angegeben.
Damit wird geprüft, ob eine beliebige IP-Adresse in den angegebenen Bereich fällt oder nicht, d.h. ob die damit verbundene Regel anzuwenden ist.

Jedes 1-Bit der Maske bedeutet: Das korrespondierende Bit der Adresse muss übereinstimmen..
Jedes 0-Bit der Maske bedeutet: Das korrespondierende Bit der Adresse ist gleichgültig,

Einfache Masken arbeiten nur mit den dezimalen Zahlen 255 und 0:
Jede Zahl 255 bedeutet: Dieser Teil der IP-Adresse muss identisch sein.
Jede Zahl 0 bedeutet: Dieser Teil der IP-Adresse ist gleichgültig.
Andere Zahlen als 0 oder 255 müssen Bit-weise untersucht werden.

Live-Test von → Bereichen mit Adresse / Maske

Einfaches Beispiel:
Test der beiden Adressen
192.168.123.45 und 192.168.246.78
auf den Adress-Bereich
192.168.123.0 / 255.255.255.0

Die drei Zahlen 255 der Maske verlangen, dass die drei ersten Stellen der Adressen identisch mit den drei ersten Stellen der Bereichs-Adresse 192.168.123 sein müssen:
Das trifft für die erste Test-Adresse zu, nicht jedoch für die zweite.

Etwas schwierigeres Beispiel:
Test der beiden Adressen
192.168.123.45 und 192.168.123.234
auf den Adress-Bereich
192.168.123.0 / 255.255.255.128

Die drei Zahlen 255 der Maske verlangen, dass die drei ersten Stellen der Adressen identisch mit den drei ersten Teilen der Bereichs-Adresse 192.168.123 sein müssen.
Das trifft auf beide Test-Adressen zu, daher muss die Prüfung fortgesetzt werden.
Der letzte Teil der Maske muss Bit-weise untersucht werden: dezimal 128 = bin 10000000 - Die Maske enthält nur ein 1-Bit. Dieses (das höchstwertige) Bit einer Adresse muss mit dem entsprechenden Bit der Bereichs-Adresse übereinstimmen, um in den Bereich zu fallen.
Das korrespondierende Bit der Bereichs-Adresse ist 0, weil dezimal 0 = bin 00000000
Erste Test-Adresse: dezimal 45 = bin 0101101 - Das höchste Bit=0 und damit gleich wie in der Bereichs-Adresse. Diese Adresse fällt daher in den geprüften Bereich.
Zweite Test-Adresse: dezimal 234 = bin 11101010 - Das höchste Bit=1, und damit ungleich jenem in der Basis-Adresse. Diese Adresse fällt daher nicht in den geprüften Bereich.

Exakte Formulierung:
Sowohl die Bereichs-Adresse als auch jede Test-Adresse werden mit der Maske bitweise UND-verknüpft.
Wenn beide Operationen das gleiche Ergebnis liefern, fällt die Adresse in den Bereich.

Interface

Ein Einzel-PC verfügt normalerweise nur über 1 Netzwerk-Interface, über welches alle ein- und ausgehenden Daten-Pakete laufen.

Ein Router / Proxy-Server verfügt immer über (mindestens) 2 Netzwerk-Interface: Nach 'innen' zum eigenen lokalen Netzwerk (LAN) und nach 'außen' ins Internet.
Der Daten-Verkehr wird für jedes dieser beiden Interface getrennt geregelt. Jedes Firewall-Programme erlaubt diese Unterscheidung in den Regeln.
Typisch werden für das LAN-Interface nur wenige Verbote aufgestellt, d.h. der Zugang von allen PC des eigenen Netzwerks wird kaum beschränkt.
Die Regeln für das Internet-Interface werden dagegen so streng wie möglich formuliert, denn von dieser Seite erwartet man die meisten und die gefährlichsten Angriffe.

Protokoll

Alle Firewall-Programme können ihre Regeln nach dem verwendeten Protokoll differenzieren.

Da die Ports der meisten Dienste für → TCP und → UDP genau identisch festgelegt sind, unterscheiden die meisten Firewall-Regeln nicht nach Protokoll.

Man kann aus dem Internet eingehende → ICMP-Anfragen (→ PING) zu sperren. Zumindest für kleinere lokalen Netwzerke ist das empfehlenswert.
Die passende Firewall-Konfiguration ist eine relativ schwierige Aufgabe. Sie wird am besten schrittweise erarbeitet.

Lassen sie unbedingt eine Log-Datei erstellen und darin mindestens alle abgelehnten Daten eintragen.

Konfigurieren sie nur wenige möglichst strenge Regeln, nach dem Motto 'Alles ist verboten.'
Erstellen sie genau passende Erlaubnis-Regeln für jede einzelne Tätigkeit, die einen Internet-Zugriff zwischen LAN (ihrem PC) und Internet erfordert, z.B. nach dem Muster rechts.
Gezielte Einstellung einer einzelnen Erlaubnis-Regel::
Der Zugriff muss zunächst vom Firewall unterbunden werden. Das ist der Nachweis, dass unerlaubte Daten sicher blockiert werden.
Kontrollieren sie den Eintrag der Blockierung im Firewall-Log.
Formulieren sie eine passende Regel, welche nur die gewünschte Tätigkeit erlaubt. Schränken sie die Regel so weit wie möglich ein: Begrenzen sie IP-Adressen und Ports sowohl im LAN als auch im Internet.
Testen sie die Tätigkeit erneut: Sie muss nun vom Firewall erlaubt werden.
Modifizieren sie die erlaubte Tätigkeit geringfügig, so dass dabei die erlaubten Grenzen überschritten werden. Dieser Zugriff muss unterbunden werden.
Nach einigen Versuchen wird der Firewall zufriedenstellend arbeiten.
In den ersten Tagen und Wochen werden sie allerdings noch mit einigen blockierten Zugriffen kämpfen müssen. Lesen sie bei Verdacht das Firewall-Log, bevor sie eine weitere Erlaubnis-Regel aufstellen.
Lesen sie regelmäßig das Log der blockierten Zugriffe, z.B. anfangs täglich, später wöchentlich. Das bringt oft interessante Erkenntnisse !

Übertreiben sie den Aufwand nicht, denn - Auch ein gut eingestellter Firewall lässt sich überlisten !
Nicht nur Hacker kennen einige Tricks: Meist werden unerlaubte Daten-Pakete harmlos verpackt. Solche 'Tunnel' erlauben z.B. die Tarnung von FTP, Mail, Chat, etc. als Web-Anfragen (→ HTTP).
Programm-orientierte Firewalls auf Einzel-PC
Auf Windows sind oft Firewall-Programme in Gebrauch, deren Regeln nur indirekt über IP-Adressen und Ports festgelegt werden. Die Regeln werden spezifisch für bestimmte Programme erstellt. Das soll AnwenderInnen mit geringen IT-Kenntnissen bei der Konfiguration helfen. Diese Variante ist jedoch nur für einzelne PC sinnvoll, die direkt mit dem Internet verbunden sind.

Ein Router / Proxy-Server hat keine Möglichkeit, festzustellen, von welchem Programm ein Auftrag aus dem lokalen Netzwerk stammt. Das wäre angesichts der großen Anzahl von Programmen und Versionen, die auf allen (!) PC des lokalen Netzwerks laufen, ohnehin sinnlos. An einem Router ist daher nur ein professioneller Firewall sinnvoll, dessen Regeln über Interface, IP-Adressen, Ports und Protokolle eingestellt werden.

Wenn sie einen Firewall verwenden, der sich an Programmen (des eigenen PC) orientiert, dann müssen sie die entsprechende Regel bei Installation oder Update jedes Programms ändern, welches auf das Internet zugreift - das sind heute fast alle Programme.
Manche Betriebe verwenden das Firewall-Log zur Bespitzelung der eigenen MitarbeiterInnen: Da jedes einzelne Daten-Paket zwischen LAN und Internet genau diesen Punkt passieren muss, sind auch die üblichen Methoden zur Tarnung meist wirkungslos. Das Log wird automatisch mit Programmen durchforstet. Dabei wird meist nicht nach bestimmten IP-Adressen oder Datei-Namen gesucht sondern nach Verhaltens-Mustern. Bei Verdacht gegen eine Person kann deren gesamter Daten-Verkehr lückenlos rekonstruiert werden. Diese Hinweise betreffen nicht die juristischen, sondern nur die technischen Aspekte.

Werkzeug

Wenn sie die IP-Adressen ihres Router (Proxy-Servers) lesen wollen, dann gibt dafür verschiedene Methoden, je nachdem ob sie Zugriff auf den Router-PC haben oder nicht. Zugriff auf den Router heißt:
Sie können den Router-PC bedienen und dort Programme starten, möglichst mit Administrator-Rechten.
Linux:
Anzeige der Routing-Tabelle:
# route
Windows:
Anzeige aller Netzwerk-Interface und der Routing-Tabelle auf Windows:
C:\> netstat -r
Details zur Live-Anzeige von IP-Adresse:Port ihres Routers: Verschiedene Methoden auf einer eigenen Webseite.  

RFC 4041

Das Memo RFC 4041 (Requirements for Morality Sections in Routing Area Drafts) mit dem bezeichnenden Datum 1.April 2005 wurde bisher noch nicht als Standard anerkannt, enthält jedoch einige richtungsweisende Grundsätze für die Weiterleitung von Informationen.
Der interessante Text diskutiert die Einbeziehung moralischer Kriterien in das Routing.
Nach unbestätigten Meldungen sind zahlreiche Regierungen und Institutionen an einer Mitarbeit bei den moralischen Kriterien interessiert.
Andere Regierungen zeigten kein Interesse, mit dem Hinweis, dass solche Fragen mit dem CIA oder mit dem Scharfrichter diskutiert werden.


Letzte Änderung dieser Seite: 2011-11-29 23:03:22