Я пытался проверить свои возможности подмены MAC-адресов в домашней сети с помощью Macchanger. Когда нет подключения к WiFi, все работает отлично. Я могу отключить интерфейс с помощью ifconfig, изменить mac, а затем снова включить его без проблем. Проверка с помощью ifconfig показывает случайный эфир — так что я знаю, что все в порядке.
Однако, когда я пытаюсь подключиться к своему WiFi, он показывает оригинальный BIA, когда я запускаю ifconfig. Вход в мой маршрутизатор показывает, что мой BIA также является зарегистрированным MAC-адресом, а не случайным.
Тогда мой вопрос таков: какая настройка по умолчанию заставляет Debian возвращаться к BIA моего интерфейса Wi-Fi вместо адреса, который я подделал?
Я уже пробовал следовать нескольким разным руководствам, в которых говорилось, что нужно попробовать изменить файл NetworkManager.conf и 00-default.link, но ни одно из них не сработало. Любая помощь будет оценена по достоинству. Спасибо!
решение1
NetworkManager получил возможность изменять MAC-адреса Ethernet интерфейсов, которые он обрабатывает, и делает это по умолчанию на беспроводных интерфейсах. Это переопределит любой другой инструмент, который ранее изменил MAC-адрес интерфейса.
Настройки подключения для Ethernet имеют префикс 802-3-ethernet.
, для беспроводного — 802-11-wireless.
. Я покажу пример с Ethernet, а затем расскажу о различиях с беспроводным подключением.
Ethernet
Основная настройка этого для каждого соединения называется 802-3-ethernet.cloned-mac-address
. Обратите внимание, что это cloned-mac-address
то, что отображаетсянмклипо причинам совместимости. Фактическое свойствовнутренне названныйassigned-mac-address
. Есть еще несколько связанных:
$ nmcli connection show id Myeth0 |grep mac # permanent MAC was redacted
802-3-ethernet.mac-address: 06:05:04:03:03:01
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist: --
mac-address
если установлено (обычно так), соединение применяется только к сетевой карте с этимпостоянныйMAC-адрес (который также может быть получен с помощью ethtool --show-permaddr eth0
), mac-address-blacklist
является противоположным: чтобы избежать применения общего соединения к заданному интерфейсу с этим MAC-адресом (очевидно, что должен быть установлен только один из них). Они не используются для настроек подмены MAC-адресов.
Итак, есть несколько вариантов:
не использую NetworkManager
а например напрямую
wpa_supplicant
и DHCP клиент.прошу NetworkManager больше не вмешиваться
Вы можете попросить NetworkManager вообще не трогать MAC-адрес:
# nmcli connection down id Myeth0 # nmcli connection modify id Myeth0 802-3-ethernet.cloned-mac-address preserve # ip link set eth0 down #very old NICs don't support changing MAC when up # ip link set eth0 address 0A:09:08:07:06:05 # nmcli connection up id Myeth0
Новый установленный MAC-адрес будет сохранен в том значении, которое он имеет в данный момент.
или просто позволить NetworkManager выполнить эту работу и не использовать другой инструмент до этого:
$ nmcli connection modify id Myeth0 802-3-ethernet.cloned-mac-address 0e:0d:0c:0b:0a:09 $ nmcli connection down id Myeth0 $ nmcli connection up id Myeth0
Теперь NM позаботится об изменении MAC-адреса на указанный.
Чтобы вернуться к постоянному значению, можно установить 802-3-ethernet.cloned-mac-address
значение permanent
(или оставить его пустым, так как это значение по умолчанию для Ethernet).
Есть и другие режимы, такие какслучайныйилистабильныйгде generate-mac-address-mask
также может использоваться (например, для генерации случайного MAC-адреса, но при этом всегда выглядящего как от одного и того же реального производителя)
Беспроводной
По умолчанию, когда
802-11-wireless.cloned-mac-address
пусто,случайныйиспользуется.Есть
802-11-wireless.mac-address-randomization
which, который может быть устаревшим, который может повлиять на предыдущую настройку. Не очень понятно в документации, но на самом деле не нужно
Большинство этих настроек также представлены в апплете GUI. Поле «Клонированный MAC-адрес» там не ограничивается раскрывающимся меню: вы можете ввести MAC-адрес в поле вместо предопределенных значений (Preserve, Permanent, Random, Stable).
Есть дополнительная настройка Wi-Fi, которую я не знаю, как изменить, кроме как отредактировав файлы конфигурации NetworkManager: wifi.scan-rand-mac-address
установите значениедапо умолчанию он сообщает NetworkManager о необходимости изменить MAC-адрес интерфейса Wi-Fiпри сканировании. Этот параметр является глобальным или для каждого устройства, но не для каждогосвязь, так как пока нет активированного соединения. Чтобы изменить его нанетвместодаВы можете добавить файл, /etc/NetworkManager/conf.d/devicewlan0.conf
выглядящий примерно так:
[device]
match-device=interface-name:wlan0
wifi.scan-rand-mac-address:no
но документация не очень многословна об этом. В любом случае эта настройка может понадобиться, возможно, только если был выбран 2-й вариант выше ( preserve
), а не 3-й (установка MAC-адреса).
Рекомендации:
https://developer.gnome.org/NetworkManager/stable/settings-802-3-ethernet.html
https://developer.gnome.org/NetworkManager/stable/settings-802-11-wireless.html
https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html(проверьте раздел устройства)