GNU/Linux >> Linux の 問題 >  >> Debian

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

この記事では、ネットワーク インターフェイスの MAC アドレスを恒久的に変更/破棄する方法を学びます。この目的のために、MAC アドレスを操作するためのユーティリティである Macchanger を使用します。このために、起動時に自動的に起動する systemd ユニットを作成しています。

この記事でMACアドレスを変更するために使用するツールであるMacchangerには、コンピューターが起動するたびにMACを変更するかどうかを尋ねるサービスがありますが、これはUbuntu 18.04では機能しません. Macchanger による変更はシステムを再起動するとリセットされるため、この記事では、Linux コンピューターの起動時に Macchanger を自動的に実行し、毎回 MAC アドレスを変更する systemd ユニットを作成する方法について説明します。

このガイドを使用するには、Linux システムで systemd が使用されている必要があります

1. Macchanger をインストール

Macchanger は、主要な Linux ディストリビューションのリポジトリにあるはずです。 Debian / Ubuntu / Linux Mint にインストールするには:

sudo apt install macchanger

2. MAC アドレスを変更するネットワーク インターフェイスを決定します

これを行うには、次のコマンドを使用できます:

ifconfig -a

これが機能しなくなったシステムを使用している場合は、代わりに次のコマンドを実行できます:

ip link show


ネットワーク インターフェースは次のように表示されます:

  • ifocnfig -aへ :

$ ifconfig -a
enp10s0: flags=4163  mtu 1500
        inet 192.168.1.211  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe60::cc24:29cf:2c1:1c5a  prefixlen 64  scopeid 0x20
        ether 1d:21:da:ab:1d:71  txqueuelen 1000  (Ethernet)
        RX packets 164861  bytes 215658240 (215.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 45118  bytes 8577639 (8.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 265  bytes 20133 (20.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 265  bytes 20133 (20.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
wlp3s0: flags=4098  mtu 1500
        ether 1e:14:57:1c:66:11  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  • ip link showへ :
$ ip link show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp10s0:  mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 1d:21:da:ab:1d:71 brd ff:ff:ff:ff:ff:ff
3: wlp3s0:  mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 1e:14:57:1c:66:11 brd ff:ff:ff:ff:ff:ff

これが有線ネットワーク インターフェイス enp10s0 です。 ワイヤレス ネットワーク インターフェイスは wlp3s0 です (以前、eth0 、1 などは有線インターフェイスに使用され、wlan0 、WLAN の場合は 1 など)。 MAC アドレスをスプーフィングするネットワーク インターフェースをメモします。

3.お使いのシステムで Macchanger が実際に動作しているかどうかを確認してください

再起動のたびに MAC アドレスを自動的に変更する systemd ユニットを作成する前に、Macchanger が実際に MAC アドレスを変更できることを確認してください (何らかの理由でこれが機能しないケースを見てきました)。 MAC アドレスを一時的に変更するには (変更はシステムの再起動後にリセットされます)、次のように Macchanger を実行します:

sudo macchanger -r NETWORK-INTERFACE

NETWORK-INTERFACE は、この記事の手順 2 に記載されている MAC を変更するネットワーク インターフェイスです (例:enp10s0、wlp3s0)。

Macchanger が動作する場合、これは -r です オプションは MAC をランダムな MAC アドレスに変更し、コマンドは元の MAC アドレスと新しい MAC アドレスを返す必要があります。

4.システムが起動するたびに Macchanger を自動的に実行する systemd ユニットを作成します (これは、システムが起動するたびに MAC アドレスが変更されることを意味します)

/etc/systemd/system/[email protected] を作成します systemd ユニット ファイルを開き、テキスト エディターで root として開きます:

sudo touch /etc/systemd/system/[email protected]
gedit admin:///etc/systemd/system/[email protected]

Gedit がインストールされていない場合は、上記のコマンドで、システムにインストールされている別のテキスト エディターに置き換えてください。

以下を [email protected] に貼り付けます ファイル:

[Unit]
Description=changes mac for %I
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=oneshot
ExecStart=/usr/bin/macchanger -r %I
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

systemd ユニットを使用 macchanger -r MAC を変更します。 -r 完全にランダムな MAC アドレスを設定します。 -r を変更できます -e へ MAC を変更するが、元の NIC 製造元のバイト -a を保持するには 同じ種類のランダムな製造元 MAC を配置するなど。以下を実行すると、利用可能なすべてのオプションを表示できます:

macchanger --help

カスタムの非ランダム MAC アドレスを設定することもできます。これを行うには、ExecStart=/usr/bin/macchanger -r %I を変更します 次のような行:

ExecStart=/usr/bin/macchanger --mac=XX:XX:XX:XX:XX:XX %I

XX:XX:XX:XX:XX:XX に置き換えます

5. Macchanger systemd サービスをアクティブ化

ここで、systemd サービスを有効にして、起動時に開始されるようにします。これを行うには、以下を使用します:

sudo systemctl enable [email protected]enp10s0.service

enp10s0 に置き換えます ステップ 2 のネットワーク アドレスを使用します。

同じコマンドを使用して、複数のネットワーク インターフェイスの MAC アドレスの変更を有効にすることができます。

6.システムを再起動します

これで、ネットワーク インターフェイスに新しい MAC アドレスが割り当てられます。古い (元の) MAC アドレスと新しい MAC アドレスを確認する方法については、以下を参照してください。

元の MAC アドレスと新しい MAC アドレスを確認する方法

Macchanger を使用して、元の MAC アドレスと新しい MAC アドレスを確認するには、次のコマンドを実行します:

macchanger -s NETWORK-INTERFACE

どこで NETWORK-INTERFACE  は、ステップ 2 のコマンドを使用して見つけたネットワーク インターフェイスです。

例:

$ macchanger -s enp10s0
Current MAC:   1d:21:da:ab:1d:71 (unknown)
Permanent MAC: 72:ab:3d:89:88:88 (Intel Corporate)

systemd を使用して再起動のたびに MAC の変更を無効にする方法

変更を元に戻すには、まず systemd MAC チェンジャー サービスを無効にします:

sudo systemctl disable [email protected]enp10s0.service

enp10s0 に置き換えます ステップ 2 のネットワーク アドレス (初期設定の説明から) を使用して、以前にサービスをアクティブ化した各ネットワーク インターフェースに対してこれを行います。

これで、MAC チェンジャーの systemd サービス ファイルを削除できます:

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


Debian
  1. KaliLinuxでmacchangerを使用してMACアドレスを変更する方法

  2. LinuxシステムのIDを変更する方法

  3. CentOS8でMACアドレスを変更する方法

  1. Debian10でMACアドレスを変更/なりすましする方法

  2. Linux でデフォルトのシェルを変更する方法

  3. Linux で MTU サイズを変更する方法

  1. RHEL 8 / CentOS8LinuxでIPアドレスを変更する方法

  2. UbuntuおよびLinuxMintでMACアドレスを変更またはスプーフィングする方法

  3. Linux でデフォルトのシェルを変更する方法