# Zufällige MAC Adresse ...

## alexander_ro

Hi Mädels ... Jungs ...  :Smile: 

Ich benutze in der WLAN Konfiguration >mac_wlp13s0="random-samekind"< um immer eine andere MAC Adresse auf meinen Mobilen Geräten zu verwenden. Das hatte bisher auch gut funktioniert aber leider geht es nicht mehr. Seit wann kann ich nicht sagen weil man das ja nicht unbedingt bemerkt das Netz geht ja trotzdem.

So sehen die Ausgaben beim WLAN Start aus:

```
 * Bringing up interface wlp13s0

 *   Changing MAC address of wlp13s0 ...                                              [ ok ]

 *     changed to 00:14:2F:A2:55:53

 *   Starting wpa_supplicant on wlp13s0 ...

Successfully initialized wpa_supplicant                                               [ ok ]

 *   Starting wpa_cli on wlp13s0 ...                                                  [ ok ]

 *   Backgrounding ... ...

 * WARNING: net.wlp13s0 has started, but is inactive

```

er sagt hier immer die MAC 00:14:2F:A2:55:53. Das macht er auch wenn man die MAC Adresse dann separat abfrägt.

Mit dem Befehl unten kann man die MAC Adresse aber auf eine andere setzen. Das setzt er aber wieder zurück sobald man das WLAN startet.

```
ip link set dev wlp13s0 address de:ad:be:ef:13:37
```

Mir ist es ein Rätsel warum das nicht mehr geht. Der Suchwuff hat leider auch keinen guten Rat gewusst ...

Grüße

Alexander

----------

## alexander_ro

Es wird im Hintergrund der macchanger benutzt und der scheint irgendwie kaputt zu sein. Ich würde random mit Zufall übersetzen und wenn immer die gleiche MAC gesetzt wird dann ist das sehr wenig Zufall ...  :Sad: 

```

#   -a,  --another                Set random vendor MAC of the same kind

macchanger --another wlp13s0

```

Die anderen Optionen die es gibt machen leider das gleiche. Setzen zwar eine andere als die Hardware MAC Adresse aber immer die gleiche was nicht wirklich Zufall ist.

----------

## schmidicom

Schon mal einen Blick in die Upstream-Bugreports geworfen? Da scheint einer genau das gleiche Problem zu haben.

https://github.com/alobbs/macchanger/issues/17

----------

## alexander_ro

Ja das habe ich gelesen aber nicht alles verstanden außerdem ist das von 2015 baut da keiner mehr Fehler aus. Die schreiben alle immer in so einer schwer verständlichen Sprache ...  :Wink: 

Irgendwas war bei dem mit dem TPM Modul das im Kernel aktiv ist aber nicht im BIOS. Ich bin mir nicht mal sicher ob mein Rechner so ein TPM Modul hat. Wurden die vor 6 Jahren schon eingebaut. Mein Rechner ist ein Alien M14.

Das hat aber lange funktioniert auf dem Rechner. Das einzige was jetzt anders ist das ich immer mal wieder die Kernel Updates von Gentoo gemacht habe. Aktuell ist es der 4.12.12 (64 bit). Die Kernel config habe ich immer mit "make olddefconfig" aktualisiert.

----------

## schmidicom

Das TPM gibt es nun schon länger und es wurde auch in allen möglichen Geräten verbaut, also könnte dein Laptop durchaus auch eines haben könnte. Und wenn sich der Fehler durch das aktivieren des TPM beheben lässt wäre das ein schneller Workaround. Am besten schaust du einfach mal nach was sich dort so finden lässt, Alienware ist ja DELL und die hatten bis jetzt fast immer eine Option für "Aus", "Ein, aber inaktiv" oder "Ein, und aktiv".

Besser wäre es natürlich wenn der Bug in diesem Programm vom Upstream korrigiert würde aber darauf kann man da wohl echt nicht mehr hoffen.

----------

## alexander_ro

Mein Alien (M14R1) stammt glaube ich noch aus der Zeit vor DELL. Da machten die gerade die Übernahme.

Wohl wahr leider habe ich keine Einstellungen für TPM.

Würde ein TPM Chip irgendwie unter Linux angezeigt. Also z.B. lspci oder ähnlichem?

----------

## schmidicom

 *alexander_ro wrote:*   

> Würde ein TPM Chip irgendwie unter Linux angezeigt. Also z.B. lspci oder ähnlichem?

 

Was anderes als das folgende wäre mir nicht bekannt.

```
dmesg | grep -i tpm
```

----------

## alexander_ro

Danke für den fertig gebauten Befehl ...  :Smile: 

Dann habe ich so einen Chip nicht.

----------

## schmidicom

Tja dann muss ich passen.

Keine Ahnung warum es nicht tut was es soll, wie es aussieht fehlt dem Programm (warum auch immer) die nötige Zufälligkeit um richtig zu funktionieren.

----------

## alexander_ro

Ich habe da mal ein bisschen weiter gegraben. Mit strace sieht man das der

```

open("/dev/hwrng", O_RDONLY)

```

zu öffnen versucht.

Um mal zu sehen was da passiert habe ich mal versucht mit dd von dem Gerät zu lesen

```

dd if=/dev/hwrng of=test.neu

dd: Fehler beim Lesen von '/dev/hwrng': Kein passendes Gerät gefunden

0+0 Datensätze ein

0+0 Datensätze aus

0 bytes copied, 0,000523145 s, 0,0 kB/s

```

Ob das jetzt alles so richtig ist bin ich mir nicht sicher. Aber man sagt doch eigentlich das alles eine Datei sei dann muss ich doch von der lesen können.

