Linux で MAC アドレスを永久に変更する方法

公開: 2023-04-02
背景に地球のパターンとバイナリの透かしが表示されたターミナル ウィンドウを表示している Linux ラップトップ
Fatmawati achmad zaenuri/Shutterstock
macchanger ユーティリティと systemctl ユニット ファイルを使用して、端末に永続的な新しい MAC アドレスを設定できます。 または GNOME で、[設定] > [Wi-Fi [またはネットワーク]] > [ID] に移動し、カスタム MAC アドレスを入力します。

すべてのネットワーク インターフェイスには、製造元によって設定された一意の MAC アドレスがあります。 これは、ネットワーク接続が接続エンドポイントを識別する方法です。 Linux では、必要に応じて MAC アドレスを永続的に変更できます。

目次

MAC アドレスとは
MAC アドレスの検索
macchanger を使用して Linux の MAC アドレスを変更する
マックチェンジャーのインストール
macchanger を使用して MAC アドレスを一時的に変更する
MAC アドレスを永続的に変更する方法
GNOME で MAC アドレスを永続的に変更する
気をつけて!

MAC アドレスとは

MAC アドレスは、デバイスを接続エンドポイントとして識別するためにネットワークが識別するために使用される一意のコードです。 これは、ネットワーク インターフェイスの中で「誰が誰なのか」という重要な質問に答えます。

すべてのネットワーク機器には、少なくとも 1 つのネットワーク インターフェイスが組み込まれています。 デスクトップ コンピュータまたはサーバーには、複数のネットワーク カードがインストールされている場合があります。 多くのラップトップには CAT5 ネットワーク ソケットと Wi-Fi カードが付属しており、箱から出してすぐに 2 つのネットワーク インターフェイスを利用できます。

すべてのネットワーク インターフェイスには固有の組み込み識別子があります。 そのデバイスとの通信に使用されるネットワーク プロトコルに関係なく、最低レベルでは、接続はメディア アクセス制御 (MAC) アドレスによって識別されます。 そのため、それらは一意でなければなりません。 ネットワーク インターフェイスに別の MAC アドレスを使用させることを、スプーフィングと呼びます。

MAC アドレスは、6 つの 16 進数で構成されます。 6 つの数字の間にコロン「:」またはハイフン「-」を入れて表記します。 これは、テスト コンピューターの 1 つの MAC アドレスです。

 b0:c0:90:58:b0:72

ほとんどの場合、最初の 3 つの数字は、ハードウェアの製造元を表す、組織的に一意の識別子です。 Wireshark の製造元検索ページを使用して OUI をデコードできます。 これは、コンピュータのマザーボード、ネットワーク カード、または Wi-Fi カードの製造元である可能性があることに注意してください。 製造業者は、コンピュータのコンポーネントの多くを購入し、それらを組み立てて完成品にします。そのため、それがコンピュータの製造業者と異なっていても驚かないでください。

MAC アドレスは組み込みであるため、実際に変更することはできません。 できることは、別の MAC アドレスを持つふりをするように Linux システムを構成することです。 ネットワーク上の他のデバイスに関する限り、コンピューターの MAC アドレスはブロードキャストするものであるため、最終結果は同じです。

MAC アドレスの検索

現在の MAC アドレスを調べるには、 linkオブジェクトでipコマンドを使用できます。 これにより、使用中かネットワークから切断されているかに関係なく、ネットワーク インターフェイスが一覧表示されます。

 IP リンク

ip link コマンドを使用してコンピューターの MAC アドレスを検出する

このコンピューターは、アクティブな Wi-Fi 接続wlan0と有線イーサネット接続enp3s0を備えたラップトップです。 有線接続は接続されていないため、非アクティブです。 ラップトップには、デフォルトのループバック接続であるloも構成されています。

関連: Linux で ip コマンドを使用する方法

macchanger を使用して Linux の MAC アドレスを変更する

