Как подменить MAC-адрес сетевого интерфейса на Linux

48-битный MAC-адрес (например, 8:04f:b5:5:56:a0) - это глобальный
уникальный идентификатором, связанный с физическим сетевым интерфейсом,
который присваивается производителем соответствующей сетевой карты.
Высшие 24 биты в МАС-адрес (также известные как OUI или
"Organizationally Unique Identifier") однозначно идентифицируют
организацию, которая выдала МАС-адрес, так что не будет никакого
конфликта между всеми существующими МАС-адресами.
Хотя МАС-адрес является аппаратным адресом назначенным
производителем, пользователи могут изменить эти данные. Эту практику
часто называют "MAC address spoofing." В этом уроке я собираюсь
показать, как обмануть МАС-адрес сетевого интерфейса на Linux.
Для чего подделывать MAC-адрес?
Есть несколько технических причин, по которым вам нужно изменить
MAC-адрес. Некоторые интернет-провайдеры аутентифицируют соединение
абонента в Интернете через МАС-адрес своего домашнего маршрутизатора.
Предположим, ваш маршрутизатор просто сломан для такого скрипта. В то
время как ваш провайдер восстанавливает свой доступ в Интернет с новым
маршрутизатором, можно временно восстановить доступ к Интернету путем
изменения MAC-адрес вашего компьютера для этого сломанного
маршрутизатора.
Многие DHCP серверы берут IP-адреса на основе МАС-адресов.
Предположим, по какой-либо причине вам нужно получить другой IP-адрес
через DHCP, вместо имеющегося. Тогда вы можете обмануть свой MAC-адрес,
чтобы получить новый IP-адрес через DHCP, а не ждать пока у текущего
DHCP истечет срок.
Отложим технические причины в сторону, есть также законные причины
конфиденциальности и безопасности, почему вам бы хотелось скрыть свой
реальный MAC-адрес. В отличие от вашего уровня-3 IP-адреса, который
может меняться в зависимости от сети, к которой вы подключены, ваш
MAC-адрес может однозначно идентифицировать вас, где бы вы ни
находились. Называйте меня параноиком, но вы знаете, что это значит для
вашей личной жизни. Существует также уязвимость, известную как
piggybacking,где хакер на МАС-адрес в сети общественного WiFi может
попытаеться выдать себя за вас с помощью MAC-адреса во время вашего
отсутствия.
Как подделать временный MAC-адрес
В Linux вы можете переключить временный МАС-адрес во время работы.
Обратите внимание, что вы потеряете подключение к сети на мгновение во
время адресного перехода MAC. В этом случае измененный MAC-адрес может
вернуться к исходному при перезагрузке. В Linux есть несколько простых
способов изменить МАС-адрес во время работы.
Метод первый: iproute2
1
2
3
|
$ 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-адреса из известного списка поставщиков.
Для установки macchanger на Debian, Ubuntu или Linux Mint:
1
|
$ sudo apt-get install macchanger
|
Для установки macchanger на Fedora:
1
|
$ sudo yum install macchanger
|
Для установки macchanger на CentOS или RHEL:
1
2
3
4
5
6
|
$ wget http:
$ tar xvfvz macchanger-1.6.0.tar.gz
$ cd macchanger-1.6.0
$ ./configure
$ make
$ sudo make install
|
Следующие примеры являются одними из обычных действий для macchanger.
С macchanger вам больше не придется деактивировать/активировать сетевой
интерфейс вручную.
Чтобы подделать MAC-адрес на другое значение:
1
|
$ sudo macchanger --mac=00:00:00:00:00:01 eth0
|
Чтобы подделать MAC-адрес в случайное значение, сохраняя тот же OUI:
1
|
$ sudo macchanger -e eth0
|
Чтобы подделать MAC-адрес на совершенно случайные величины:
1
|
$ sudo macchanger -r eth0
|
Чтобы получить все адреса OUI MAC, связанные с определенным поставщиком (например, Juniper):
1
|
$ macchanger -l | grep -i juniper
|

Чтобы показать первоначально постоянные и поддельные МАС-адреса:
1
2
|
Current MAC: 56:95:ac:ee:6e:77 (unknown)
Permanent MAC: 00:0c:29:97:68:02 (Vmware, Inc.)
|
Как подделать постоянный MAC-адрес
Если вы хотите обмануть свой MAC-адрес на постоянно, вы можете
указать поддельный MAC-адрес в файлах конфигурации интерфейса. Например,
если вы хотите изменить МАС-адрес eth0, выполните следующие действия.
В Fedora, CentOS или RHEL:
1
|
$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
|
1
2
|
DEVICE=eth0
MACADDR=00:00:00:00:00:01
|
Кроме того, можно создать пользовательский сценарий запуска в
/etc/NetworkManager/dispatcher.d следующим образом, особенно если вы
используете Network Manager. Я предполагаю, что вы уже установили
macchanger.
1
|
$ sudo vi /etc/NetworkManager/dispatcher.d/000-changemac
|
1
2
3
4
5
6
7
|
#!/bin/bash
case "$2" in
up)
macchanger --mac=00:00:00:00:00:01 "$1"
;;
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
|
1
2
3
4
5
6
7
8
9
10
|
1
2
3
4
5
#!/bin/sh
if [ "$IFACE" = eth0 ]; then
ip link set dev "$IFACE" address 00:00:00:00:00:01
fi
|
1
|
$ sudo chmod 755 /etc/network/if-up.d/changemac
|