44

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


    D'autres articles :

    Partager l'article



    L'auteur

    fred

    Autodidacte, technicien informatique système et réseau. Utilisateur au quotidien de GNU/Linux. Guitariste (éternel apprenti) Punk'Hard'Blues'n'Roll et me déplace tous les jours avec mon fidèle destrier : ZRX1100.

    44 Comments

    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:

      sudo service network-manager restart
      

      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 ? :

      auto eth0
      iface eth0 inet dhcp
      pre-up /usr/bin/macchanger  -A eth0
      
    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. Pingback: Tuto | Pearltrees
    10. 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

    11. Salut,
      pour la deuxième méthode il faut éditer le fichier : /etc/network/interfaces et ajouter à la fin du fichier :

      pre-up /usr/bin/macchanger -A eth0
      
    12. (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.

    13. 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

    14. @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?

    15. @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….

    16. 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

    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!

      • 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 !

        • 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…

    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
      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

    23. 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.

    24. 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 :

      sudo rm /etc/init.d/macchanger
      

      et de désinstaller le paquet :

      sudo apt-get remove macchanger
      
    25. 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!

    26. 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

    27. 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.

    28. 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.

      • 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é :

        auto lo
        iface lo inet loopback
        ####ce que j'ai ajouté :
        auto eth0
        iface eth0 inet dhcp
        pre-up /usr/bin/macchanger -A eth0
        

        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).

    Laisser un commentaire

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