macchangerユーティリティを使用すると、ネットワーク インターフェイスの MAC アドレスを柔軟なオプションで変更できます。 特定の MAC アドレスを設定するか、ランダムな MAC アドレスを使用できます。 ハードウェアと同じ 3 つの OUI バイトを使用する新しい MAC アドレスを取得することもできるため、ネットワーク インターフェイスの製造元は変わりません。

マックチェンジャーのインストール

Ubuntu にmacchangerインストールするには、次のコマンドを使用します。

 sudo apt install macchanger 

Ubuntu に Macchanger をインストールする

Fedora にmacchangerインストールするには、次のように入力する必要があります。

 sudo dnf install macchanger 

Fedora に Macchanger をインストールする

Manjaro では、コマンドは次のとおりです。

 sudo pacman -S macchanger 

Manjaroにmacchangerをインストールする

ディストリビューションのリポジトリにあるmacchangerのバージョンによっては、ネットワーク接続がオンラインになるたびに新しい MAC アドレスを作成するかどうかを尋ねる画面が表示される場合があります。 つまり、イーサネット ケーブルを接続するか、Wi-Fi を有効にした場合です。

Macchanger のインストール オプション画面

矢印キーを使用してハイライトを使用したいオプションに移動し、「Enter」を押します。

この方法にはいくつかの便利さがありますが、ここでは「いいえ」を選択します。 使用している MAC アドレスをある程度制御したいと考えています。 また、コンピュータのすべてのネットワーク インターフェイスで MAC アドレスを変更したくない場合もあります。 たとえば、Wi-Fi カードでのみ変更したい場合があります。

macchanger を使用して MAC アドレスを一時的に変更する

使用中のネットワーク インターフェイスの MAC アドレスをリセットすることはできません。 イーサネット接続は接続されておらず、非アクティブであるため、イーサネット接続の MAC アドレスを変更できます。

-r (ランダム) オプションは、完全にランダムな MAC アドレスを生成します。 MAC アドレスを設定するネットワーク インターフェイスの名前を渡す必要があります。

 sudo macchanger -r enp3s0 

macchanger でランダムな MAC アドレスを設定する

使用されていた MAC アドレスは、基礎となるハードウェア MAC アドレスまたは永続的な MAC アドレスと同じでした。 新しい MAC アドレスが下部に表示されます。

Wi-Fi カードの MAC アドレスも変更できます。Wi-Fi アダプターを停止した場合は、MAC アドレスを変更してから Wi-Fi アダプターを有効にします。

 sudo networkctl down wlan0
 sudo macchanger -r wlan0
 sudo networkctl up wlan0 

machanger を使用して MAC アドレスを変更できるようにするための Wi-Fi 接続の無効化と有効化

ランダムな MAC アドレスが必要ない場合は、 -m (MAC アドレス オプション) を使用して、小文字の 16 進数のコロン「:」形式で MAC アドレスを指定できます。

 sudo macchanger -m ae:f9:9b:31:40:c0 enp3s0 

macchanger で特定の MAC アドレスを設定する

関連: Ubuntu で静的 IP アドレスを設定する方法

MAC アドレスを永続的に変更する方法

それはすべて素晴らしくシンプルですが、再起動すると存続しません.

ただし、 systemdユニット ファイルを使用することでそれを実現できます。 ラップトップが起動するたびに、イーサネットと Wi-Fi インターフェイス用の新しい MAC アドレスをラップトップに与えるようにmacchanger取得します。

-e (終了) オプションを使用して、MAC アドレスを変更しますが、3 つの OUI バイトは同じままにします。

つまり、スプーフィングされた MAC アドレスは、実際のイーサネットおよび Wi-Fi ハードウェアを製造したのと同じ会社が製造したハードウェアに属しているように見えます。 これにより、認識されたメーカーのハードウェア以外からのパケットを拒否するルーター、ファイアウォール、またはスイッチの問題を回避できます。

2 つのサービスを作成します。 1 つはイーサネット接続用で、もう 1 つは Wi-Fi 接続用です。 1 つのユニット ファイルが各サービスのテンプレートとして機能します。

