なりすましのないネットワークカードMACアドレスを見つける方法

なりすましのないネットワークカードMACアドレスを見つける方法

Red Hat Enterprise Linux(RHEL)8で誰でもこれを行うifconfig eth0 hw ether abcd12341234と、

私が知っているifconfigすべてip -a

それでは、eth0インターフェイスの実際のMACアドレスを確実に取得する方法はありますか?では、どうすればよいですか? ...信頼できるソースからLinux Live CDから再起動して、インターフェイスのMACアドレスが変更されていないことを確認してください。

ベストアンサー1

この答えはLinuxに関するものです。

ifconfigこれは廃止され、この情報を提供するカーネルAPIへのアクセスはありません。

この情報は長い間検索できましたethtool --show-permaddr。はい(編集済み):

# ethtool --show-permaddr eth0
Permanent address: 10:1f:74:32:10:fe

一部のボード/ファームウェア/ドライバの組み合わせには永続アドレスがない可能性があり、結果は次のとおりです。

# ethtool --show-permaddr eth0
Permanent address: not set

現在のアドレスが既存の永続アドレス(設定されている場合)と異なる場合は、まったく新しいip link/kernelが(おそらく他のAPIを介して)永続アドレスを提供します。たとえば(編集済み):

# ip link set dev eth0 address 12:34:56:78:9a:bc

$ ip link show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff permaddr 10:1f:74:32:10:fe

これはpermaddr 10:1f:74:32:10:fe元のMACアドレスを表します。現在のMACアドレスが永続MACアドレスと異なる場合にのみ提供されます。これらの変更は一時的に発生する可能性があります。たとえば、インターフェイスがボンドスレーブに設定され、そのモードに従ってボンディングされたMACアドレスを継承する場合です。

プログラムで検索するには、変更されていなくてもJSON出力を使用することをお勧めします。jqたとえば、次のようになります。

ip -json link show dev eth0 | jq -r '.[] | .permaddr // .address'

永続MACアドレスを取得するか、MACアドレスが提供されていない場合(つまり、変更されていない永続MACアドレスであることを意味します。そうでない場合は現在のアドレスです)。

これが重要な場合は、まず永続アドレスがあることを確認する必要があります。一方、ethtoolボード/ファームウェア/ドライバの組み合わせに既知の永続アドレスが設定されていないことを知ることは許可されていないようです。

おすすめ記事