----------

## schmidicom

Dann fehlt dir in deinem Kernel vielleicht auch einfach nur der "HW_RANDOM"

 *Kernel Menuconfig wrote:*   

> CONFIG_HW_RANDOM:
> 
> Hardware Random Number Generator Core infrastructure.
> 
> To compile this driver as a module, choose M here: the
> ...

 

----------

## alexander_ro

Sieht Okay aus:

```

CONFIG_HW_RANDOM=y

# CONFIG_HW_RANDOM_TIMERIOMEM is not set

CONFIG_HW_RANDOM_INTEL=y

CONFIG_HW_RANDOM_AMD=y

CONFIG_HW_RANDOM_VIA=y

```

Was das TIMERIOMEM ist weiß ich jetzt nicht.

----------

## schmidicom

Bei mir sieht es so aus:

 *cat /usr/src/linux/.config | grep -i HW_RANDOM wrote:*   

> CONFIG_HW_RANDOM=y
> 
> CONFIG_HW_RANDOM_TIMERIOMEM=y
> 
> CONFIG_HW_RANDOM_INTEL=m
> ...

 

----------

## alexander_ro

Ich habe mir mal das tar aus dem Ordner Distfiles kopiert und so umgebaut:

```

static void

random_seed (void)

{

        int            fd;

        struct timeval tv;

        unsigned int   seed;

        //if ((fd = open("/dev/hwrng", O_RDONLY)) >= 0 ||

        if ((fd = open("/dev/random", O_RDONLY)) >= 0 ||

            (fd = open("/dev/urandom", O_RDONLY)) >= 0)

        {

                read (fd, &seed, sizeof(seed));

                close (fd);

        } else {

                gettimeofday (&tv, NULL);

                seed = (getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec;

        }

        srandom(seed);

}

```

dann würde es wieder funktionieren.

Ich bau mal den Kernel mit den Optionen so wie es bei Dir ist weil es mir schon lieber wäre wenn das ginge ohne das ich den Sourcecode des Gentoo Pakets umbauen muss.

----------

## alexander_ro

Die Option CONFIG_HW_RANDOM_TPM gibt es bei mir gar nicht bei  mir ist aber auch der TPM-Hardware Support ausgeschaltet. Vielleicht muss ich den ja einschalten der kennt aber wieder jede Menge unter Optionen keine Ahnung was ich davon wieder brauche.

```

Device Drivers → Character devices → TPM Hardware Support

< > TPM Hardware Support  ----

--- TPM Hardware Support

< >   TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface (NEW) 

< >   TPM Interface Specification 1.2 Interface (I2C - Atmel) (NEW)

< >   TPM Interface Specification 1.2 Interface (I2C - Infineon) (NEW)

< >   TPM Interface Specification 1.2 Interface (I2C - Nuvoton) (NEW)

< >   National Semiconductor TPM Interface (NEW)

< >   Atmel TPM Interface (NEW)

< >   Infineon Technologies TPM Interface (NEW)

< >   TPM 2.0 CRB Interface (NEW)

< >   VTPM Proxy Interface (NEW)

< >   STMicroelectronics TPM Interface Specification 1.2 Interface (I2C) (NEW)

```

Magst Du vielleicht mal gucken wie das bei Dir aussieht ...  :Smile: 

----------

## alexander_ro

Nach einer weile herum probieren habe ich es genau so wie bei Dir hin bekommen. Geht aber leider trotzdem nicht ...  :Sad: 

```

dd if=/dev/hwrng of=test.neu bs=10 count=1

dd: Fehler beim Lesen von '/dev/hwrng': Kein passendes Gerät gefunden

0+0 Datensätze ein

0+0 Datensätze aus

0 bytes copied, 0,000589079 s, 0,0 kB/s

```

Mit dem macchanger geht es auch nicht.

----------

## ChrisJumper

Vielleicht will der aktuelle Treiber für deine Karte einfach keine alternative MAC-Adresse mehr zulassen?

Aber eigentlich erwartet man da ja eine Fehlermeldung. Was halt auch sein könnte ist das Systemd, ein Networkmanager oder sonst wer sich im Hintergrund heimlich um deine WLAN Funktion kümmert und das ignoriert?

Was zugegeben bei Gentoo etwas unwahrscheinlicher ist da dort nicht so viele Automatismen frei herumlaufen.

----------

## alexander_ro

Nein der Treiber kann das weil ja der macchanger eine andere MAC setzt als die die das WLAN vom Hersteller bekommen hat. Nur sollte der immer eine andere setzten was er nicht tut.

Es liegt daran das mein Rechner diesen TPM Chip nicht hat deshalb kann der das Device nicht öffnen. Ich frage mich nur warum das schon mal gegangen ist. Ich habe die stelle im Sourcecode mal geändert siehe einen Post weiter oben. Dann funktioniert das wieder.

Alles was ich gemacht habe ist diese Zeile die das TPM Gerät (hwrng) öffnet auskommentiert:

```

        //if ((fd = open("/dev/hwrng", O_RDONLY)) >= 0 ||

        if ((fd = open("/dev/random", O_RDONLY)) >= 0 ||

            (fd = open("/dev/urandom", O_RDONLY)) >= 0) 

```

So geht es zwar jetzt aber wenn aus welchem Grund auch immer das Portage-System den macchanger neu baut dann ist halt meine Änderung wieder ausgebaut.

Systemd mag ich nicht ... deshalb benutze ich den nicht und bin froh das Gentoo weiter hin eine alternative hat.

[Edit]

Netzwerkmanager mag ich auch nicht ... ich Manage selbst  :Smile: 

[/Edit]

----------

