Wie kann ich IPv6 dauerhaft deaktivieren?

54

Wie können wir IPv6 systemweit über Terminalbefehle deaktivieren?

Ich habe gelesen, dass ich /etc/modprobe.d/aliases bearbeite und Folgendes ersetze:

alias net-pf-10 ipv6

mit:

alias net-pf-10 off
alias ipv6 off

Ist dies sicher anzuwenden und deaktiviert es ipv6 dauerhaft über Neustarts hinweg?

Tinfoilhats
quelle
5
Warum möchten Sie IPv6 dauerhaft deaktivieren?
Anderson Green
2
Es gibt absolut keinen Grund (naja, ich kann unter MS Windows tatsächlich einen finden), IPv6 auszuschalten. Warum willst du das tun?
Anders
17
Es gibt absolut keinen Grund, ipv6 tatsächlich einzuschalten. Alles ist immer noch ipv4 und es bietet keinen Vorteil für jemanden, der ein kleines Netzwerk verwaltet und nur über begrenzte Zeit verfügt. Es ist ein weiterer Vektor für Angriffe und mögliche Fehlkonfigurationen und es ist ratsam, ihn zu deaktivieren. Wahrscheinlich nicht das, was ein IETF-Ingenieur hören möchte, aber es ist ihr Problem, nicht meins. Ich werde es aktivieren, wenn ich einen guten Grund habe, bis dahin nur einen weiteren Angriffsvektor, den ich verwalten muss.
Jonathan S. Fisher
8
Wenn Sie IPv6 deaktivieren, sind Sie nicht immun gegen IPv6-Angriffe. Es ist viel besser, es zu aktivieren, damit umzugehen und daraus zu lernen. Nur so können Sie Ihre Umgebung ein bisschen sicherer machen. Es ist besser für alle, stattdessen "So deaktivieren Sie IPv4 dauerhaft" zu lernen. IPv6 ist viel einfacher als IPv4. Zunächst einmal gibt es kein NAT mehr. Eine Sache muss also weniger verwaltet werden. Das Internet wächst sehr schnell. In einigen Jahren wird das IPv6-Netzwerk größer sein als IPv4. Mit IPv4 haben Sie kein echtes Internet mehr. Mach weiter, Mann! Aktualisieren Sie Ihre IP! Veränderung ist eine gute Sache.
ThiagoCMC
7
@ JonathanS.Fisher und andere - Diese Kommentare sind nicht hilfreich. Nur weil Sie möglicherweise keinen Grund kennen, IPv6 zu deaktivieren, heißt das nicht, dass es keinen gibt. Ein Hauptfall sind VPN-Dienste, die IPv6 nicht unterstützen. Wenn Sie es nicht deaktivieren, verlieren Sie Ihre IPv6-Adresse.
Scone

Antworten:

74

Ich habe IPv6 erfolgreich deaktiviert, nachdem ich die folgenden Zeilen eingegeben habe /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Führen Sie diesen Befehl auch aus, um Änderungen zu laden

sudo sysctl -p
Eric Carvalho
quelle
Uubuntu auf VMware kann nicht gepingt werden, und ich schließe das ipv6 auf Ubuntu, es ist jetzt in Ordnung.
Honghe.Wu
12
Führen Sie nach dem Hinzufügen von Zeilen zu sysctl.conf einen sudo sysctl -pNeustart aus, damit die Änderungen wirksam werden.
Rajat Gupta
4
Ich muss dies nur über WLAN als Fehlerumgehung tun, damit ich wieder eine Verbindung herstellen kann. So machen Sie es mit nur einem Adapter:net.ipv6.conf.wlan0.disable_ipv6 = 1
cmc
1
Dies funktioniert unter Ubuntu 17.10 nicht. Weitere Informationen zur Fehlerbehebung finden Sie unter NullNoname-Kommentar.
Luke
1
Funktioniert auch nicht mit Ubuntu 16.04. Grub-Methode funktioniert.
Penghe Geng
53

Wenn Ihr PC /etc/sysctl.conf beim Booten nicht lädt (was bei mir der Fall ist), müssen Sie IPv6 für grub deaktivieren. Der Linux-Kernel verfügt über eine Startoption mit dem Namen "ipv6.disable = 1", mit der IPv6 beim Start deaktiviert wird.

Um die Startoptionen zu bearbeiten, bearbeiten Sie "/ etc / default / grub" mit einem beliebigen Texteditor als Root-Benutzer:

sudo nano /etc/default/grub

Suchen Sie die Zeile mit "GRUB_CMDLINE_LINUX_DEFAULT":

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Fügen Sie der Boot-Option "ipv6.disable = 1" hinzu und speichern Sie die Grub-Datei:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"

Zum Schluss aktualisiere grub:

sudo update-grub
NullNoname
quelle
6
+1 Dies funktioniert und deaktiviert IPv6 vollständig. Es sind also keine Spuren /proc/sys/net/ipv6/mehr vorhanden, die zu Problemen führen können, z. B. X11 forwarding request failedweil sshdversucht wird, eine Bindung an eine nicht konfigurierte IPv6-Schnittstelle herzustellen . Beachten Sie, dass Sie auf diese Weise auch IPv4 auf reinen IPv6-VMs entfernen können. Vielen Dank.
Tino
7

