Как изменить MAC интерфейса wifi в OpenWrt

Задача:
---------------------------------------------------------------OpenWRT работает как клиент для подключения к сети wi-fi, чтобы раздавать интернет в локальной сети через ethernet порт. Недавно он был заблокирован на неподконтрольной точке доступа. Изменение имени устройства и его mac-адреса, должно снять блокировку.
Смена MAC адреса может понадобиться, если у провайдера существует жёсткая привязка к вашему роутеру. При смене устройства, провайдер должен зарегистрировать новый адрес вашего устройства. Обычно дозвониться сложно и такая смена адреса может занять несколько часов. Поэтому, быстрее поменять самостоятельно MAC-адрес и для провайдера устройства как будто останется старым.
UCI (Unified Configuration Interface) – унифицированный интерфейс конфигурации, направленный на простую и централизованную настройку OpenWrt.
Если авторизоваться на устройстве openwrt при помощи ssh, можно воспользоваться командой uci, для получения справки

Для удобства переведу параметры
Usage: uci [<options>] <command> [<arguments>] Commands: batch export [<config>] import [<config>] changes [<config>] commit [<config>] add <config> <section-type> add_list <config>.<section>.<option>=<string> show [<config>[.<section>[.<option>]]] get <config>.<section>[.<option>] set <config>.<section>[.<option>]=<value> delete <config>[.<section[.<option>]] rename <config>.<section>[.<option>]=<name> revert <config>[.<section>[.<option>]] Options: -c <path> установка пути поиска конфигурационных файлов (по умолчанию: /etc/config) -d <str> установка разделителя для значений списка в uci show -f <file> использовать для ввода информации содержимое файла <file> вместо стандартного потока stdin -m при импорте, объединение данных в уже существующий пакет -n имя не именованной секции при экспорте (по умолчанию) -N не присваивать имени не именованным секциям -p <path> добавить путь поиска файлов измененной конфигурации -P <path> добавить путь поиска файлов измененной конфигурации и использовать его по умолчанию -q тихий режим (не печатаются сообщения об ошибках) -s строгий режим (останавливаться на ошибках парсинга, используется по умолчанию) -S отключить строгий режим -X не использовать расширенный синтаксис для 'show'
Проверяем текущие настройки
root@FritzBOX:~# uci show wireless wireless.radio0=wifi-device wireless.radio0.type='mac80211' wireless.radio0.channel='11' wireless.radio0.hwmode='11g' wireless.radio0.path='platform/10180000.wmac' wireless.radio0.htmode='HT20' wireless.radio0.macaddr='CC:CE:1E:FF:47:97' wireless.default_radio0=wifi-iface wireless.default_radio0.device='radio0' wireless.default_radio0.network='lan' wireless.default_radio0.mode='ap' wireless.default_radio0.ssid='OpenWrt' wireless.default_radio0.encryption='none' wireless.default_radio0.disabled='1' wireless.default_radio0.macaddr='CC:CE:1E:FF:47:97' wireless.wifinet1=wifi-iface wireless.wifinet1.key='23442472460541061777' wireless.wifinet1.ssid='FRITZ!Box 7430 LN' wireless.wifinet1.device='radio0' wireless.wifinet1.mode='sta' wireless.wifinet1.network='wwan' wireless.wifinet1.encryption='psk2' wireless.wifinet1.short_preamble='0' wireless.wifinet1.macaddr='CC:CE:1E:FF:47:97' root@FritzBOX:~#
Меняем mac адреса. Стоит отметить, что сеть для подключения уже должна быть настроена, иначе у вас будет отсутствовать wifinet1.
root@FritzBOX:~# uci set wireless.radio0.macaddr='CC:CE:1E:FF:47:98' root@FritzBOX:~# uci set wireless.default_radio0.macaddr='CC:CE:1E:FF:47:98' root@FritzBOX:~# uci set wireless.wifinet1.macaddr='CC:CE:1E:FF:47:98'
Проверяем
root@FritzBOX:~# uci show wireless wireless.radio0=wifi-device wireless.radio0.type='mac80211' wireless.radio0.channel='11' wireless.radio0.hwmode='11g' wireless.radio0.path='platform/10180000.wmac' wireless.radio0.htmode='HT20' wireless.radio0.macaddr='CC:CE:1E:FF:47:98' wireless.default_radio0=wifi-iface wireless.default_radio0.device='radio0' wireless.default_radio0.network='lan' wireless.default_radio0.mode='ap' wireless.default_radio0.ssid='OpenWrt' wireless.default_radio0.encryption='none' wireless.default_radio0.disabled='1' wireless.default_radio0.macaddr='CC:CE:1E:FF:47:98' wireless.wifinet1=wifi-iface wireless.wifinet1.key='23442472460541061777' wireless.wifinet1.ssid='FRITZ!Box 7430 LN' wireless.wifinet1.device='radio0' wireless.wifinet1.mode='sta' wireless.wifinet1.network='wwan' wireless.wifinet1.encryption='psk2' wireless.wifinet1.short_preamble='0' wireless.wifinet1.macaddr='CC:CE:1E:FF:47:98' root@FritzBOX:~#
Сохраняем наши изменения
root@FritzBOX:~# uci commit wireless root@FritzBOX:~#
Чтобы сохранить все изменения в системе, во всех конфигах OpenWRT
root@FritzBOX:~# uci commit root@FritzBOX:~#
все изменения можно было сделать в конфиге /etc/config/wireless
root@FritzBOX:~# cat /etc/config/wireless config wifi-device 'radio0' option type 'mac80211' option channel '11' option hwmode '11g' option path 'platform/10180000.wmac' option htmode 'HT20' option macaddr 'CC:CE:1E:FF:47:97' option disabled '1' config wifi-iface 'default_radio0' option device 'radio0' option network 'lan' option mode 'ap' option ssid 'OpenWrt' option encryption 'none' option disabled '1' option macaddr 'CC:CE:1E:FF:47:97' config wifi-iface 'wifinet1' option key '23442472460541061777' option ssid 'FRITZ!Box 7430 LN' option device 'radio0' option mode 'sta' option network 'wwan' option encryption 'psk2' option short_preamble '0' option macaddr 'CC:CE:1E:FF:47:97' option disabled '1' root@FritzBOX:~#
Перезагружаем
root@FritzBOX:~# reboot
Подключаемся и проверяем. Для подключения по SSH можно воспользоваться PowerShell

И да, это тестовый роутер и поэтому без пароля 🙂
p.s. в качестве бонуса пароль в конфиге
Свежие комментарии