47

comment changer de manière aléatoire une adresse MAC à chaque démarrage sous Ubuntu.

Une astuce qui permet de changer de manière aléatoire son adresse MAC à chaque démarrage d’Ubuntu.
Pour rappel, l’adresse MAC est l’adresse physique de la carte réseau et est unique au monde, contrairement à l’adresse IP.

Dans l’article, on va voire 2 méthodes: une par script et l’autre avec la commande pre-up.

Méthode par script

Pour pouvoir changer l’adresse MAC à chaque démarrage, le système va faire appel à un script.
Ce script sera placé dans /etc/init.d/.

macchanger

Le script va faire appel au programme macchanger.

Le script est aussi fonctionnel pour Linux Mint.

Méthode pour Ubuntu jusqu’à version 13.10

  • Installation de macchanger
  • Dans un terminal:

    sudo apt-get install macchanger
    
  • Création du script
  • Édition du script macchanger.

    sudo nano /etc/init.d/macchanger
    

    Le script:

    #!/bin/bash
     
    # Désactivation des interfaces réseaux
    ifconfig eth0 down
    ifconfig wlan0 down
     
    # génération d'une adresse MAC aléatoire pour les interfaces réseaux
    /usr/bin/macchanger -r eth0
    /usr/bin/macchanger -r wlan0
     
    # Réactivations des interfaces réseaux
    ifconfig eth0 up
    ifconfig wlan0 up
    

    Les interfaces eht0 et wlan0 sont à adapter suivant les cas.

  • Rendre le script exécutable
  • sudo chmod +x /etc/init.d/macchanger
    
  • Autoriser le script à chaque démarrage
  • sudo update-rc.d macchanger defaults 10
    

Méthode pour Ubuntu 14.04

A partir d’Ubuntu 14.04, l’option « -r » ne fait plus son travail.
En essayant toutes les options, seule l’option « -A » permet de changer l’adresse MAC et le conscructeur.

trusty

