Comment désactiver IPv6 de manière permanente?

54

Comment désactiver IPv6 à l'échelle du système via des commandes de terminal?

J'ai lu l'édition /etc/modprobe.d/aliases en remplaçant:

alias net-pf-10 ipv6

avec:

alias net-pf-10 off
alias ipv6 off

Est-ce sécuritaire d'appliquer et désactive-t-il définitivement ipv6 lors des redémarrages?

Filaments
la source
5
Pourquoi voulez-vous désactiver IPv6 de manière permanente?
Anderson Green
2
Il n'y a absolument (enfin, je peux en trouver un, sous MS Windows) aucune raison de désactiver IPv6. Pourquoi voudriez-vous faire ça?
Anders
17
Il n'y a absolument aucune raison d'activer ipv6. Tout est toujours ipv4 et cela n'offre aucun avantage à quelqu'un qui gère un petit réseau et qui dispose de peu de temps. C’est un vecteur supplémentaire d’attaque et de mauvaise configuration potentielle et il est prudent de la désactiver. Ce n’est probablement pas ce que les ingénieurs de l’IETF veulent entendre, mais c’est leur problème, pas le mien. Je l'activerai si j'ai une bonne raison, d'ici là, je n'ai plus qu'un seul vecteur d'attaque à gérer.
Jonathan S. Fisher
8
Désactiver IPv6 ne vous rend pas immunisé contre les attaques IPv6. Il est bien mieux de l’activer, de le gérer et d’en tirer des enseignements: c’est le seul moyen de rendre votre environnement un peu plus sûr. Il est préférable que tout le monde apprenne «Comment désactiver IPv4 de manière permanente», à la place. IPv6 est beaucoup plus facile que IPv4, pour commencer, il n’ya plus de NAT, donc, une chose de moins à gérer… L’Internet se développe très rapidement, d’ici quelques années, le réseau IPv6 sera plus grand que l’IPv4, alors, Avec IPv4, vous serez hors du vrai Internet. Allez-y mec! Mettez à jour votre IP !! Le changement est une bonne chose.
ThiagoCMC
7
@ JonathanS.Fisher et autres - Ces commentaires ne sont pas utiles. Ce n’est pas parce qu’il n’ya aucune raison de désactiver IPv6 que cela n’existe pas. Un cas majeur concerne les services VPN qui ne prennent pas en charge IPv6. Si vous ne le désactivez pas, vous allez perdre votre adresse IPv6.
Scone

Réponses:

75

J'ai désactivé avec succès IPv6 en insérant les lignes suivantes /etc/sysctl.conf:

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

exécutez également cette commande pour charger les modifications

sudo sysctl -p
Eric Carvalho
la source
Uubuntu sur VMware ne peut pas être un ping, et je ferme l'ipv6 sur Ubuntu, tout va bien maintenant.
Honghe.Wu
12
Après avoir ajouté des lignes à sysctl.conf, exécutez sudo sysctl -pou redémarrez pour que les modifications prennent effet.
Rajat Gupta
4
Je dois le faire uniquement sur le réseau sans fil comme solution de contournement pour un bogue afin de pouvoir me reconnecter. Voici comment le faire pour un seul adaptateur:net.ipv6.conf.wlan0.disable_ipv6 = 1
cmc
1
Cela ne fonctionne pas sur Ubuntu 17.10. Voir le commentaire NullNoname ci-dessous pour le correctif grub.
Luke
1
Ne fonctionne pas aussi sur Ubuntu 16.04. La méthode Grub fonctionne.
Penghe Geng
54

Si votre PC ne charge pas /etc/sysctl.conf au démarrage (ce qui est le cas pour moi), il est nécessaire de désactiver IPv6 à partir de grub. Le noyau Linux a une option de démarrage nommée "ipv6.disable = 1" qui désactive IPv6 à partir du démarrage.

Pour éditer les options de démarrage, éditez "/ etc / default / grub" avec n'importe quel éditeur de texte en tant qu'utilisateur root:

sudo nano /etc/default/grub

Recherchez la ligne contenant "GRUB_CMDLINE_LINUX_DEFAULT":

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Ajoutez "ipv6.disable = 1" à l’option de démarrage, puis enregistrez votre fichier grub:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"

Enfin, mettez à jour grub:

