MACアドレスをランダムに変更してくれるGNU MAC Changerを試してみる

簡単にMACアドレスをランダムに偽装できる GNU MAC Changer を試してみました．

alobbs/macchanger: GNU MAC Changer

導入

$ sudo apt install macchanger

導入時にネットワークインターフェイスが有効になるときにmacchangerを有効にするかどうかを聞いてきます．

┌────────────────────────┤ Configuring macchanger ├─────────────────────────┐
│ │
│ Please specify whether macchanger should be set up to run automatically │
│ every time a network device is brought up or down. This gives a new MAC │
│ address whenever you attach an ethernet cable or reenable wifi. │
│ │
│ Change MAC automatically? │
│ │
│ <Yes> <No> │
│ │
└───────────────────────────────────────────────────────────────────────────┘

あとで変更したい場合は sudo dpkg-reconfigure macchanger で再度設定できます．

help

$ 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, --ending Don't change the vendor bytes
-a, --another Set random vendor MAC of the same kind
-A Set random vendor MAC of any kind
-p, --permanent Reset to original, permanent hardware MAC
-r, --random Set fully random MAC
-l, --list[=keyword] Print known vendors
-b, --bia Pretend to be a burned-in-address
-m, --mac=XX:XX:XX:XX:XX:XX
--mac XX:XX:XX:XX:XX:XX Set the MAC XX:XX:XX:XX:XX:XX

Report bugs to https://github.com/alobbs/macchanger/issues

現在のMACアドレス確認

wls1のMACアドレスは00:22:fa:33:45:6aになっています．

$ ip link show wls1
2: wls1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 00:22:fa:33:45:6a brd ff:ff:ff:ff:ff:ff

ネットワークインターフェイスをダウン

upのままだとエラーとなります．([ERROR] Could not change MAC: interface up or insufficient permissions: Operation not permitted)

$ sudo ip link set dev wls1 down

MACアドレスをランダムに変更

$ sudo macchanger -r wls1
Current MAC: de:ed:be:ef:01:23 (unknown)
Permanent MAC: 00:22:fa:33:45:6a (Intel Corporate)
New MAC: 7a:a9:98:47:10:1a (unknown)

macアドレスを元に戻す

$ sudo macchanger -p wls1
Current MAC: 78:a9:98:e1:2e:f8 (unknown)
Permanent MAC: 00:22:fa:33:45:6a (Intel Corporate)
New MAC: 00:22:fa:33:45:6a (Intel Corporate)

ベンダーIDは保持してランダムに変更

このオプションは使い勝手が良さそうですね．

$ sudo macchanger -e wls1
Current MAC: 00:22:fa:33:45:6a (Intel Corporate)
Permanent MAC: 00:22:fa:33:45:6a (Intel Corporate)
New MAC: 00:22:fa:db:b9:ed (Intel Corporate)

手動設定

これはip link set dev wls1 de:ed:be:ef:01:23やifconfig wls1 hw ether de:ed:be:ef:01:23と同じなのであまりmacchangerを使う意味ないですね．

$ sudo macchanger --mac=de:ed:be:ef:01:23 wls1
Current MAC: 00:22:fa:33:45:6a (Intel Corporate)
Permanent MAC: 00:22:fa:33:45:6a (Intel Corporate)
New MAC: de:ed:be:ef:01:23 (unknown)

ネットワークインターフェイスをアップ

upして何時ものように利用します．

$ sudo ip link set dev wls1 up

自動起動時の動作

/etc/network/if-pre-up.d/macchanger, /etc/network/if-post-down.d/macchangerで設定しているようです．この中を見ると，以下のように-e optionで実行されるのでベンダーIDは維持した状態でランダムに設定されるようです．

/usr/bin/{package} -e IFACE >> $LOGFILE 2>&1

ログファイルは/var/log/macchanger.logに保存されます．

環境

$ neofetch
_,met$$$$$gg. mk@x200
,g$$$$$$$$$$$$$$$P. -------
,g$$P" """Y$$.". OS: Debian GNU/Linux unstable (sid) x86_64
,$$P' `$$$. Model: 74574PJ ThinkPad X200
',$$P ,ggs. `$$b: Kernel: 4.16.0-1-amd64
`d$$' ,$P"' . $$$ Uptime: 2 days, 13 hours, 17 minutes
$$P d$' , $$P Packages: 5718
$$: $$. - ,d$$' Shell: bash 4.4.19
$$; Y$b._ _,d$P' Resolution: 1280x800
Y$$. `.`"Y$$$$P"' WM: awesome
`$$b "-.__ Terminal: sakura
`Y$$ Terminal Font: Fira Code 11
`Y$$. CPU: Intel Core 2 Duo P8400 (2) @ 2.267GHz
`$$b. GPU: Intel® GM45 Express Chipset
`Y$$b. Memory: 6579MiB / 7871MiB
`"Y$b._
`"""

$ dpkg-query -W macchanger
macchanger 1.7.0-5.3+b1