A savoir aussi, l’utilisation de la commande ifconfig du paquet net-tools est déprécié au profit de la commande ip.

  • Installation de macchanger avec la commande apt :
    sudo apt install macchanger
    
  • Création du script :
  • sudo nano /etc/init.d/macchanger
    

    Le script :

    #!/bin/bash
    ###désactiver l'interface eth0 ou wlan0 : a adapter suivant le cas.
    ip link set eth0 down
    ###Changer l'adresse MAC et son constructeur
    /usr/bin/macchanger -A eth0
    ###Activer l'interface eth0 ou wlan0 : a adapter suivant le cas.
    ip link set eth0 up
    
  • Rendre le script éxécutable :
  • sudo chmod +x /etc/init.d/macchanger
    
  • Autoriser le script à chaque démarrage
  • sudo update-rc.d macchanger defaults 10
    

    Vérification du changement de l’adresse MAC

    Avant de redémarrer, noter l’adresse MAC.
    Pour connaître l’adrese MAC avec la commande ifconfig , voir –>ICI<–

    ou sinon :

    ip maddr show eth0
    

    Méthode pre-up

    Modification du fichier interfaces

    • Installation de macchanger :
    • sudo apt install macchanger
      
    • Edition du fichier interfaces :
      sudo nano /etc/network/interfaces
      
    • Ajout de la commande à la fin du fichier :
    • pre-up /usr/bin/macchanger -A eth0
      

    Le fichier au complet doit ressembler à :

    auto eth0
    iface eth0 inet dhcp
    pre-up /usr/bin/macchanger  -A eth0
    

    Merci à maogouste pour cette technique :-)

    Conclusion

    Dorénavant, à chaque démarrage de la machine Ubuntu/Linux Mint la ou les interfaces réseaux auront une adresse MAC aléatoire.
    De cette manière le blocage par Mac Address sur un switch devient inopérant.

    source

    Partager l'article :





    fred

    "Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

    47 commentaires

    1. je m’était déjà fait ce script, par contre faut bien vérifier le changement, il peut ne pas toujours avoir été fait sur wlan0, ajouter un sleep au besoin, pour y remédier sans sleep, je désactive wlan en 1er et change et réactive en dernier, c’est souvent suffisant ;)

    2. Bonjour,
      Je suis sur linux mint 16 petra, j’ai fait les manipulations décrites et cela fonctionne parfaitement.
      Le problème est que je n’ai plus accès à ma connection internet adsl après redémarrage.
      Une solution est possible.
      Merci à l’avance.

    3. bonjour votre script marcher bien sur ubuntu 13, mais voila apres avoire installer ubuntu 14.04 j’ai appliquer votre tuto mais sa change rien ca marche pas sur ubuntu 14.04 merci dadapter le tuto pour celle-ci.

    4. Salut luc,
      essai dans le terminal:
      [code lang= »shell »]
      sudo service network-manager restart
      [/code]

      Sinon, j’ai mis l’article à jour pour Ubuntu 14.04 LTS.

    5. Merci Fred,
      Ça fonctionne nickel avec le script Ubuntu 14.04 LTS
      #!/bin/bash
      ###désactiver l’interface eth0 ou wlan0 : a adapter suivant le cas.
      ip link set eth0 down
      ###Changer l’adresse MAC et son constructeur
      /usr/bin/macchanger -A eth0
      ###Activer l’interface eth0 ou wlan0 : a adapter suivant le cas.
      ip link set eth0 up

    6. pourquoi ne pas le mettre dans le pre-up de /etc/network/interfaces?

      Je pense que c’est plus le lieu.

    7. Salut maogouste,
      peut-être à cause du mauvais habitude de placer mes scripts de démarrage dans /etc/init.d/

      avec le pre-up, tu ferais comme ça ? :
      [code lang= »shell »]
      auto eth0
      iface eth0 inet dhcp
      pre-up /usr/bin/macchanger -A eth0
      [/code]

    8. Effectivement.

      L’avantage de faire comme ca, en plus de le fire de la bonne facon, etant de ne pas avoir de double initialisation des interfaces reseaux.

      Pas de perte de temps. Pas de soft qui n’aime qu’on lui coupe sa connection pendant son initialisation (evolution….).

    9. bonjour j’ai appliquer votre tuto sur mon ubuntu 14.04
      mais ca marche pas chez moi je sais pas pour quoi !
      pourriez vous m’aidez ?
      et pour fred et maogouste pouriez vous priciser pour lautre facon
      auto eth0
      iface eth0 inet dhcp
      pre-up /usr/bin/macchanger -A eth0

      je veut bien essayer mais j’ai pas compris comment proceder exactement ?

      merci bien a vous

    10. Salut,
      pour la deuxième méthode il faut éditer le fichier : /etc/network/interfaces et ajouter à la fin du fichier :
      [code lang= »shell »]
      pre-up /usr/bin/macchanger -A eth0
      [/code]

    11. (Parce que je suis à la mode :) Yo,

      Pour le commentaire #11, il faut bien sûr que tout les ‘eth0’ du code correspondent au nom de l’interface. Si c’est une interface wifi, tu peux avoir affaire a wlan0, ou autre.

      Puis, relancer le reseau, ou l’interface.

    12. bonjour merci alors que je cherche a changer aleatoirement mon adresse mac sous debian je tombe sur votre tuto qui marche tres bien sous ubuntu mais pas sur debian j’aurai aimer que qulqu’un maide a trouver la soulution merci bien a vous je suis sous debian weezy

    13. @debnauuut: c’est tout pareil pour debian, aucune différence, je peut supposer que l’élément bloquant est que tu utilise debian sur une machine hébergée chez un fournisseur quelconque et non sur ta propre machine

      @fred: tu peux me désabonner stp?

    14. @debnauut : as-tu essayé la seconde méthodes « Méthode pre-up » ?

      @H2L29 : normalement, il te suffit de décocher les notifications de cet article… Si cela ne fonctionne pas, envoie moi un mail et je regarderais….

    15. heu … on peut peut-etre le faire à la main sans avoir à installer un paquet :

      chmacaddr.sh

      #!/bin/bash
      RANGE=255
      octets=$(ifconfig | grep $1 | awk ‘{print $NF}’)
      octeta=$(echo « obase=16;$(($RANDOM % $RANGE)) » | bc)
      octetb=$(echo « obase=16;$(($RANDOM % $RANGE)) » | bc)
      octetc=$(echo « obase=16;$(($RANDOM % $RANGE)) » | bc)
      macaddr=$(echo « ${octets:0:8}:${octeta}:${octetb}:${octetc} » | tr [A-Z] [a-z])
      ifconfig $1 down
      ifconfig $1 hw ether $macaddr
      ifconfig $1 up

      Usage : chmacaddr.sh wlan0

      ou le déclarer dans le pre-up

    16. C’est sûr ! mais c’est une méthode pour niveau avancé ce que tu proposes ;-)

    17. Bonjour,

      votre méthode fonctionne parfaitement pour les trois premières paires de mon adresse MAC (xx:xx:xx:yy:yy:yy) mais les trois dernières restent inchangées. J’utilise Ubuntu 14.04 LTS et la méthode que vous avez proposée pour. Verriez-vous un moyen de résoudre ce pb?

      Merci!

    18. Allo, j’ai essayé le scrip ci dessous http://memo-linux.com/comment-changer-de-maniere-aleatoire-une-adresse-mac-a-chaque-demarrage-sous-ubuntu/ et l’adresse as pas changer selon vous qu’est qui pourrais etre l’erreur que j’aurais pus faire…ubunto 12.04…….

      ha pis je ne suis comme pas capable d’enregistrer le scrip… quand je l’ouvre…il a un pacquer de commande en bas mais….faut que je fasse le « chapot » et « o » pour enregistrer…mais ca marche pas…en fait je sais pas ou le faire, en cliquant un peu partout je me suis rendu compte que ca povais corresponde a des f1 f2 etc….huuu, aussi, bien j’ai remarquer que quand j’ouvrais le scripp bien l’info que javais rentrer dedans y est encore donc…..une autre affaire aussi dans le scrip…les commande en bas un moment donner je sais pas sur quoi j’ai peser mais juste en cliquand dessus je pouvais défiler le fichier d’aide…donc…je pense que vous voyer un peu …qu’Est que je fait de pas correct?

    19. Bonjour Jean-Claude,
      avant de te lancer dans des scripts, apprends à utiliser l’éditeur nano.
      Sinon, pour enregistrer avec nano il faut utriliser le combinaisons de touche Ctrl+x. Le « chapeau » est la touche Ctrl de ton clavier.

    20. s’il vous plait est ce que vous savez nous faire le meme tutoriel mais sous debina 7.7 je vous en prie merci bien a vous

    21. étant donnée qu’Ubuntu est dérivée de Debian, les méthodes fonctionnent pour Debian. Il faut priviligier la méthode pré-up, qui est plus « propre ».

    22. Bonjour et merci pour cet article qui m’a bien aide !
      Malheureusement je rencontre le même souci que notre ami Near3… Je tourne également sous la même config/version.
      J’ai fait la première méthode, et la Pre-Up, mais en effet, dans tout les cas, seul les trois premières paires changent.
      Merci d’avance !

    23. Aucune idée pour ce « problème » sous Ubuntu. Mais bon, à partir du moment que les 3 paires changent l’adresse Mac a été changée…

    24. Bonjour
      Je suis bien loin d’avoir toutes vos connaissances , et j’ai besoin d’un petit coup de main
      Pour récuperer une connexion via ethernet , on me demande une adresse MAC (puis – ou ?) une adresse MAC clonée. Mon système est Linux Mint 16
      Quelqu’un pourrait-il m’aider ?
      Merci

    25. Bonjour, j’ai un script et je veux l’exécuter sous ubuntu 14. Sous ubuntu 12, ça ne pose aucun soucis, il suffit de les enregistrer et de mettre un chemin dans .basrc mais sous ubuntu 14, ça ne marche pas, je ne sais pas pourquoi? Pouvez-vous m’aider? Merci d’avance. Pour plus de détails, je serai disponible, MERCI.

    26. Comment faire si on veux l’annuler ?
      merci d’avance

    27. je veux dire par la revenir a l’adresse mac d’origine

    28. en quoi faisant parce que j’utilise ubuntu
      et excuse moi pour ces questions

    29. no problemo pour les questions :-)
      alors si tu veux retrouver ton adresse MAC d’origine, il suffit du supprimer le script au démarrage de ta machine :
      [code lang= »shell »]
      sudo rm /etc/init.d/macchanger
      [/code]
      et de désinstaller le paquet :
      [code lang= »shell »]
      sudo apt-get remove macchanger
      [/code]

    30. Bonsoir,
      J’ai tenté les 2 méthodes de script ainsi que la pré-up mais rien n’y fait, l’adresse Mac ne change pas :(. Je précise que je suis sous Linux Mint 17.1

      Merci d’avance!

    31. Bonjour,
      Mince alors chez-moi, la méthode 14.04 ne fonctionne pas et la méthode pre-up non-plus. Notez que pour cette dernière, mon fichier « Interfaces » ressemble à ceci (avant modifs, et je suis connecté en Wifi) :

      auto lo
      iface lo inet loopback

      Entre « lo » ou « wlan0 » et « loopback » ou « dhcp » je ne n’ai pas encore essayé toutes les combinaisons, mais pour le moment : rien à faire !

      En tous cas, si quelqu’un a une idée : je prend. Si j’ai une solution : je partage ici.

      Bien à vous

    32. Bonjour owel,
      quelle est ta distribution ?
      Avec la méthode pré-up il faut changer eth0 par le nom de ton interface. Peut-être dans ton cas c’est wlan0.

    33. Salut Fred,

      Je suis sous Ubuntu 14.04. Ai refait des tests aujourd’hui : rien à faire !

      Soit ça ne veut pas se connecter, soit, network-manager ne se lance carrément pas… J’comprend pas.

    34. je viens de le refaire sur un Linux Mint 17 (je suis sous Manjaro depuis pas mal de temps maintenant) et effectivement le fichier interfaces n’est pas beaoucoup rempli.
      Bref, voilà mon fichier modifié :
      [code lang= »shell »]
      auto lo
      iface lo inet loopback
      ####ce que j’ai ajouté :
      auto eth0
      iface eth0 inet dhcp
      pre-up /usr/bin/macchanger -A eth0
      [/code]
      et j’obtiens le même résultat que @Near3 à savoir, que seul les 3 premiers pair change de valeurs. Je vais me documenter si la gestion des interfaces réseaux sous Ubuntu n’a pas changée (ce qui est déjà le cas sous UBuntu server).

    35. merci
      avec la Méthode pre-up ne pas oublier quel interface vous utilisez.
      par example eth0 pour l eternet et wlan0 pour le wifi etc.
      pre-up /usr/bin/macchanger -A eth0
      pre-up /usr/bin/macchanger -A wlan0

      encore merci.

    36. Salut Fred

      Au delà de la « méthode avancée » que j avais proposé il y a plusieurs années, on pourrait au générer l adresse Mac ainsi :
      date | md5sum | sed -r ‘s/(..){3}/\1:/g;s/\s+-$//’
      Après c’est une idée bien sûr 😜

      Dans tous les cas merci à toi et ton blog il est bien fun dans les meilleurs sens du terme (cf moi 😂)

    37. Plus simple sûrement que le bc avec le obase=16 que j avais proposé à l époque mais je ne me souvenais plus de celle ci et comme j écris mes scripts à la volée en function du moment…
      Bref…

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.