MAC adresser

Bilde av Steve Halama fra Unsplash

Bilde av Steve Halama fra Unsplash

Alle kablede og trådløse nettverkskort har en MAC addresse. Denne adressen er helt unik for nettverkskortet, litt på samme måte som ett personnummer er for en person. Det er denne adressen som blir brukt som sender og mottaks addresse for data som sendes over ett lokalt nettverk. Alle nettverkskort som blir produsert får brent inn en unik MAC adresse fra fabrikken.

Det er lett å tenke at MAC (Media Access Control) adressen er uinteressant for datamaskiner på ett nettverk. Det er jo tross alt IP adresser man bruker for å nå servere eller datamaskiner på ett lokalt nettverk eller på internett. Men viste du at det er MAC adresser datamaskiner i realiteten bruker for å snakke sammen?

ARP

Address Resolution Protocol

Alle datamaskiner og enheter som er koblet til et nettverk har en ARP (Address Resolution Protocol) tabell. Denne tabelle inneholder en oversikt over sammenhengen mellom IP adresser på nettverket og MAC adresser til datamaskinene som bruker den IP adressen.

Når din datamaskin skal sende en beskjed til en annen datamaskin ser datamaskinen din i ARP tabellen hvilken MAC adresse det skal sendes til. Hvis IP adressen tilhører samme nettverk som avsenderen sendes dataene til riktig MAC addresse på nettverket. Hvis IP adressen ikke tilhører det samme nettverket som avsenderen, sendes dataene til MAC adressen til routeren, som igjenn sender den videre til riktig nettverk. Routeren på mottakerens nettverk sender til slutt dataene til riktig datamaskin ved å bruke riktig MAC adresse utifra sin ARP tabell.

Nettverks switcher bryr seg ikke om IP adresser i det hele tatt. Den bryr seg kun om MAC addressene til datamaskinene som er tilkoblet, og hvilken fysisk port datamaskinen er koblet til på switchen.

Når en switch mottar en "frame" som skal gå til en MAC adresse, ser den i MAC tabellen sin for å finne ut hvilken fysisk port beskjeden skal sendes videre ut på, for å nå riktig datamaskin.

Hvis en en IP adresse eller MAC adresse ikke finnes i ARP tabellen sender datamaskinen en ARP request som en broadcast beskjed til alle datamaskiner på nettverket for å finne ut om det e noen datamaskiner som har den IP adressen. Den datamaskinen som har den IP adressen vil svare avsender datamaskinen som sendte ARP requesten, med at den har IP adressen.

Adresse format

Hexadesimal

MAC adresser er 48 bit / 6 byte lange, og skrives ved hjelp av hexadesimale tall.

Hexadesimale tall representerer verdiene fra 0 til 15 med å bruke 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Det er altså 16 forskjellige variasjoner.

Siden fire bit kan brukes til å representere tall fra 0 til 15 er det praktisk å bruke et hexadesimalt tall istedet for å skrive fire bit.

Det binære tallet 1111 = desimaltallet 15 = hexadesimal tallet F.

Binær tallet 1000 1100 skrives i hexadesimal som 8C.

Siden det for oss mennesker er mye lettere å skrive 8C raskt og feilfritt enn det er å skrive 1000 1100 raskt og feilfritt brukes hexadesimale tall ofte i stedet for å skrive binære tall.

For å gjøre det lettere å lese de tolv hexadesimale tallene kan de skrives på forskjellige måter:

  • ab:98:9b:1b:35:ad
  • AB-98-9B-1B-35-AD
  • Ab9.89b.1b3.5ad
  • AB98.9B1B.35AD
  • AB98:9B1B:35AD

Alle disse måtene å skrive MAC adresser på betyr det samme. Om det brukes små eller store bokstaver, og hvordan man skiller tallene i lesbare grupper har ingen betydning siden det kun er ment for å gjøre MAC adressen letter å lese.

Broadcast

FFFF:FFFF:FFFF

I likhet med IP er det mulig å sende ut broadcast til alle enheter på ett nettverk. Hvis mottaker MAC adressen blir satt til FFFF:FFFF:FFFF vil switchen sende beskjeden ut til alle tilkoblede datamaskiner, og alle datamaskiner vil lytte til beskjeden som ble sendt.

Når en enhet på nettveket mottar denne ARP requesten vil den se om det var hans IP adresse det ble spurt om. Hvis det ikke var enhetens IP adresse det ble spurt om dropper den eller ignorere ARP requesten, men hvis enheten har den IP adressen det ble spurt om vil den svare tilbake til avsenderen at den har IP adressen det ble spurt om.

Alle enheter som mottok ARP requesten og som eventuelt ikke hadde avsenderens IP adresse og MAC adresse vil oppdatere sin ARP tabell med den nye informasjonen. På den måten er det ikke så ofte en ARP request blir sendt ut på nettverket.

Oppbyggingen av en MAC adresse

Produsent og produkt

Av de 6 bytene som en MAC adresse består av, blir de første 3 bytene brukes til å identifisere produsenten av nettverks kortet. De siste 3 bytene er et unikt ID nummer for de nettverks kortet som ble produsert av den produsenten. Til sammen blir de en universelt unik identifikasjon på nettverks kortet.

En liste over ID nummer for produsenter som lager nettverks kort finner du på IEEE sine websider her .

Forandre MAC adresse

En kort guide for Linux

Mange WiFi aksess punkter og routere har mulighet for å sette opp opp en slags hvitelisting eller filter av hvilke enheter som kan koble seg til det trådløse nettverket basert på MAC adresser. Dette kan ha en grei effekt for å forhindre de som ikke har teknisk innsikt i nettverk fra å koble seg til, men det er lagt ifra en sikker løsning.

Til tross for at alle nettverks kort kommer med en universell unik adresse innbrent fra fabrikk er det en relativ smal sak å endre hvilken MAC adresse som skal brukes på av nettverks kortet både i Windows og Linux. Det er derfor greit å vite at det ikke har så stor verdi å ha en hvitelisting av hvem som kan koble seg til ett nettverk basert på MAC adresser. Hvis du ønsker å begrense hvem som kan koble seg til nettverket ditt bør du bruke andre metoder.

En av de raskeste og enkleste måten å endre MAC adressen til nettverks kortet ditt i Linux er å bruke programmet macchanger. I Debian baserte distroer som Ubuntu og RaspberryPi OS installeres det slik:

sudo apt install macchanger

Når macchanger er installert kan det brukes til å sette ny MAC adresse. I denne korte guiden bruker jeg nettverkskortet emp0s3 som et eksempel. Start med å deaktivere nettverks kortet:

sudo macchanger -r enp0s3

Når det er gjort kan du gi nettverkskortet den MAC adressen du selv ønsker:

sudo macchanger --mac=AA:BB:CC:DD:EE:FF

Nå kan du aktivere nettverks kortet igjen

sudo macchanger -p enp0s3

Nå kan du teste om endringene ble tatt i bruk.

ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3:  mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether AA:BB:CC:DD:EE:FF brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.239.10/24 brd 192.168.239.255 scope global dynamic noprefixroute ens33
       valid_lft 1165sec preferred_lft 1165sec
    inet6 fe80::360a:46d:8953:6232/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Dette er en effektiv måte å komme seg rundt MAC adresse begrensninger på nettverk som er "låst" eller "sikret" med en slik hvitelistings løsning. Du kan enkelt og greit låne MAC adressen fra en enhet du vet kan koble seg til nettverket.