Linux 上的 MAC 地址欺騙

導讀 網卡生產商在每一張網卡(NIC)在出廠時都會在上面刻上一個48位的全球唯一標識符(GUID),這串 GUID 就是網卡的 MAC 地址,用於確定一張網卡的身份。MAC 地址的高24位叫 OUI,是爲網卡設置 MAC 地址的組織的標識符,這樣一來,不同組織設置的 MAC 地址就不會衝突了。雖然 MAC 地址由廠商指定,但用戶可以改變它,這就是傳說中的“MAC 地址欺騙”。
爲什麼要玩 MAC 地址欺騙?

想要理由?這裏就給幾個比較有技術含量的理由。 一些網絡供應商會通過綁定你家路由器上的 MAC 地址來驗證你的身份,這個時候如果你的路由器壞了,你怎麼辦?你可以暫時把你的電腦的 MAC 地址改成你家路由器的 MAC 地址,讓你的 ISP 重新將你連入外網。(譯註:有這種事情麼?)

很多 DHCP 服務器會依賴 MAC 地址來分配 IP 地址。如果你想換一個分配給你的 IP 地址,你可以改改你的 MAC 地址。這樣一來,你不必等着 DHCP 服務器給你重新分一個 IP 地址,而是馬上就能得到一個新的。

除了技術原因外,這裏也有一些比較正當的理由來說明你爲什麼需要改變你的 MAC 地址:爲了隱私、爲了安全,你要把你真正的 MAC 地址隱藏起來。不像處在 ISO 模型第三層的 IP 地址會經常變來變去,你的 MAC 地址可不會改變。在你說我多疑之前,請確定你知道你的隱私到底是什麼東西。有一個入侵手段叫 piggybacking,黑客會在公共 WiFi 網絡下僞裝成你的 MAC 地址,並且在你不在場的時候僞裝成你的身份進行黑客活動。

怎麼臨時性地改變 MAC 地址?

你可以在 Linux 運行的時候改變 MAC 地址。需要注意的是當 MAC 地址轉換的那一會時間,你的網絡會掉線。當電腦重啓時 MAC 地址又會變回原來的。下面介紹幾種方法來改變你的 MAC 地址。

方法一:iproute2
方法一:iproute2
$ sudo ip link set dev eth0 down
$ sudo ip link set dev eth0 address 00:00:00:00:00:01
$ sudo ip link set dev eth0 up 
方法二:macchanger

macchanger 這個命令可以讓你把 MAC 地址改成不同生產廠商的序列號。

在 Debian,Ubuntu 或 Linux Mint 下安裝 macchanger:

$ sudo apt-get install macchanger

在 Fedora 下安裝 macchanger:

$ sudo yum install macchanger

在 CentOS 或 RHEL 下安裝 macchanger:

$ wget http://ftp.club.cc.cmu.edu/pub/gnu/macchanger/macchanger-1.6.0.tar.gz
$ tar xvfvz macchanger-1.6.0.tar.gz
$ cd macchanger-1.6.0 
$ ./configure
$ make
$ sudo make install 

下面給出一些 macchanger 的高級使用例子。使用 macchanger 你不必再手動禁用、啓用你的網卡。

僅僅改變 MAC 地址:

$ sudo macchanger --mac=00:00:00:00:00:01 eth0

在保證 OUI 一致的情況下爲 MAC 設置一個隨機地址:

$ sudo macchanger -e eth0

爲 MAC 設置一個完全隨機的地址:

$ sudo macchanger -r eth0

獲取所有網卡的 MAC 地址,然後只列出指定的廠商(比如 Juniper):

$ macchanger -l | grep -i juniper

顯示一塊網卡原來的 MAC 地址和僞裝的 MAC 地址:

$ macchanger -s eth0
Current MAC: 56:95:ac:ee:6e:77 (unknown) 
Permanent MAC: 00:0c:29:97:68:02 (Vmware, Inc.)
如何永久性地改變 MAC 地址?

如果你想在系統重啓後還保持僞裝 MAC 地址,你需要編輯配置文件。比如你想改變 eth0 的 MAC 地址,按以下方法搞起:

在 Fedora,CentOS 或 RHEL 下:
$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
MACADDR=00:00:00:00:00:0

或者你可以建一個開機啓動的腳本放在 /etc/NetworkManager/dispatcher.d 目錄下,前提是你使用 Network Manager 管理你的網絡。這裏假設你已經裝了 macchanger,腳本內容如下:

$ sudo vi /etc/NetworkManager/dispatcher.d/000-changemac
#!/bin/bash
 
case "$2" in
    up)
        macchanger --mac=00:00:00:00:00:01 "$1"
        ;;
esac
$ sudo chmod 755 /etc/NetworkManager/dispatcher.d/000-changemac
在 Debian,Ubuntu 或 Linux Mint 下:

新建一個開機啓動腳本,放在 /etc/network/if-up.d/ 目錄下:

$ sudo vi /etc/network/if-up.d/changemac 
#!/bin/sh
 
if [ "$IFACE" = eth0 ]; then
  ip link set dev "$IFACE" address 00:00:00:00:00:01
fi
$ sudo chmod 755 /etc/network/if-up.d/changemac

以上的兩種方式就介紹到這裏,謝謝!


本文轉載自:http://www.linuxprobe.com/linux-mac-address.html

免費提供最新Linux技術教程書籍,爲開源技術愛好者努力做得更多更好:http://www.linuxprobe.com/

發佈了268 篇原創文章 · 獲贊 14 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章