Carvalhos Antwort, einschließlich des Kommentars, sudo sysctl -Pdass ich laufen muss, hat mir am meisten geholfen.

In meinem Fall jedoch zumindest:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.<mydevice>.disable_ipv6 = 1

und es scheint, dass die zweite Zeile notwendig war.

Vielleicht hat das damit zu tun, dass ich den TP-Link Archer T2U verwende, für den ich eigens einen Treiber aus dem Quellcode erstellen musste.
Ich gehe davon aus, dass <mydevice>dies nicht zu " all" zählt.
Kurz gesagt, wenn Sie einen (benutzerdefinierten) Netzwerktreiber hinzugefügt haben, ist dies net.ipv6.conf.all.disable_ipv6 = 1möglicherweise nicht ausreichend, um das IPv6-Netzwerk zu deaktivieren.

Ich muss allerdings zugeben, dass ich die Leitung nicht ausprobiert habe
net.ipv6.conf.default.disable_ipv6 = 1

polynomial_donut
quelle
1
Es kann sein, dass die Deaktivierung verschiedener Geräte erforderlich ist.
Scone
Das Fehlen der defaultLeitung ist hier wahrscheinlich das Problem. Wenn der Treiber noch nicht an dem Punkt im Boot - Prozess geladen wurde , als der sysctl ausgeführt wurde, dann wurde es nicht in eingeschlossen all- aber die Standardeinstellung bedeutet hätte wäre es um die Einstellung später bekommen hat, wenn es wurde geladen.
Charles Duffy
1
Ich hatte den defaultEintrag und musste das spezifische Gerät konfigurieren, um es erfolgreich zu deaktivieren.
Alfonso Nishikawa
7

Hier erfahren Sie, wie Sie überprüfen, ob ipv6 auf Ihrem Computer aktiviert ist

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

Wenn du siehst

Running kernel is IPv6 ready

es ist aktiviert.

Wenn Sie keine Ausgabe sehen, ist dies nicht der Fall.

Um ipv6 zu deaktivieren, falls die anderen Antworten auf dieser Seite für Sie nicht funktionieren, führen Sie eine Blacklist für ipv6 insgesamt durch. Verwenden Sie dazu den folgenden Befehl:

echo 'blacklist ipv6' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null 

Dies könnte auch hilfreich sein:

echo 'install ipv6 /bin/true' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null

Starten Sie den Computer neu, damit die Änderungen wirksam werden. Um zu überprüfen, ob es nach dem Start aktiviert ist, führen Sie diesen Befehl erneut aus:

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

Es sollte keine Ausgabe geben.

Klicken Sie hier, um Informationen zum Deaktivieren von IPV6 beim Systemstart zu erhalten.

mchid
quelle
In dieser Antwort wird davon ausgegangen, dass es sich bei der ipv6Kernelfunktion um ein Kernelmodul handelt (mit blacklist.localdessen Hilfe das Laden verhindert wird). Es gibt einen Fall, in dem ipv6 in den Kernel kompiliert wird (kein Modul). In diesem Fall muss der Kernel mit einem ipv6.disable=1Boot-Parameter gebootet werden (dazu würde man: (1) sudo gedit /etc/default/grub(2) nach der Zeile suchen GRUB_CMDLINE_LINUX_DEFAULT=<args>und (3) add ipv6.disable=1to the boot parameters)
humanityANDpeace
@humanityANDpeace Diese umfassendere Antwort könnte Sie interessieren: unix.stackexchange.com/a/190189
mchid
6

Wenn Sie eine moderne Version von Ubuntu verwenden (ich arbeite mit 16.04 LTS), können Sie diese saubere Lösung verwenden:

Erstellen Sie /etc/sysctl.d/60-ipv6-disable.confmit dem folgenden Text:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Lauf service procps start

user10550
quelle
2
Dies ist der sauberste Weg, dies zu tun. es funktioniert auch mit fedora / centos / redhat. Es hat den Vorteil, dass es die Standarddateien des Systems nicht ändert (wie direkt sysctl.conf, wie in der gängigsten Antwort vorgeschlagen)
Costin Gușă
@Costin Ich habe nicht abgelehnt, aber das wird nicht immer funktionieren. Manchmal müssen Sie den spezifischen Gerätenamen eingeben (z. B. bei benutzerdefinierten Treiberinstallationen). Siehe Alfonso Nishikawas Kommentar zu meiner Antwort.
polynomial_donut
Ich bin dankbar, dass ich diesem Ansatz gefolgt bin, da ich meine Verbindung auf einem Remote-Server verloren habe ( IPv6 war erforderlich ) und es sehr einfach war, meinen Assistenten vor Ort anzuweisen, die eine Datei zu entfernen und neu zu starten.
Roger Dueck
Ich musste service procps restartstattdessen auf Ubuntu 18.04
iPherian