LinuxでMACアドレスを変更する方法!macchangerやipコマンドを使ったMACスプーフィング入門
システムのMACアドレスを変更すると、同じネットワーク上の他のデバイスになりすますことができます。これにより、本来その別のデバイス宛てに送信されたデータパケットを受信できるようになります。この手法は「MACスプーフィング」と呼ばれています。
Linuxには、デバイスのMACアドレスを変更できるツールが数多く存在します。しかし、選択肢が多すぎるため、安定して確実に動作する信頼性の高いユーティリティを見つけるのは意外と難しいものです。
この記事を読み終える頃には、MACアドレスの基本知識と、LinuxでMACアドレスを偽装(スプーフィング)する方法をしっかり理解できるようになります。
MACアドレスとは?
MACアドレス(Media Access Controlアドレス)とは、ネットワーク上のデバイスを識別するために使われる一意な16進数の識別子です。デバイスのネットワークインターフェースカード(NIC)に組み込まれているため、「物理アドレス」とも呼ばれます。
MACアドレスは以下のような形式です。
55:de:bc:7d:45:df
各デバイスには製造段階で固有のMACアドレスが割り当てられます。インターネットに接続されている何百万台ものデバイスを一意に識別できるのは、このMACアドレスのおかげです。
ネットワークのOSI参照モデルにおいて、MACアドレスはデータリンク層で正しいデバイスへデータを届ける役割を担っています。
LinuxでMACアドレスを変更する
デバイスのMACアドレスを変更したい理由はさまざまです。ネットワークのセキュリティ制限を回避したい場合もあれば、ネットワーク上の別のデバイスになりすましてパケットをキャプチャしたい場合もあるでしょう。
理由が何であれ、Linuxのツールを使えば対応できます。ここからは、LinuxでMACアドレスをスプーフィングする具体的な手順を紹介します。
macchangerを使う方法
macchangerは、端末(ターミナル)上で動作するLinuxユーティリティで、デバイスのデフォルトMACアドレスを簡単に変更できます。
Debian/Ubuntuにインストールする場合:
sudo apt install macchanger
Fedora、CentOSなどRHEL系ディストリビューションの場合:
sudo dnf install macchanger
sudo yum install macchanger
Arch Linuxにインストールする場合:
sudo pacman -S macchanger
インストール中に、ネットワークデバイス(イーサネットやWi-Fiなど)を再起動するたびにシステムのMACアドレスを自動的に変更するかどうかを尋ねるプロンプトが表示されます。Noを選択してEnterキーを押して先に進みましょう。
実際に操作を始める前に、まず自分のデバイス上のネットワークインターフェース名を確認する必要があります。次のコマンドを実行してください。
ip addr
出力結果では、イーサネットのインターフェース名はeth0と表示されます。同様にWi-Fiの場合、インターフェース名はwlan0またはwlp3s0になります。
もし表示されるラベルが異なる場合でも、インターフェース名は簡単に見分けられます。「w」で始まる名前はWi-Fiに関連し、イーサネットのインターフェース名は必ず「e」で始まるためです。
現在のマシンの物理アドレスを確認するには、次のコマンドを入力します。
macchanger -s interface
「interface」の部分には、情報を取得したいネットワークインターフェース名を指定します。
macchangerを使ってランダムなMACアドレスをマシンに割り当てるには、-rオプションを使用します。
macchanger -r interface
例えば、eth0インターフェースの物理アドレスを変更する場合は次のように実行します。
sudo macchanger -r eth0
macchangerは、元のアドレスと変更後の現在のアドレスを出力に表示してくれます。
ランダムなアドレスを割り当てるだけでなく、任意のカスタムMACアドレスを設定することも可能です。基本のコマンドに-mオプションを付けて実行するだけです。
sudo macchanger -m custom-address interface
「custom-address」には新しく割り当てたいMACアドレスを、「interface」にはネットワークインターフェース名を指定します。
eth0インターフェースにカスタムMACアドレスを割り当てる例:
sudo macchanger -m 44:ee:bc:6c:76:ba eth0
macchangerを使えば、将来のために元のMACアドレスを覚えておく必要はありません。-pオプションを使えば、変更をワンタッチでデフォルトに戻せます。
sudo macchanger -p eth0
ipコマンドとifconfigコマンドを使う方法
macchangerは使いやすく初心者に最適ですが、より細かい制御を求める上級者のLinuxユーザーは、ipコマンドの使用を好むかもしれません。
ただし、その前に必ず元のMACアドレスをメモしておいてください。後述のコマンドでMACアドレスを変更した後、自動的に元のアドレスへ戻す機能はないためです。変更後のアドレスを元のMACアドレスに戻すには、手動で再度設定し直す必要があります。
ipコマンドでMACアドレスを変更する前に、まずネットワークインターフェースをシャットダウン(無効化)します。
sudo ip link set dev eth0 down
次に、元のMACアドレスをカスタムアドレスに変更します。
sudo ip link set dev eth0 address 44:ee:bc:6c:76:ba
ipコマンドでネットワークインターフェースを再起動します。
sudo ip link set dev eth0 up
ターミナルに「ip addr」と入力して、上記のコマンドが正しく機能したか確認しましょう。
MACスプーフィングのもうひとつの方法として、ifconfigコマンドがあります。ifconfigは「Interface Config」の略で、ネットワークインターフェースを管理するための標準的なLinuxユーティリティです。
ipコマンドの場合と同様に、ifconfigで物理アドレスを変更する前にも、インターフェースをシャットダウンしておく必要があります。
sudo ifconfig eth0 down
続いて、インターフェースにカスタムMACアドレスを割り当てます。
sudo ifconfig eth0 hw ether 44:ee:bc:6c:76:ba
ifconfigでネットワークインターフェースを再起動します。
sudo ifconfig eth0 up
ワイヤレスインターフェース(wlan0など)のMACアドレスを変更したい場合は、コマンド内のeth0をワイヤレスインターフェース名に置き換えるだけです。
sudo ifconfig wlan0 hw ether 44:ee:bc:6c:76:ba
MACスプーフィングは違法?
サイバーセキュリティ分野の他の技術と同様に、MACスプーフィングにおける合法と違法の境界線は非常に曖昧です。MACアドレスを変更する目的によって大きく左右されます。
教育目的や学習のためであれば?間違いなく合法です(ただし、自分自身のネットワークでのみ試す場合に限ります)。しかし、他のネットワークでデータパケットをキャプチャしたり、セキュリティプロトコルを回避したりする目的ならおすすめできません。
Linuxと同様に、WindowsやMacのユーザーもデバイスのMACアドレスを閲覧・変更できます。主な違いは、作業に使用するインターフェースにあります。Linuxユーザーは一般的にコマンドラインでの操作を好む傾向があります。一方、WindowsやMacのユーザーの多くは、使いやすいグラフィカルインターフェースの方が馴染みやすいでしょう。
-
Windows 10でIPアドレスを変更する手順【初心者向け完全ガイド】
パソコンのIPアドレス(インターネットプロトコルアドレス)を変更するのは、実はとても簡単な作業です。専門用語が多くて難しそうに感じるかもしれませんが、やることは「正しい設定画面を開いて、必要な数値を入力し、既存の情報を置き換える」だけです。IPアドレスについてすでにご存じの方は、Windows 10でIPアドレスを変更する手順までスキップしても構いません。まずは基礎知識から学びたいという方は、このまま読み進めてください。 IPアドレス(インターネットプロトコルアドレス)とは? IPアドレスを理解するには、自動車のナンバープレートを思い浮かべると分かりやすいでしょう。新しく購入した車には、交通管
-
Windows 11でMACアドレスを確認する5つの方法|設定アプリからPowerShellまで徹底解説
MACアドレスとは、コンピューターを識別するための一意の識別子です。ローカルネットワーク上であなたのPCを特定するために使用されます。 すべてのパソコンやノートPCには「Media Access Control(メディアアクセス制御)」の略であるMACアドレスが割り当てられており、Windows 11も例外ではありません。MACアドレスは48ビット長の12桁の英数字で構成され、ネットワーク上のデバイスを一意に識別する役割を担っています。 ネットワーク機器の接続トラブルが発生したときや、ネットワークハードウェアの状態を確認したいときには、MACアドレスを調べる必要が出てくることがあります。MAC