如何在Linux 上进行MAC 地址欺骗
《Linux就该这么学》给大家介绍个技能,没错这就是传说中的“MAC 地址欺骗”。网卡生产商在每一张网卡(NIC)在出厂时都会在上面刻上一个48位的全球唯一标识符(GUID),这串 GUID 就是网卡的 MAC 地址,用于确定一张网卡的身份。MAC 地址的高24位叫 OUI,是为网卡设置 MAC 地址的组织的标识符,这样一来,不同组织设置的 MAC 地址就不会冲突了。虽然 MAC 地址由厂商指定,但用户可以改变它。
怎么临时性地改变 MAC 地址?
- 01
方法一: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
- 02
方法二: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 地址?
- 01
在 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
- 02
在 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
- 03
《Linux就该这么学》介绍的以上的两种方式就介绍到这里,谢谢!