MAC address spoofing (Русский)

В статье описаны способы подмены адреса Media Access Control (MAC).

Состояние перевода: На этой странице представлен перевод статьи MAC address spoofing. Дата последней синхронизации: 10 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Вручную

Существует два способа подменить MAC-адрес "вручную": установить и настроить либо iproute2, либо macchanger. Оба способа изложены ниже.

iproute2

Сперва проверьте ваш текущий MAC-адрес:

# ip link show интерфейс

Здесь интерфейс — имя вашего сетевого интерфейса.

Необходимая нам в данный момент информация расположена в строке, начинающейся со слов "link/ether", за которыми следует 6-байтный номер:

link/ether 00:1d:98:5a:d1:3a

Отключите интерфейс:

# ip link set dev интерфейс down

Переходим к собственно подмене MAC-адреса. В качестве нового адреса подойдет любое шестнадцатеричное число, однако имейте в виду, что некоторые сети могут отказаться присваивать IP-адрес клиенту, чей MAC-адрес не принадлежат ни одному из производителей оборудования. Поэтому, если вы не контролируете сеть(и), к которой подключены, используйте префикс MAC (первые три байта) реального производителя, а для оставшихся трех укажите произвольные значения. Подробнее см. Википедия:Уникальный идентификатор организации.

Чтобы сменить MAC, выполните:

# ip link set dev интерфейс address XX:XX:XX:XX:XX:XX

где вместо XX:XX:XX:XX:XX:XX необходимо указать любое 6-байтное значение.

Последний шаг — включить интерфейс обратно:

# ip link set dev интерфейс up

Чтобы убедиться, что подмена MAC-адреса действительно произошла, снова выполните команду ip link show интерфейс и проверьте значение "link/ether". Если подмена сработала, "link/ether" будет иметь то значение, которое вы ему присвоили.

macchanger

В этом способе используется macchanger (GNU MAC Changer). Он предоставляет набор функций для смены адреса на, например, соответствующий конкретному производителю или полностью случайный.

Установите пакет macchanger.

Подмена осуществляется для конкретного интерфейса: в каждой из следующих команд заменяйте интерфейс на имя вашего сетевого интерфейса.

Вы можете сгенерировать полностью случайный адрес:

# macchanger -r интерфейс

Чтобы изменить только байты, которые являются уникальными для конкретного устройства (благодаря чему при проверке MAC-адрес будет по-прежнему считаться принадлежащим тому же производителю), выполните:

# macchanger -e интерфейс

Для задания конкретного MAC-адреса выполните:

# macchanger --mac=XX:XX:XX:XX:XX:XX интерфейс

где XX:XX:XX:XX:XX:XX — MAC, который вы хотите присвоить.

Наконец, для восстановления исходного значения MAC-адреса:

# macchanger -p интерфейс
Примечание: В процессе смены МАС-адреса вы не сможете использовать устройство вне зависимости от способа подключения и статуса (включён/выключен) интерфейса.

Автоматически

systemd-networkd

systemd-networkd поддерживает подмену MAC-адреса при помощи файлов link (подробнее см. systemd.link(5)).

Для подмены статическим адресом:

/etc/systemd/network/00-default.link
[Match]
MACAddress=''оригинальный MAC''

[Link]
MACAddress=''новый MAC''
NamePolicy=kernel database onboard slot path

Для случайной генерации MAC-адреса при каждой загрузке, установите MACAddressPolicy=random вместо MACAddress=новый MAC.

systemd-udevd

udev позволяет подменять MAC-адреса с помощью правил. Атрибут позволяет udev найти нужное устройство по MAС-адресу производителя, после чего выполняется команда ip для его замены:

где — оригинальный MAC-адрес, а — новый. Для адреса необходимо использовать буквы в нижнем регистре.

Создание юнита

Ниже приведены примеры юнитов systemd для изменения MAC-адреса во время загрузки системы: первый устанавливает MAC утилитой ip, а второй использует macchanger для присвоения случайного адреса. Цель network-pre.target используется для задания очерёдности действий: MAC-адрес должен изменяться до запуска сетевых менеджеров вроде netctl, NetworkManager, systemd-networkd или dhcpcd.

iproute2

Юнит systemd, устанавливающий указанный MAC-адрес:

macchanger

Юнит systemd, устанавливающий случайный адрес с сохранением префикса производителя. Удостоверьтесь, пакет macchanger установлен:

Если вы хотите, чтобы адрес изменялся целиком, включая префикс производителя (первые три байта), используйте опцию вместо -e (см. #macchanger).

Включение службы

Добавьте имя интерфейса в название службы (например, ; в итоге служба будет назваться как-то вроде ) и включите её.

Перезагрузитесь либо перезапустите необходимые службы в правильном порядке. Если вы являетесь администратором сети, в которой находится машина с изменяемым MAC-адресом, то изучите таблицу статических/динамических адресов на маршрутизаторе на предмет того, был ли MAC дествительно изменён.

netctl

Вы можете использовать хуки netctl для выполнения команд при каждом (пере)запуске профиля netctl на определённом сетевом интерфейсе. Замените интерфейс на необходимый:

Сделайте скрипт исполняемым:

chmod +x /etc/netctl/interfaces/интерфейс

Источник: akendo.eu

NetworkManager

См. NetworkManager#Configuring MAC address randomization.

wpa_supplicant

wpa_supplicant может использовать случайный MAC-адрес для каждого ESS-соединения .

Добавьте следующие строки в файл настроек:

iwd

Со следующими настройками iwd будет генерировать случайный MAC-адрес при каждом запуске (подробнее см. ):

/etc/iwd/main.conf
[General]
AddressRandomization=once
AddressRandomizationRange=nic

Параметр определяет, какая часть адреса будет сгенерирована. При значении изменяться будут последние три октета, относящиеся непосредственно к сетевому интерфейсу; первые три октета останутся прежними. При значении сгенерирован будет весь адрес целиком.

Решение проблем

Не удается подключиться к сети DHCPv4

Если вы используете dhcpcd (в NetworkManager используется по умолчанию) и не можете подключиться к сети DHCPv4, необходимо изменить настройки dhcpcd, чтобы арендовать адрес.

Смотрите также

gollark: It's impossible to describe in a finite amount of data even.
gollark: We should obviously emulate clacks over IRC.
gollark: Also the web crawl data.
gollark: Oh, and I have some fairly large data in the form of the git.osmarks.net search indices and mirrors.
gollark: Part of the clacks encoding from the novels somehow.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.