Kaip pakeisti kompiuterio MAC adresą Linux sistemoje?

MAC (Media Access Control) adresas yra gamybos metu į tinklo plokštę hardwariškai įrašomas adresas ir jo pakeisti neįmanoma. Šį MAC adresą tinklo plokštės tvarkyklė įrašo į kiekvieną išsiunčiamą paketą. Štai čia jį ir galima pakeisti, t.y. tvarkyklei nurodyti, kad į kiekvieną paketą programiškai būtų įrašomas ne tikrasis MAC adresas, o netikras.

Linux sistemoje tą galima padaryti keliomis komandomis: ip link, ifconfig ir macchanger.

ip link

Komanda ip link priklauso paketui iproute. Šis paketas yra labai galingų Linux įrankių rinkinys, savo funkcionalumu ir galimybėmis prilygstantis Cisco komandoms. Komandų sintaksė irgi šiek tiek primena Cisco komandas.

Pasižiūrime į tinklo plokštės MAC adresą.

root@pasaka:~# ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:c0:9f:55:6e:e3 brd ff:ff:ff:ff:ff:ff

Norėdami jį pakeisti, iš pradžių turime išjungti interfeisą.

root@pasaka:~# ip link set eth0 down
root@pasaka:~# ip link show eth0
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:c0:9f:55:6e:e3 brd ff:ff:ff:ff:ff:ff

Pakeičiame MAC adresą.

root@pasaka:~# ip link set eth0 address 00:11:22:33:44:55
root@pasaka:~# ip link show eth0
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

Kai naujas MAC adresas įrašytas, belieka įjungti interfeisą ir jis bus paruoštas naudoti su naujuoju MAC adresu. Beje, komandas galima trumpinti, visai kaip ir Cisco komandų aplinkoje.

root@pasaka:~# ip l set eth0 up
root@pasaka:~# ip l sh eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

ifconfig

Paketas iproute būna įdiegtas ne visose Linux sistemose, todėl kartais gali tekti naudoti senesnę programą ifconfig. Ji nėra tokia galinga kaip iproute, bet ji būna beveik be išimties visose Linux/Unix sistemose.

root@pasaka:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:c0:9f:55:6e:e3
          inet6 addr: fe80::2c0:9fff:fe55:6ee3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:370108 errors:0 dropped:0 overruns:0 frame:0
          TX packets:248931 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:414757035 (395.5 MB)  TX bytes:52503880 (50.0 MB)
          Interrupt:10 Base address:0x3000
root@pasaka:~# ifconfig eth0 down
root@pasaka:~# ifconfig eth0 hw ether 00:11:22:33:44:55
root@pasaka:~# ifconfig eth0 up
root@pasaka:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55
          inet6 addr: fe80::211:22ff:fe33:4455/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:370108 errors:0 dropped:0 overruns:0 frame:0
          TX packets:248936 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:414757035 (395.5 MB)  TX bytes:52504258 (50.0 MB)
          Interrupt:10 Base address:0x3000

macchanger

Pabaigai liko pats patogiausias įrankis MAC adreso keitimui – komanda macchanger. Šios komandos vienintelė paskirtis – pakeisti MAC adresą, todėl ji turi kelias patogias specifines funkcijas: gali automatiškai pakeisti visą adresą, tik 3 paskutinius baitus, praneša MAC adreso gamintoją ir pan.

root@pasaka:~# macchanger --help
GNU MAC Changer
Usage: macchanger [options] device

  -h,  --help                   Print this help
  -V,  --version                Print version and exit
  -s,  --show                   Print the MAC address and exit
  -e,  --endding                Don't change the vendor bytes
  -a,  --another                Set random vendor MAC of the same kind
  -A                            Set random vendor MAC of any kind
  -r,  --random                 Set fully random MAC
  -l,  --list[=keyword]         Print known vendors
  -m,  --mac=XX:XX:XX:XX:XX:XX  Set the MAC XX:XX:XX:XX:XX:XX

Report bugs to alvaro@gnu.org
root@pasaka:~# macchanger -m 00:11:22:33:44:55 eth0
Current MAC: 00:c0:9f:55:6e:e3 (Quanta Computer, Inc.)
Faked MAC:   00:11:22:33:44:55 (Cimsys Inc)

Visi šie pakeitimai galios iki kito MAC adreso pakeitimo arba kompiuterio perkrovimo. Yra 2 metodai išsaugoti pakeistą MAC adresą po kompiuterio perkrovimo: gerasis ir blogasis.

Gerasis metodas yra įrašyti naująjį MAC adresą į Linux distribucijos tinklo konfigūracijos failą. Kiekvienoje distribucijoje šis failas yra skirtingoje vietoje ir skirtingai konfigūruojamas. Pavyzdžiui, Debian sistemoje reikia į failą /etc/network/interfaces, į eth0 sekciją, įrašyti eilutę

hwaddress ether 00:11:22:33:44:55

Jei nežinote, kur toks failas yra, teks naudoti blogąjį metodą. Teks įrašyti tą pačią komandą, kurią naudojote MAC adreso keitimui, į kokį nors sistemos startavimo metu paleidžiamą failą. Tokių failų vieta vėlgi priklauso nuo sistemos, pavyzdžiui, Debiane tai /etc/rc2.d/ aplankas.

This entry was posted in tinklo plokštė and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>