Wie kann ich den IPv4-Stack unter Linux vollständig und dynamisch deaktivieren?

17

Wie kann ich den IPv4- Stack unter Linux deaktivieren ? Ich möchte das dynamisch tun , dh manchmal möchte ich, dass es aktiviert wird, und manchmal möchte ich nur einen IPv6- Stapel. Gibt es eine tragbare Möglichkeit, dies zu tun? Wenn Sie wissen, wie man das in einer Distribution macht, hilft es mir auch sehr.

Aldebaran
quelle
2
@kasperd Seit 2011 hat sich nichts geändert.
Michael Hampton

Antworten:

21

Nun, nach einem kleinen Chat im IRC ist die allgemeine Meinung, dass der Linux-Kernel einen gewissen Code zwischen ipv4 und ipv6 teilt, und das macht es möglicherweise unmöglich, ipv4 vollständig zu deaktivieren. Sie können versuchen , den Kernel ohne die ipv4-Teile zu kompilieren, aber ipv6 kann in diesem Fall möglicherweise nicht kompiliert werden (aber nichts hindert Sie daran, es zu versuchen!).

Sie können die IPv4-Adressen von den Schnittstellen entfernen, AFAIK, aber ich glaube nicht, dass es derzeit möglich ist, IPv4 vollständig zu deaktivieren.

BEARBEITEN: Nach einer kurzen Überprüfung des make menuconfigKernels 2.6.36 konnte ich keine Möglichkeit finden, ipv4 zu deaktivieren, ohne den gesamten TCP / IP-Stack (und damit auch ipv6) zu deaktivieren.

Core-Dump
quelle
4

Wenn dies für Entwickler ist, könnte "Bibliotheksinterposition" verwendet werden, mit LD_PRELOAD einer bearbeiteten Bibliothek mit Stub-Funktionen, die einfach Fehler zurückgeben (oder die realen abhängig vom Wochentag oder einem anderen externen Kriterium aufrufen).

Ramruma
quelle
2

Ich glaube nicht, dass es möglich ist, IPv4 vollständig zu deaktivieren, aber je nach Ihrem Ziel iptablesreicht es möglicherweise aus, den gesamten IPv4-Verkehr mit zu löschen, oder?

So etwas sollte funktionieren. Ich habe es auf keinem Computer getestet, da ich über IPv4 auf sie zugreife.

sudo iptables -I INPUT -j DROP
sudo iptables -O OUTPUT -j DROP
Antoine Albertelli
quelle
1
Dies blockiert den Verkehr, was manchmal nützlich sein kann. Programme werden jedoch nicht daran gehindert, einen IPv4-Socket zu binden. Dies ist erforderlich, um IPv4 vollständig zu deaktivieren.
Michael Hampton
Ich habe auf einem Computer, auf dem nur IPv6 ausgeführt werden musste, den DHCP-Client inaktiviert /etc/network/interfaces.d. Es ist nicht ganz dasselbe wie das Deaktivieren von IPv4, da systemd-resolvedes immer noch überwacht wird 127.0.0.53:53. Aber es reichte aus, um meine unmittelbaren Bedürfnisse zu befriedigen, und es war mir lieber, mich damit zu beschäftigen iptables.
Kasperd
1

Meistens sollten Sie Ihren Kernel ohne ipv4-Module neu kompilieren. Fedora

Sie können es nicht vollständig deaktivieren, da das System die 127.0.0.1-Loopback-Schnittstelle verwendet.
Sie können jedoch einige IPv4-Funktionen mit dem Befehl if-cfg deaktivieren.

MealstroM
quelle