sudo update-grub
NullNoname
la source
6
+1, cela fonctionne et désactive complètement IPv6. Il n’ya donc aucune trace de /proc/sys/net/ipv6/gauche susceptible de générer des problèmes, par exemple X11 forwarding request failedparce qu’il sshdtente de se lier à une interface IPv6 non configurée. Notez que de même, vous pouvez supprimer IPv4 de cette manière sur les ordinateurs virtuels IPv6 purs. Merci.
Tino
7

La réponse de Carvalho, y compris le commentaire sur le fait de courir, sudo sysctl -Pm’a le plus aidé.

Cependant, dans mon cas au moins:

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

et il semble que la deuxième ligne était nécessaire.

Peut-être est-ce dû au fait que j'utilise le TPU Link Archer T2U, pour lequel je devais créer un pilote à partir de la source.
Mon hypothèse est qu’en conséquence, <mydevice>ne compte pas comme un " all".
En résumé, si vous avez ajouté un pilote de réseau (personnalisé) de manière personnalisée, il se net.ipv6.conf.all.disable_ipv6 = 1peut que cela ne soit pas suffisant pour désactiver le réseau IPv6.

Je dois admettre que je n'ai pas essayé la ligne
net.ipv6.conf.default.disable_ipv6 = 1

polynomial_donut
la source
1
Upvote pour mentionner que la désactivation de différents appareils est parfois nécessaire.
Scone
Le manque de defaultligne est probablement le problème ici. Si votre pilote n'a pas été chargé encore au point dans le processus de démarrage lorsque le sysctl a été exécuté, il n'a pas été inclus dans all- mais la mise en valeur par défaut aurait signifié qu'il aurait obtenu le réglage plus tard, quand il a été chargé.
Charles Duffy
1
J'avais l' defaultentrée et j'ai dû configurer le périphérique spécifique pour le désactiver avec succès.
Alfonso Nishikawa,
7

Voici comment vérifier si ipv6 est activé sur votre ordinateur

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

Si tu vois

Running kernel is IPv6 ready

c'est activé.

Si vous ne voyez aucune sortie, ce n'est pas le cas.

Pour désactiver ipv6 si les autres réponses de cette page ne vous conviennent pas, ouvrez une liste noire ipv6. Pour ce faire, utilisez la commande suivante:

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

Cela pourrait également aider:

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

Redémarrez pour que les modifications prennent effet. Pour vérifier s'il est activé après le démarrage, exécutez à nouveau cette commande:

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

Il ne devrait y avoir aucune sortie.

Cliquez ici pour savoir comment désactiver IPV6 au démarrage.

mchid
la source
Cette réponse suppose que la ipv6fonctionnalité de noyaux est un module de noyau (utilisation blacklist.localpour empêcher son chargement). Il y a un cas où ipv6 est compilé dans le noyau (pas un module), auquel cas il est nécessaire de démarrer le noyau avec un ipv6.disable=1initialisateur (pour ce faire, il faudrait: (1) sudo gedit /etc/default/grub(2) rechercher la ligne GRUB_CMDLINE_LINUX_DEFAULT=<args>et (3) ajouter ipv6.disable=1aux paramètres de démarrage)
humanANDpeace
@humanityANDpeace Vous pouvez être intéressé par cette réponse plus complète: unix.stackexchange.com/a/190189
mchid
6

Si vous utilisez une version moderne (je suis sur 16.04 LTS) d’Ubuntu, vous pouvez utiliser cette solution ordonnée:

Créer /etc/sysctl.d/60-ipv6-disable.confcontenant le texte suivant:

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

Courir service procps start

utilisateur10550
la source
2
C’est la façon la plus propre de le faire - je ne comprends pas pourquoi on a voté en bas. cela fonctionne aussi sur fedora / centos / redhat. il a l'avantage de ne pas modifier les fichiers par défaut du système (comme directement sysctl.conf, comme suggéré dans la réponse la plus populaire)
Costin Gușă
@Costin Je n'ai pas voté, mais cela ne fonctionnera pas toujours. Parfois, vous devez indiquer le nom de périphérique spécifique (par exemple, en cas d’installation de pilotes personnalisés). Voir Alfonso Nishikawas commenter ma réponse.
polynomial_donut
Je suis reconnaissant d'avoir suivi cette approche, car j'ai fini par perdre ma connexion sur un serveur distant (il avait besoin d' IPv6) et il était très facile de demander à mon assistant sur site de supprimer le fichier et de le redémarrer.
Roger Dueck
je devais courir à la service procps restartplace sur Ubuntu 18.04
iPherian