mac

Man ahnt förmlich, wie PC-Hardware entworfen und hergestellt wird:
einfach Scheiße durch's Sieb drücken und Intel inside drüber hauchen
-- lässt sich garantiert verkaufen ...
- lars@elbe.desy.de



IPv6 DHCP - oder die Suche nach der DUID   (Juni 2014)

 Zur Konfiguration eines Mac's per DHCPv6 benötigt man auf der Server-Seite die DUID dieses MAC's. (siehe unten ...)

Es gibt mehrere Möglichkeiten, an diese DUID zu kommen:

Möglichkeit 1:

Im Terminal auf dem Mac ausführen:

ipconfig getv6packet en0

und man findet (nach einer erfolgreichen Transaktion mit einem DHCPv6 Server) im Output eine Zeile wie diese (Ethernet Mac Adressen geändert):

CLIENTID (1) Length 14 DUID LLT HW 1 Time 455105088 Addr 00:25:4b:xx:yy:zz

Dort ist die DUID schon vorhanden ("Time 455105088 Addr 00:25:4b:xx:yy:zz") aber noch nicht nutzbar (siehe unten).

Möglichkeit 2:

Aufruf von:

tcpdump -lvi <interface-name> ip6 or icmp6

und den DHCPv6 Handshake aufzeichnen. Dort fird man dan ähnliches wie dieses finden:

12:42:37.318870 IP6 (flowlabel 0x91d82, hlim 1, next-header UDP (17) payload length: 106) fe80::225:nnnn:oooo:pppp.dhcpv6-client > ff02::1:2.dhcpv6-server: 
[udp sum ok] dhcp6 request (xid=a869cc (client-ID hwaddr/time type 1 time 455105088 00254bxxyyzz) (option-request DNS-server DNS-search-list) (elapsed-time 0)
(server-ID hwaddr/time type 1 time 418558931 001b21aabbcc) (IA_NA IAID:0 T1:0 T2:0 (IA_ADDR 2001:uuuu:vvvv:wwww::1234 pltime:0 vltime:0)))

Auch dort kann man die DUID schon sehen ("time 455105088 00254bxxyyzz").

Möglichkeit 3:

Man benutze wireshark um sich die DHCPv6 Transaktion anzuschauen, dort findet man dann in den DHCPv6 Paketen unter "Client Identifier":

[....]
DUID: 00:01:00:01:1b:20:5a:40:00:25:4b:xx:yy:zz
DUID Type: link-layer address plus time (1)
Hardware type: Ethernet (1)
[....]

Der Wert hinter "DUID:" ist direkt in der isc-dhcpv6 Konfigurationsdatei benutzbar.

Was bedeuten nun die Werte aus Möglichkeit 1 und 2 ?

Laut RFC3315 setzt sich die DUID zusammen aus:

9.2. DUID Based on Link-layer Address Plus Time [DUID-LLT]

   This type of DUID consists of a two octet type field containing the
   value 1, a two octet hardware type code, four octets containing a
   time value, followed by link-layer address of any one network
   interface that is connected to the DHCP device at the time that the
   DUID is generated.  The time value is the time that the DUID is
   generated represented in seconds since midnight (UTC), January 1,
   2000, modulo 2^32.  The hardware type MUST be a valid hardware type
   assigned by the IANA as described in RFC 826 [14].  Both the time and
   the hardware type are stored in network byte order.  The link-layer
   address is stored in canonical form, as described in RFC 2464 [2].

   The following diagram illustrates the format of a DUID-LLT:

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               1               |    hardware type (16 bits)    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        time (32 bits)                         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    .                                                               .
    .             link-layer address (variable length)              .
    .                                                               .
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Das heisst also in diesem Fall (00:01:00:01:1b:20:5a:40:00:25:4b:xx:yy:zz):

00:01 = DUID Type (DUID-LLT)
00:01 = Hardware Type nach RFC826 (Type 1 = Ethernet)
1b:20:5a:40 = Zeitstempel, oben in 1 und 2 jeweils dezimal 455105088, ergibt hexadezimal 1b 20 5a 40 und
00:25:4b:xx:yy:zz = die mac Adresse des Client Interfaces

