в Mikrotik

Очередной приступ паранойи застал врасплох. Мысль о том что MAC-адрес беспощадно палит привязку твоих сессий в логах провайдера не давала покоя и надо было с этим что то делать.

Позвонив товарищу, который поинтересовался у инженеров провайдера (одного из представителей «Большой тройки») соображениями о том, просто ли получить информацию о сессиях абонента, имея на руках MAC-адрес. Ответ был очевиден — «Да как два пальца..». Нет, часто меняя MAC-и, разумеется, полной анонимности не добьешься, но некоторые затруднения это всё-таки вызовет.

Было решено, надо каким-то образом менять MAC адрес WAN-порта на рандомный, да с заданным интервалом. Имея на руках всё тот же MikroTik, всё решается с помощью одного лишь скрипта.

Внутренние механизмы скриптинга до сих пор не имеют функции для генерации случайного числа и, уж тем более, случайного символа. Но мы же можем взять какие-либо значения из железки, которые не перманентны, например, текущую дату, аптайм и загруженность процессора. После получения «случайного» числа, получить символ в строке-заготовке по позиции этого числа, получив тем самым «случайный» символ. После чего сформировать «случайный» MAC-адрес и применить его к интерфейсу.

Переходим к делу. SystemScriptsAdd New:
Name: RandomMAC
Policy: [X] read, [X] write, [X] policy
Comment: Randomize MAC address

В переменную WanInterface укажи название твоего интерфейса соответственно.

Первые два символа у нас всегда 00 и это неспроста — наткнулся на противный баг в RouterOS, из-за которого маршрутизатор не хотел принимать вполне валидные MAC-адреса, а с ведущими нулями проблемы не возникало. На текущей прошивке версии 6.30.2 он ещё не исправлен. Надеюсь, в дальнейших версиях разработчики его пофиксят

Нажимаем Apply и после Run Script. Открываем лог и смотрим, чтоб там были записи, похожие на:

Change MAC to random (00:AA:BB:CC:DD:EE -> 00:11:22:33:44:55)
...
MAC address on "ether1-wan" changed successfully! New MAC is 00:11:22:33:44:55

Если так оно и есть — ништяк, добавляй задание в Scheduler:
Enabled: [X]
Name: RandomMAC
Interval: 2d 00:00:00
On Event: /system script run RandomMAC
Policy: [X] read, [X] write, [X] policy
Comment: Randomize MAC address

Теперь скрипт будет запускаться с интервалом в два дня и менять MAC-адрес WAN-порта на «почти» рандомный ;)