Fehlersuche im Netz erleichtern

MAC-Adresse unter Linux ändern

Die MAC-Adresse ist ein wesentlicher Parameter bei der Konzipierung der Netzwerksicherheit. Viele minder kritische Bereiche werden durch die Prüfung der eigentlich eindeutigen Kennzahl geschützt. Um solche Systeme zu testen, ist es wie in vielen anderen Bereichen interessant, die MAC-Adresse zeitweise frei wählen zu können.

Lösung: Das praktische Tool macchanger bietet einige Komfortfunktionen, um die MAC-Adresse unter Linux abzuändern. Dies ist zwar auch durch Bordmittel wie etwa ifconfig möglich, jedoch gestaltet macchanger die Wahl der neuen Adresse deutlich komfortabler.

Dies begründet sich unter anderem darin, dass das Tool die so genannten Vendor Bits beachtet. Diese machen die erste Hälfte der Adresse aus und bezeichnen die Herstellerfirma des jeweiligen Interfaces. macchanger integriert eine Liste der bekannten Vendor Bits und erlaubt es, manuell oder zufällig zwischen diesen zu wechseln.

Übersichtlich: Die Möglichkeiten von macchanger im Test
Übersichtlich: Die Möglichkeiten von macchanger im Test

Auch die zweite Hälfte der MAC, die das Gerät selbst bezeichnet, kann entweder genau angegeben oder mittels Zufallsgenerator verändert werden. So kann man das Programm bequem in Skripten einsetzen, um auch große Mengen zufälliger NICs beliebiger Hersteller zu simulieren.

Will man trotz dieser Vorteile auf die Installation von Zusatzsoftware verzichten, kann auch ifconfig verwendet werden - dann allerdings ohne Features wie Zufallsgenerierung oder die Verarbeitung von Vendor Bits. Mit einigen Tricks ist aber wenigstens die erste Funktion emulierbar.

Ein Skript für das Festlegen einer völlig zufälligen MAC-Adresse lautet wie folgt:

#!/bin/bash

MAC=`openssl rand -hex 6 | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6/g'`

ifconfig $1 hw ether $MAC

Der erste Befehl erzeugt eine zwölfstellige Hexadezimalzahl und versieht sie mit Doppelpunkten, der zweite legt die so erzeugte MAC-Adresse fest.

Viele Systeme weigern sich allerdings, die Vendor Bits zu ändern, wenn keine weiteren Sicherheitsmaßnahmen umgangen werden. Oft hilft es, die Netzwerkkarte in den Promiscuous-Modus zu schalten. Hierfür fügt man im obigen Skriptvor ifconfig diese Zeile ein:

ifconfig $1 promisc

Benötigt man nur irgendeine neue Adresse, kann man auch folgende Variante verwenden, bei der die Vendor Bits beibehalten werden:

#!/bin/bash

VEND=`ip link show $1 | grep -o -E '([[:xdigit:]]{2}:){3}' | head -n 1`

NIC=`openssl rand -hex 3 | sed 's/\(..\)\(..\)\(..\)/\1:\2:\3/g'`

ifconfig $1 hw ether $VEND$NIC

Der hinzugekommene Befehl liest die momentane MAC-Adresse aus der Ausgabe von ip link show aus und schneidet die Vendor Bits ab. Der Rest des Skripts folgt dem gleichen Prinzip wie das obige.

Beide Skripte werden mit dem zu verwendenden Interface als erstem Parameter aufgerufen, also etwa mit my_macchanger eth0. Da ifconfig üblicherweise nur für den Systemadministrator zu erreichen ist, benötigen auch sie root-Zugriff.

Produkte: macchanger ist in den Repositories aller wichtigen paketbasierten Distributionen enthalten. Auch der Sourcecode findet sich auf der Herstellerwebsite. Das Programm ist unter der GPL veröffentlicht und damit freie, kostenlose Software. ifconfig gehört zu den Standardwerkzeugen unter Linux, und ip aus dem Paket iproute2 sollte ebenfalls unter den meisten Systemen bereits installiert sein. (dre)