Fertig!

Die Zeile in der isc-dhcpv6 Konfigurationsdatei sieht dann folgendermassen aus:

host-identifier option dhcp6.client-id 00:01:00:01:1b:20:5a:40:00:25:4b:xx:yy:zz;

... und der Client bekommt "seine" v6 Adresse.


 

 

Samhain host-based intrusion detection system   (Januar 2014)

Auf der Suche nach einer Software zur Intrusion Detection bin ich auf Samhain gestossen und wollte das mal ausprobieren. Unter Mac OS 10.8 und 10.9 gibt es aber offenbar Probleme mit dem in Xcode enthaltenen Compiler, das Kompilieren der Datei sh_tiger1_64.c triggert offenbar einen Bug im llvm/clang Backend: "ran out of registers during register allocation".

Nach einigem Suchen kam ich auf den Workaround, das man das gute Stück dadurch kompiliert bekommt, das man aus der "configure"-generierten Datei config_xor.h die Zeile "#define TIGER_OPT_ASM 1" auskommentiert.

 


 

IPv6 DHCP mit MAC OS X 10.8.5 als Client      (September 2013)

Um einen MAC per DHCPv6 mit einer oder mehreren IPv6 Adresse(n) zu betanken benötigt man auf der Server-Seite die DUID dieses MAC's.

Diese - von OS X vergebene DUID - findet man in der Datei /private/var/db/dhcpclient/DUID_IA.plist

Vorsicht: beim Restore eines Image-Backups auf einen anderen Mac wandert diese Datei mit! Einfach löschen, dann wird automatisch eine neue DUID erstellt. Der gesamte Client Mechanismus unter MAC OS ist wenig dokumentiert, allerdings funktioniert das ganz hervorrangend und zuverlässig. Demnächst hier mehr zu diesem Thema.

PS: Solle man mal in die Verlegenheit kommen, sich eine DUID selbst generieren zu müssen, gibt es hier ein perl-script dafür.


 

WLAN Diagnose unter MAC OS X 10.8.4     (Juli 2013)

[ Update 01/2014: Das funktioniert genauso unter OS X 10.9.1 Maverics. ]

MAC OS besitzt eine eingebaute WLAN Diagnosemöglichkeit in Mountain Lion. Für diese Zwecke habe ich bisher immer KisMAC benutzt, aber die letzte Version ist von 2011 und ich habe den EIndruck, das das nicht so richtig läuft unter ML.

Für die eingebauten Diagnose Tools gibt es offenbar je nach OS Version unterschiedliche Wege, um die Tools aufzurufen, für 10.8.4 funktionierten diese Wege nicht und deshalb hab' ich's hier einmal dokumentiert:

1. Bei gedrückter ALT/Option Taste das  WLAN Symbol in der Statusleiste anklicken

WLAN Diag ALT Click

 

 

 

 

 

 

 

 

 

 

Jetzt gibt's schon eine Menge mehr Informationen als ohne ALT zu klicken ! Unten ist der Auswahlpunkt "Diagnose für drahtlose Umgebungen öffnen ..." - dort bitte klicken.

2. Anschliessend muss man sich einmal als Administrator durch Passworteingabe authorisieren und weiter gehts danach hiermit:

WLAN Diag Einleitung

 

 

 

 

 

 

 

 

 

 

3. Oben links in der Statuszeile erscheint jetzt "Diagnose für drahtlose Umgebungen" - hier jetzt bei "Fenster -> Dienstprogramme" klicken:

WLAN Diag Fenster DP Click

 

 

 

 

 

 

 

 

 

 

 

4. ... und schon ist man im Startfenster der WLAN Diagnose:

WLAN Diag Info

 

 

 

 

 

 

 

 

 

Im oberen Teil sind die weiteren Wahlmöglichkeiten des Diagnoseprogramms erreichbar: Informationen, Netzverkehr aufzeichnen, Protokollieren WLAN Suche und Leistung. Das "Informationen" Fenster haben wir schon oben gesehen, hier kommen noch Beispiele für das Fenster "WLAN Suche":

WLAN Diag Srch

 

 

 

 

 

 

 

 

 

und "Leistung":

WLAN Diag Grph