23

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 cet article:

    Il est aussi possible de Flattr l'article en cliquant sur le dernier bouton, pour me payer une Duff!

    fred

    Autodidacte, technicien informatique système et réseau. Utilisateur au quotidien de GNU/Linux. Écoute et joue du Punk'Hard'Blues'n'Roll et me déplace tous les jours avec mon fidèle destrier, qui est le magnifique ZRX1100.

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

    Laisser un commentaire

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