Ich frage mich, wie NAT mit IPv6 verwendet werden soll. Scheint, dass Sie es nicht einmal mehr brauchen. Was genau ist das Konzept hinter Firewall-Konfigurationen in IPv6-Umgebungen?
Ich frage mich, wie NAT mit IPv6 verwendet werden soll. Scheint, dass Sie es nicht einmal mehr brauchen. Was genau ist das Konzept hinter Firewall-Konfigurationen in IPv6-Umgebungen?
Es gibt einige weit verbreitete Verwirrung über NAT.
NAT war nie als Sicherheitsfunktion gedacht. Es kommt jedoch vor, dass in den meisten Fällen (nicht allen), wenn ein Computer nur über NAT auf das Internet zugreifen kann, der Computer irgendwie "geschützt" ist. Es ist, als wäre das NAT-System von Natur aus auch eine Firewall.
Mal sehen, wie es funktioniert:
Nehmen wir ein Beispiel:
Inner <- --> HomeRouter < --- > ISPRouter < --- > Das Internet
"Inner" ist Ihr PC. "HomeRouter" ist der Router, der das NAT ausführt. "ISPRouter" ist der Router bei Ihrem ISP.
Der "Firewall-Effekt" ist folgender: normalerweise , auch wenn "Inner" geöffnet ist Port (es wird ein remote erreichbarer Dienst ausgeführt, z. B. ein lokaler Webserver auf Port 80), Personen aus dem "Internet" können keine Verbindung herstellen. Der Grund ist folgender: Es gibt zwei Möglichkeiten, wie ein IP-Paket von HomeRouter an Inner übertragen werden kann:
Ein eingehendes Paket enthält möglicherweise die Adresse von HomeRouter als Ziel und zielt auf einen Port ab, von dem HomeRouter weiß, dass er mit einer ausgehenden Verbindung von Inner zu einem beliebigen Ort im Internet verbunden ist. Dies funktioniert nur für eine Verbindung, die von Inner initiiert wurde. Dies bedeutet, dass der Port nicht mit dem des Servers übereinstimmt, der auf Inner ausgeführt wird.
Ein IP-Paket enthält Inner's private IP-Adresse als Ziel und wird HomeRouter irgendwie zur Kenntnis gebracht. ISPRouter kennt jedoch die private IP von Inner nicht und würde ein für diese Adresse bestimmtes IP-Paket nicht an HomeRouter weiterleiten. Quellrouting kann verwendet werden, um ein Paket mit der privaten IP-Adresse von Inner als Ziel und der öffentlichen IP-Adresse von HomeRouter als Zwischenhost zu kennzeichnen. Wenn ISPRouter das Quellrouting unterstützt, erreicht ein solches Paket unabhängig von NAT Inner. Es kommt also vor, dass fast kein ISP tatsächlich das Quellrouting unterstützt.
Daher beruht der "Firewall-Effekt" von NAT auf zwei Eigenschaften:
In der Praxis gibt es also viele Maschinen in Privathaushalten und kleinen Unternehmen, in die gehackt werden könnte eine Frage von Sekunden, außer dass sie vom "Firewall-Effekt" von NAT profitieren.
Was ist also mit IPv6? NAT wurde entwickelt und bereitgestellt ( weit verbreitet bereitgestellt), um mit der Knappheit an freien IPv4-Adressen fertig zu werden. Ohne NAT hätte die IP-Kalypse bereits die Zivilisation zerstört (oder möglicherweise die tatsächliche Nutzung von IPv6 ausgelöst). IPv6 verwendet 128-Bit-Adressen anstelle der mageren 32-Bit-IPv4-Adressen, damit keine groben Problemumgehungen wie NAT verwendet werden müssen.
Sie können NAT mit IPv6 verwenden, aber es macht wenig Sinn - wenn Sie mit NAT leben können, warum sollten Sie überhaupt zu IPv6 wechseln?
Ohne NAT gibt es jedoch keinen "Firewall-Effekt" , fadenscheinig wie es sein könnte. Die meisten Betriebssysteme sind jetzt IPv6-fähig und verwenden es automatisch, wenn die Möglichkeit dazu besteht. Wenn ein ISP beschließt, IPv6 einfach so einzuschalten, sind viele Computer, die bisher hinter einem NAT "versteckt" waren, von außen erreichbar. Dies könnte zu einer weltweiten Hacking-Orgie werden. Es ist kein Wunder, dass ISPs etwas ... zurückhaltend sind.
Um zu IPv6 gut zu wechseln, müssen Sie die Aktivierung mit einigen soliden, gut durchdachten Firewall-Regeln koppeln, die verhindert eingehende Verbindungen, die in einer NAT-Welt nicht möglich waren (mit den oben erläuterten Einschränkungen), aber jetzt dank der Magie von IPv6 möglich sind. Das operative Wort hier ist "denken": Dies wird einige Zeit von einigen Leuten erfordern, und das ist nicht kostenlos.
Es kann also vorausgesagt werden, dass IPv4 verwendet und gewartet wird, solange es toleriert werden kann. und dank NAT und transparenten Proxys wird dies eine lange Zeit sein (insbesondere wenn es uns gelingt, die menschliche Bevölkerung unter 10 Milliarden zu halten).
Das größte Problem beim Entfernen von NAT ist für mich die Einschränkung der Privatsphäre. Mit IPv6 stelle ich fest, dass alle meine LAN-Geräte eine eindeutige öffentliche IPv6-Adresse haben, mit der jedes Gerät in einem LAN eindeutig identifiziert werden kann. Dies ermöglicht dann eine einfachere Identifizierung einzelner Geräte und Benutzer.
Auswirkungen auf den Datenschutz wie die Möglichkeit, Ihre Aktivitäten domänenübergreifend zu verfolgen. Anzeigenanbieter führen diese Art der Nachverfolgung offensichtlich bereits mit Cookies durch, aber das Entfernen von NAT erleichtert die Nachverfolgung eines einzelnen Geräts.
Hinweis: Bei den Details dieser Antwort wird davon ausgegangen, dass Sie eine Linux-Box als Firewall verwenden. Wenn Sie eine andere Plattform verwenden, können die Details variieren, aber die meisten Prinzipien sollten weiterhin gelten.
Ich frage mich, wie NAT mit IPv6 verwendet werden soll.
Nat für ipv6 wird von der IETF dringend abgeraten. Trotzdem gibt es Implementierungen, wenn Sie es wirklich wollen. Zum Beispiel hat Linux es in Version 3.7 hinzugefügt.
Die Linux-Implementierung funktioniert im Wesentlichen genauso wie die Linux-NAT-Implementierung für IPv4. Ich kann nicht mit anderen Implementierungen sprechen.
Scheint, dass Sie es nicht einmal mehr brauchen.
Benutzer verwenden NAT aus verschiedenen Gründen.
Ebenso hat NAT eine Reihe von Nachteilen ( und zumindest einige dieser Nachteile haben Auswirkungen auf die Sicherheit.
Ipv6 behebt den Adressengpass. Es löst das Problem der ISP-Unabhängigkeit, indem Sie öffentliche und private Adressen parallel ausführen können (dies führt jedoch zu eigenen Problemen). Datenschutzerweiterungen verbergen, auf welchem Computer in einem Subnetz eine Anfrage gestellt wird, verbergen jedoch nicht, in welchem Subnetz sie sich befinden.
Was genau ist das Konzept hinter Firewall-Konfigurationen in IPv6-Umgebungen?
Sie können Stateful Packet Filtering ohne NAT durchführen, z. B. eine grundlegende Konfiguration, um dies zu ermöglichen Alle ausgehenden Verbindungen, während eingehende Verbindungen verboten sind, sehen möglicherweise ungefähr so aus.
ip6tables -P FORWARD DROPip6tables -A FORWARD -i ethinternal -j ACCEPTip6tables -A FORWARD -m conntrack –ctstate ESTABLISHED, RELATED -j ACCEPT
Die Firewall verfolgt Verbindungen immer noch auf die gleiche Weise wie ein Nat, verwendet diese Informationen jedoch nur zum Filtern von Paketen und nicht zum Durchführen von Übersetzungen.
Eine Sache Sie müssen darauf achten, dass Ihre Firewall nicht geschlossen wird. Ich würde vorschlagen, dass Sie die Weiterleitung NICHT in sysctl.conf aktivieren, sondern am Ende Ihres Firewall-Skripts aktivieren und "set -e" in Ihrem Firewall-Skript verwenden. Auf diese Weise wird die Weiterleitung nur aktiviert, wenn das Firewall-Skript erfolgreich ausgeführt wird.
Wenn Sie auch den Datenverkehr zur / von der Firewall selbst filtern möchten, müssen Sie über ICMP nachdenken. Einige Arten von ICMP müssen von der lokalen Verbindung zugelassen werden, sonst bricht das Netzwerk stark zusammen.
Abgesehen davon unterscheidet es sich nicht wesentlich von ipv4. Entscheiden Sie, was Sie zulassen möchten, und lassen Sie es zu.
NATs sind nicht wirklich magisch sicherer als öffentliche Adressen (und haben aufgrund der Art der Adressübersetzung viele eigene böse Warzen). Um zu Ihrer privaten IPv4-Adresse weiterzuleiten, muss ein Angreifer lediglich auf Ihren Router zeigen, und dann liegt es ganz bei der Firewall, diesen Datenverkehr herauszufiltern.
Der Wechsel zu IPv6 ändert daran nichts Beachten Sie, dass Ihr gefiltertes Subnetz nicht nur von Angreifern, sondern von der Welt geleitet werden kann. Alles andere bleibt gleich - wenn Sie ein IPv6-Subnetz einschränken müssen, unterklassifizieren Sie Ihr / 64 und wenden Firewall-Regeln an, um herauszufiltern, welcher Datenverkehr darauf zugreifen darf.
NAT ist eine Technik, mit der ein Router den über ihn verbundenen Hosts die Freigabe einer einzelnen IP-Adresse ermöglichen kann.
Der Router verfolgt, welche Hosts Verbindungen haben, und Hosts können verlangen, dass bestimmte Daten an sie weitergeleitet werden. Bei Spielen wird beispielsweise normalerweise die Umleitung des UDP-Datenverkehrs an einem bestimmten Port angefordert.
Umgekehrt wird jedes Paket verworfen, das anscheinend nicht für jemanden bestimmt ist, den der Router kennt (wie ein Brief ohne lesbare Adresse). Dadurch funktioniert es wie eine Firewall.
IPv6 hat praktisch unbegrenzte Adressen, und Haushalte / Router werden wahrscheinlich viel zu verteilen haben. NAT wird nicht mehr benötigt.
Dadurch wird der Firewall-Effekt entfernt. Es wird wahrscheinlich durch geeignete Firewalls ersetzt, die ebenso restriktiv wie ärgerlich sind, um dummen Endbenutzern eine ähnliche Sicherheit zu bieten. Richtige Firewalls zu haben, ist ein großer Schritt voraus, und ich hoffe, dass dies eher früher als später geschieht.
IPv6 macht Ziel-NAT für eingehende Verbindungen überflüssig und liefert sie stattdessen an Hosts auf der lokalen Verbindung mit intakter (öffentlicher) Zieladresse. Nach außen gerichtete Router geben allen internen Hosts extern verfügbare Präfixe bekannt, und dann können Hosts Adressen mit diesen Präfixen zu ihren Schnittstellen auf der lokalen Verbindung hinzufügen, um die eingehenden Verbindungen zu empfangen.
Ich bin nicht davon überzeugt, dass wir haben die Notwendigkeit von Quell-NAT für ausgehende Pakete beseitigt. Die Standardeinstellung scheint zu erfordern, dass der Client sich auf die gleiche Weise eine öffentliche Adresse zuweist und diese der Außenwelt unter Verwendung derselben Host-ID wie die lokalen Linkadressen zur Verfügung stellt.
Nun, das tut mir leid gibt private Informationen an das öffentliche (nicht vertrauenswürdige) Internet weiter, was in meinem Buch einen Verstoß gegen die Vertraulichkeit darstellt - eine der drei Säulen der Sicherheit, wie wir sie heute verstehen.
Ich glaube, NAT sollte daran gewöhnt sein Übersetzen Sie den privaten Teil der Quelladresse (Routing-Präfix, Host-ID und Port) in einen zufälligen Wert auf einer beliebigen Firewall, die die Grenze zwischen dem öffentlichen Internet und einem privaten Netzwerk schützt.
Das grundlegende Problem, das die Internetarchitekten mit NAT unwohl macht, ist, dass es im Widerspruch zum End-to-End-Prinzip zu stehen scheint. Dies bedeutet im Grunde, dass Router der Zwischenschicht 3 den Verbindungsstatus der Schicht 4 ignorieren sollten, damit Pakete effizient über alternative Routen weitergeleitet werden können. NAT ist jedoch im Kontext einer Stateful Firewall einfach zu implementieren, und so sollte es betrachtet werden.
Der Bedarf an Firewalls wurde deutlich, als sich das Internet Ende der 80er Jahre seinem 20. Geburtstag näherte. Heutzutage müssen alle Daten, die in ein privates Netzwerk ein- und ausgehen, eine Firewall passieren, die den Verbindungsstatus verfolgen muss, um Pakete effektiv filtern zu können.
Obwohl dies überhaupt nicht klar war Wenn Sie 1994 die Anforderung zur Wiederverwendung von Adressen aufheben, ist NAT eine Firewall-Funktion, deren Hauptzweck darin besteht, zu verhindern, dass private Daten das private Netzwerk verlassen.
Insbesondere wenn ein Client eine Verbindung zu einem externen Server herstellt, Der private Teil der Quelladresse (Routing-Präfix, Host-ID und Port), der im privaten Netzwerk verwendet wird, darf niemals in ein externes Netzwerk gelangen.
Das Linux Ip6tables NAT ist seit der Kernel-Version verfügbar 3 und macht einen durch und durch professionellen Job, z durch die Erstellung eindeutiger zufälliger Hostadressen, die nur für eine einzelne Sitzung gültig sind.
Leider wurde diese Funktion nicht vollständig dokumentiert, da niemand einen Anwendungsfall gefunden hat! Nun, hier ist es. Und wenn Sie schon dabei sind, können Sie auch sicherstellen, dass Portnummern enthalten sind.
Auf diese Weise muss die Firewall den Status halten, und NAT wird von der Firewall ausgeführt. Es gab also noch nie einen NAT-Router. Das End-to-End-Prinzip gilt nicht.
Ich denke, die Lehre ist, dass Internetarchitekten beim Entwerfen von Internetprotokollen bleiben und das Firewall-Design Sicherheitsarchitekten überlassen sollten.