Linux 上的 MAC 位址欺騙

來源:互聯網
上載者:User

網卡生產商在每一張網卡(NIC)在出廠時都會在上面刻上一個48位的全球唯一識別碼(GUID,例如08:4f:b5:05:56:a0),這串 GUID 就是網卡的 MAC 位址,用於確定一張網卡的身份。MAC 位址的高24位叫 OUI(Organizationally Unique Identifier 組織唯一標示符),是為網卡設定 MAC 位址的組織的標識符,這樣一來,不同組織設定的 MAC 位址就不會衝突了。(譯註:實際生產中,並不是每個網路裝置都有不同的MAC地址,有時候地址空間不足,生產商會給發往不同地區國家的產品中用相同的地址空間。)

雖然 MAC 位址由廠商指定,但使用者可以改變它,這就是傳說中的“MAC 位址欺騙”。本文將向大家展示如何在 Linux 上玩 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
  1. $ sudo ip link set dev eth0 down
  2. $ sudo ip link set dev eth0 address 00:00:00:00:00:01
  3. $ sudo ip link set dev eth0 up
方法二:macchanger

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

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

  1. $ sudo apt-get install macchanger

在 Fedora 下安裝 macchanger:

  1. $ sudo yum install macchanger

在 CentOS 或 RHEL 下安裝 macchanger:

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

下面給出一些 macchanger 的進階使用例子。使用 macchanger 你不必再手動禁用、啟用你的網卡。

僅僅改變 MAC 位址:

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

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

  1. $ sudo macchanger -e eth0

為 MAC 設定一個完全隨機的地址:

  1. $ sudo macchanger -r eth0

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

  1. $ macchanger -l | grep -i juniper

顯示一塊網卡原來的 MAC 位址和偽裝的 MAC 位址:

  1. $ 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 下:
  1. $ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. DEVICE=eth0
  3. MACADDR=00:00:00:00:00:0

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

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

建立一個開機啟動指令碼,放在 /etc/network/if-up.d/ 目錄下:

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.