systemctl を使用して Linux サービスを一覧表示する方法
関連 systemctl を使用して Linux サービスを一覧表示する方法

ユニット ファイルを作成するには、 sudoを使用して、サービスに必要なベース名でファイルを編集する必要があります。 ファイル名のアットマーク「@」記号は、後で説明するように、サービスの起動時にネットワーク接続の名前に置き換えられます。

MAC アドレスをスプーフィングするため、ユニット ファイルを「[email protected]」と呼んでいます。

 sudo gedit /etc/systemd/system/[email protected] 

エディターを起動して systemd ユニット ファイルを作成する

このテキストをユニット ファイルにコピーし、ファイルを保存して、エディターを閉じます。

 [ユニット]
説明=%I での MAC アドレスのスプーフィング
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[サービス]
ExecStart=/usr/bin/macchanger -e %I
タイプ=ワンショット

[インストール]
WantedBy=マルチユーザー.ターゲット

接続ごとにサービスを作成する必要があります。 これを行うには、ユニット名のアットマーク「@」の後ろにネットワーク インターフェイスの名前を追加します。 最初にイーサネット接続を行います。

 sudo systemctl enable [email protected]

Wi-Fi 接続についても同じことを行います。

 sudo systemctl enable [email protected] 

起動時に 2 つのサービスが MAC アドレスを変更できるようにする

ラップトップを再起動した後、 macchanger使用して現在の MAC アドレスを確認できます。 sudoを使用する必要がないことに注意してください。これはmacchanger使用して MAC アドレス設定を報告するだけであり、変更しないためです。

 Macchanger enp3s0
 macchanger wlan0 

macchanger を使用して、イーサネットおよび Wi-Fi 接続の現在の MAC アドレスを表示する

これにより、2 つのネットワーク インターフェースで現在アクティブなスプーフィングされた MAC アドレスと、それらの元の MAC アドレスが表示されます。

ユニット ファイルで-e (終了) オプションを使用したため、スプーフィングされたアドレスの最初の 3 バイトは、元の MAC アドレスの最初の 3 バイトと同じです。

GNOME で MAC アドレスを永続的に変更する

ほとんどのデスクトップ環境では、新しい MAC アドレスを設定できます。 GNOME では、「設定」を開き、サイドバーから「Wi-Fi」または「ネットワーク」を選択することでこれを行うことができます。

MAC アドレスを設定する接続の横にある歯車のアイコンをクリックし、[ID] タブを選択します。

「MAC アドレス」フィールドに新しい MAC アドレスを入力するか、ドロップダウン メニューから正規の MAC アドレスを選択できます。

設定アプリケーションの GNOME ネットワーク接続の [ID] タブ

「クローン アドレス」ドロップダウン メニューでは、次のいずれかを選択できます。

  • Preserve : ブート時に MAC アドレスを保持します。 設定したMACアドレスから変更しないでください。
  • Permanent : 正規のハードウェア MAC アドレスを使用します。
  • Random : ランダムな MAC アドレスを生成します。
  • Stable : ハッシュされた安定した MAC アドレスを生成します。 接続がアクティブになるたびに、同じ偽の MAC アドレスが使用されます。 これは、ハードウェアの MAC アドレスを隠したいが、DHCP ルーターから同じ IP アドレスを取得する必要がある場合に役立ちます。

再起動するか、接続をオフにしてから再度オンにすると、変更が適用されます。

気をつけて!

MAC アドレスの変更は、他人のネットワーク デバイスになりすます場合を除き、違法ではありません。 お住まいの地域では、ネットワーク トラフィックを違法に受信することに対処するための法律が制定されている可能性があります。 たとえば、英国には Computer Misuse Act があり、米国には Computer Fraud and Abuse Act があります。

必ず匿名になりますが、他人のふりをしないでください。

関連: bmon を使用して Linux でネットワーク帯域幅を監視する方法