- linux bash script – generate new mac for interface in a snap – generate random mac number script
- about MAC address(es)
- background story(s): MAC Address Randomization in WiFi
- good news: Debian already does it
- bad news: Android not
- generate random mac number:
- /scripts/mac_random1.sh
- /scripts/mac_random2.sh
- /scripts/mac_new.sh
- Как создать действительный случайный MAC-адрес с помощью оболочки bash
- 15 ответов 15
- Как создать действительный случайный MAC-адрес с помощью bash shell
- 13 ответов
- как сгенерировать случайный MAC-адрес из командной строки Linux
- unixforum.org
- Рандомный MAC-адрес при загрузке (как сделать?)
- Рандомный MAC-адрес при загрузке
- Re: Рандомный MAC-адрес при загрузке
- Re: Рандомный MAC-адрес при загрузке
- Re: Рандомный MAC-адрес при загрузке
- Re: Рандомный MAC-адрес при загрузке
- Re: Рандомный MAC-адрес при загрузке
- Re: Рандомный MAC-адрес при загрузке
- Re: Рандомный MAC-адрес при загрузке
- Re: Рандомный MAC-адрес при загрузке
- Re: Рандомный MAC-адрес при загрузке
linux bash script – generate new mac for interface in a snap – generate random mac number script
about MAC address(es)
not every switch has an IP assigned (if it has no web management interface, it does not need to) but it will have a MAC address.
MAC address are per vendor and per device unique identifiers that are used on layer2 (Data Link Layer (src: Wikipedia)) of the network stack (switches and VLAN operate on this layer, switches need to know, what device are connected to what port in order to route the “frames” e.g. point to point transmission of data – no routing)
this is what makes NAT so great: a NAT router is the visible (publicly visible IP and MAC address) part of one’s network.
Behind the NAT can be a lot of devices (tablets, phones, laptops, servers…) but their MAC addresses is not exposed to the publicly visible internet (e.g. google can not tell if one is using a Dell Laptop or a Lenovo laptop… but it can tell what router and internet provider one is using)
“The leftmost 6 digits (24 bits) called a “prefix” is associated with the adapter manufacturer (M). Each vendor registers and obtains MAC prefixes as assigned by the IEEE.” (src)
Intel got a lot of registered MAC addresses
background story(s): MAC Address Randomization in WiFi
To prevent third parties from using the MAC address to track devices, Android, Linux, iOS, and Windows [6] have implemented MAC address randomization.
In June 2014, Apple announced that future versions of their iOS platform would randomize MAC addresses for all WiFi connections.
The Linux kernel has supported MAC address randomization during network scans since March 2015, [7] but drivers need to be updated to use this feature. [8]
Windows has supported it since the release of Windows 10 [6] in July 2015.
one use case for frequent mac address changes: public wifi hot spots that limit one to 30min of free internet per MAC seen address…
good news: Debian already does it
bad news: Debian now also tries to get an dhcp assigned IPv6 address per default… but why would one needs this in a LAN?
bad news: Android not
at least not one’s device (Nexus 6P with LineageOS Android 8) run this search and get info about the status of this project
“Starting in Android 8.0, Android devices use randomized MAC addresses when probing for new networks while not currently associated with a network. In Android 9, you can enable a developer option (it’s disabled by default) to cause the device to use a randomized MAC address when connecting to a Wi-Fi network.
In Android 10, MAC randomization is enabled by default for client mode, SoftAp, and Wi-Fi Direct.
MAC randomization prevents listeners from using MAC addresses to build a history of device activity, thus increasing user privacy.
Additionally, MAC addresses are randomized as part of Wi-Fi Aware and Wi-Fi RTT operations.” (src)
on linux distros one does not need additional software, onborad linux tools are sufficient and can be scripted as follows:
generate random mac number:
there two versions:
/scripts/mac_random1.sh
wc -l /scripts/mac_random1.sh
/scripts/mac_random2.sh
wc -l /scripts/mac_random2.sh
only 9 lines! 🙂
/scripts/mac_new.sh
this script will use result from /scripts/mac_random2.sh
and asign it to the interface given
then use dhclient to get a new ip for this interface
(can not use old ip with new mac, won’t work, router get’s confused X-D)
one can leave out the monitoring part, but it’s interesting to see if a new ip get’s asigned or a old one.
Источник
Как создать действительный случайный MAC-адрес с помощью оболочки bash
Как я могу сгенерировать действительный случайный MAC-адрес с Bash.
Первая половина адреса всегда должна оставаться такой же
просто значение х должно генерироваться случайным образом?
15 ответов 15
Этот сценарий оболочки генерирует случайную строку, которую вы ищете:
У меня просто было кое-что здесь, которое показывало, как запустить его из командной строки, но, посмотрев на извилистое (но одобренное) решение Денниса Уильямсона, я вижу, что люди ожидают ответа, в котором им не нужно делать никакой работы. самих себя.
- Создайте int соответствующего размера, например, так: http://tldp.org/LDP/abs/html/randomvar.html
- Преобразовать в шестнадцатеричный код, например, так: http://snipplr.com/view/2428/convert-from-int-to-hex/
- Добавьте тире между тремя случайно сгенерированными кусками
Обратите внимание, что версия Python использует только поле шириной 16 для генерации шестнадцатеричного символа, так что вам не нужно беспокоиться о заполнении нулями — подход исправлен с учетом комментария.
В прошлом я делал это используя:
но это только сделает их в диапазоне 0-9. Для моих целей это было достаточно хорошо.
Возможно, лучшим решением было бы использовать printf:
Вот как это работает:
- Программа printf основана на функции C «printf», которая принимает «строку формата» в качестве первого параметра, а затем дополнительные параметры заполняют строку формата.
- % в строке формата вводит «спецификатор формата», который может быть одним или несколькими символами, указывающими, как форматировать аргументы.
- Ведущий ноль (0) в спецификаторе формата означает, что результирующий числовой вывод должен быть дополнен начальными нулями до указанной ширины.
- 2 говорит о том, что спецификатор должен отображаться с шириной в два символа.
- X завершает спецификатор и обозначает, что он должен интерпретироваться как число и отображаться как шестнадцатеричный. Поскольку это заглавные буквы, буквы af должны быть заглавными.
- \ N — это новая строка — printf интерпретирует обратную косую черту как escape-код, который можно использовать для отображения других символов, часто сложных символов, таких как новая строка.
- Остальные символы в спецификаторе формата распечатываются буквально, включая начальные «00-06-2F-» и тире между спецификаторами формата.
- Остальные аргументы являются подстановочными переменными оболочки (обозначаемыми $) и включают математическое выражение, которое является случайным числом (СЛУЧАЙНО) по модулю 256. Это приводит к случайному числу от 0 до 255.
Источник
Как создать действительный случайный MAC-адрес с помощью bash shell
Как я могу создать действительный случайный mac-адрес с bash.
первая половина адреса всегда должна оставаться такой же
просто значение x должно генерироваться случайным образом?
13 ответов
этот скрипт будет генерировать случайную строку искать:
У меня здесь было что-то, что показало, как запустить его из командной строки, но, посмотрев на запутанное (но поддержанное) решение Денниса Уильямсона, я вижу, что ответ, который люди ожидают, — это тот, где им не нужно делать какую-либо работу самостоятельно.
в прошлом я делал это с помощью:
но это сделает их только в диапазоне 0-9. Для моих целей этого было достаточно.
вероятно, лучшим решением было бы использовать printf:
вот как это работает:
- программа printf основана на функции C» printf», которая принимает» строку формата » в качестве первого параметра, а затем дополнительные параметры заполняют строку формата.
- % в строка форматирования вводит «спецификатор формата», который может быть одним или несколькими символами, говорящими, как отформатировать аргументы.
- ведущий нуль (0) в спецификаторе формата означает, что результирующий числовой вывод должен быть дополнен ведущими нулями до указанной ширины.
- 2 говорит, что спецификатор должен отображаться с шириной в два символа.
- X завершает спецификатор и обозначает, что он должен интерпретироваться как число и отображается в шестнадцатеричном виде. Так как это заглавные буквы, буквы a-f должны быть заглавными.
- \n является новой строкой — printf интерпретирует обратную косую черту как escape-код, который может использоваться для отображения других символов, часто сложных символов, таких как новая строка.
- остальные символы в спецификаторе формата печатаются буквально, включая начальный «00-06-2F -» и тире между спецификаторами формата.
- остальные аргументы-shell подстановки переменных (обозначаются$) и включают математическое выражение, которое является случайным числом (RANDOM) по модулю 256. В результате получается случайное число от 0 до 255.
Источник
как сгенерировать случайный MAC-адрес из командной строки Linux
Как мне сгенерировать случайный MAC-адрес из командной строки Linux?
Я ищу решение, которое требует только стандартных инструментов, обычно встречающихся в командной строке Linux.
MAC-адрес будет использоваться для гостевого KVM.
Преимущество этого метода по сравнению с совершенно случайным числом заключается в том, что можно надежно воспроизводить MAC-адрес на основе полного доменного имени компьютера, что иногда мне кажется полезным. Для 02 первого октета просто устанавливается «локально назначенный» бит, который делает очевидным, что это не предоставленный поставщиком MAC-адрес, и гарантирует, что вы не столкнетесь с реальным MAC-адресом сетевой платы.
Если вам нужно сгенерировать несколько MAC-адресов для каждого хоста, я использовал для объединения полного доменного имени с именем моста, к которому подключен интерфейс; это помогло распространить информацию по различным сетевым картам.
Опубликованные сценарии хороши, но я хочу добавить предупреждение: Mind the Birthday (парадоксон)!
Это связано с тем, что даже если у вас всего 23 человека, вероятность того, что у 2 из них будет день рождения в один и тот же день, уже составляет 50%.
От того, как вы его используете, зависит от вашего сценария, но если вы генерируете MACS случайным образом, примерно при 1 миллионе ваш шанс столкновения чисел Mac составляет 40% при 2 миллионах, то это уже 87%!
Если вам нужна только пара, это нормально, но когда вы поддерживаете ферму серверов с сотнями серверов, на каждом из них размещены десятки виртуальных машин, или если вы используете macs в качестве индекса в некоторой базе данных для ведения бухгалтерии, и вам нужны unique, будьте осторожны !
Ах, бензопила швейцарской армии снова едет. И что касается версии 0.2, я без стеснения краду отличную мысль Уомбла о том, что первый октет — 02:
Эти варианты тоже работают.
Потребление нагрузки в обоих вариантах очень похоже на быстрое измерение во времени.
Я знаю, что этот пост старый, но для будущих посетителей, если вы хотите криптографически безопасный псевдослучайный MAC-адрес, не ограничиваясь 0x02 в качестве OUI, вот быстрый генератор, в основном независимый от платформы:
Вот еще один, основанный на ответе Wombie:
Вот пять других вариантов, каждый из которых использует случайные биты для младшего значащего бита старшего значащего байта, который указывает, является ли адрес одноадресным или многоадресным, и для второго младшего значащего бита старшего значащего байта, который указывает, является ли адрес универсально или локально управляемый.
jot поставляется с OS X и BSD, но не с большинством дистрибутивов Linux. В jot -w изменяет формат, -s изменяет разделитель, и -r генерирует случайные числа.
od находится в POSIX, но hexdump нет.
OS X od ( /usr/bin/od ниже) использует другой формат вывода, чем GNU od :
В OS X в od вариантах помещены после того, как аргумент для входного файла рассматриваются как имена входных файлов, так что команда в ответе Аарона Toponce читает на /dev/urandom неопределенное время с OS иксов od .
Вы можете просто добавить $ RANDOM после $ FQDN, и это даст вам случайные mac-адреса при каждом запуске. Это особенно полезно для людей, которые хотят создать резервную копию vms, используя снимки или клоны vms.
Источник
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
Рандомный MAC-адрес при загрузке (как сделать?)
Модератор: Bizdelnick
Рандомный MAC-адрес при загрузке
Сообщение Larkin » 09.12.2016 17:36
Доброго времени суток!
У меня возникла острая необходимость сделать так, чтобы при каждой загрузке системы, перед поднятием сети, автоматически создавался рандомный MAC-адрес для сетевой карты и Wi-Fi.
Помогите, плз, это сделать.
Система: Linux Mint 18 MATE (Linux compname 4.4.0-34-generic #53-Ubuntu SMP Wed Jul 27 16:06:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux)
Re: Рандомный MAC-адрес при загрузке
Re: Рандомный MAC-адрес при загрузке
Сообщение Bizdelnick » 09.12.2016 17:55
в консол и вку́пе (с чем-либо) в общем в ообще | в течени е (часа) нович ок нюанс п о умолчанию | приемл емо пробле ма проб овать тра фик |
Re: Рандомный MAC-адрес при загрузке
да, более корректный вариант, чем
ifconfig wlan0 hw ether $MAC
ну а генерацию мака берешь из моей ссылки
Re: Рандомный MAC-адрес при загрузке
Сообщение Larkin » 09.12.2016 18:31
Спасибо! Поставил macchanger. При установке выбрал ДА на вопрос об автоматической смене MAC. Потом выполнил под рутом sudo macchanger -A wlp2s0. Смотрю ifconfig и вижу, что HWaddr каким был, таки и остался. Я уже и выключал вай-фай, и включал — безрезультатно. Хотя macchanger пишет:
Current MAC: XXX (Liteon Technology Corporation)
Permanent MAC: XXX (Liteon Technology Corporation)
New MAC: YYY (ORSYS GmbH)
Может я ошибся где-то или чего-то не сделал.
Re: Рандомный MAC-адрес при загрузке
Сообщение Bizdelnick » 09.12.2016 18:35
в консол и вку́пе (с чем-либо) в общем в ообще | в течени е (часа) нович ок нюанс п о умолчанию | приемл емо пробле ма проб овать тра фик |
Re: Рандомный MAC-адрес при загрузке
Сообщение Larkin » 09.12.2016 18:37
Re: Рандомный MAC-адрес при загрузке
Сообщение Bizdelnick » 09.12.2016 18:53
в консол и вку́пе (с чем-либо) в общем в ообще | в течени е (часа) нович ок нюанс п о умолчанию | приемл емо пробле ма проб овать тра фик |
Re: Рандомный MAC-адрес при загрузке
Сообщение Larkin » 09.12.2016 19:04
Дело в том, что Линухом я пользуюсь уже примерно пять лет. Но, моя работа ограничивалась только набором текстов и пользовании интернетом. В такую глубь я еще не лез. А на этом форуме столько информации, что у меня шары выкатились. ))) А ведь я даже не знаю, что конкретно искать чтобы получить то, что мне требуется.
Я хочу получить следующее:
1. При загрузке системы, еще ДО того, как сеть поднимется сменить МАК на случайный.
2. В дальнейшем, уже тогда, когда система запущена и работает, автоматически менять МАК на случайный каждые 15-30 минут.
Пока что пытаюсь разобраться с первым пунктом. Заранее спасибо за помощь.
Re: Рандомный MAC-адрес при загрузке
Сообщение Bizdelnick » 09.12.2016 19:09
Источник