Linux中國

Linux 上的 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

$ 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 

via: http://xmodulo.com/2014/02/spoof-mac-address-network-interface-linux.html

譯者:bazz2 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國