Вопрос или проблема
Я хотел бы либо выяснить, как автоматически менять свой MAC-адрес по установленному таймеру через скрипт, либо просто как изменить MAC-адрес вообще через оболочку. Этот маршрутизатор — Netgear WNDR3700v4, так что он использует чип Atheros.
У меня нет знаний в Linux, но я делал это через Windows с помощью командной строки, но это практически все.
Я провел несколько поисков в Google, чтобы узнать, пробовал ли кто-то изменить MAC-адрес через SSH, и не нашел ничего, что заставило бы меня чувствовать себя уверенно, чтобы рискнуть и не опасаться того, что я сломаю свой маршрутизатор.
Ваш вопрос делится на две части: как изменить MAC-адрес и как задать время для определенного процесса.
Изменение MAC-адреса
Поскольку вы не можете установить удобные утилиты типа macchanger
, вам придется делать это вручную.
-
Узнайте имя вашего сетевого интерфейса. В многих случаях это
eth0
. Убедитесь, что вы нашли имя интерфейса, который действительно хотите изменить (WAN или LAN, VLAN…). В этом примере я буду использоватьeth0
. -
Проверьте свой текущий MAC-адрес
ip link show eth0
. Это может показать что-то вродеlink/ether 00:11:22:33:44:55
. -
Уберите свой интерфейс:
ip link set dev eth0 down
. Это является большим недостатком этого решения, так как оно разрывает всю сеть в процессе. Убедитесь, что вы действительно хотите, чтобы это произошло. -
Установите новый MAC-адрес:
ip link set dev eth0 address AA:BB:CC:DD:EE:FF
. -
Снова поднимите свой интерфейс:
ip link set dev eth0 up
.
Сделайте скрипт из этого
В скрипте это может выглядеть так:
#!/bin/bash
IF=eth0
# Создать случайный MAC, вдохновившись на http://superuser.com/a/218372/475723
# MAC может быть недействительным, так как он совершенно случайный. Используйте связанный ответ, чтобы добавить префикс, например 00:60:2F
hexchars="0123456789ABCDEF"
MAC=$(for i in {1..12} ; do echo -n ${hexchars:$(( $RANDOM % 16 )):1} ; done | sed -e 's/\(..\)/\1:/g;s/:$//')
ip link set dev $IF down
ip link set dev $IF address $MAC
ip link set dev $IF up
Сохраните этот скрипт в подходящем месте (предположим, /root/mac.sh
) и сделайте его исполняемым с помощью chmod +x /root/mac.sh
.
Вы можете протестировать свой скрипт, выполнив /root/mac.sh
.
Запуск процессов по расписанию с помощью cron
С помощью cron
вы можете запускать процессы регулярно, например, раз в день.
-
Отредактируйте свой файл cron с помощью
crontab -e
. -
Вставьте строку, указывающую необходимую информацию: когда и что. Например,
0 1 * * * /root/mac.sh
. Это будет выполнять команду каждый день, месяц, год в 01:00. Пожалуйста, проверьте страницы справки по cron для получения информации о том, как установить ее на разные интервалы.
Пожалуйста, убедитесь, что вы редактируете файл crontab от имени root.
Ответ или решение
Изменение MAC-адреса на DD-WRT v3.0 через SSH и сценарии
Изменение MAC-адреса на маршрутизаторе, работающем под управлением DD-WRT, может стать полезной задачей для повышения безопасности вашей сетевой конфигурации или для обхода ограничений провайдеров. Ваша ситуация включает в себя маршрутизатор Netgear WNDR3700v4 с чипом Atheros. В данном руководстве мы рассмотрим, как вручную изменить MAC-адрес и автоматизировать этот процесс с помощью сценариев и cron.
Часть 1: Изменение MAC-адреса
Шаг 1: Убедитесь, что у вас есть доступ по SSH
Для начала вам нужно подключиться к вашему маршрутизатору через SSH. Используйте любой SSH-клиент (например, PuTTY на Windows или терминал на Linux/Mac):
ssh root@192.168.1.1
(Замените IP-адрес на тот, что соответствует вашей сети.)
Шаг 2: Найдите имя сетевого интерфейса
На большинстве маршрутизаторов DD-WRT имя интерфейса для локальной сети обычно eth0
. Для проверки используйте следующую команду:
ip link show
Ищите строку, которая начинается с eth0
или подобного. Убедитесь, что это именно тот интерфейс, MAC-адрес которого вы собираетесь изменить.
Шаг 3: Проверка текущего MAC-адреса
Чтобы узнать свой текущий MAC-адрес, выполните:
ip link show eth0
Вы увидите строку, содержащую link/ether
, за которой следует ваш MAC-адрес.
Шаг 4: Отключите интерфейс
Перед изменением MAC-адреса необходимо отключить интерфейс:
ip link set dev eth0 down
Шаг 5: Установите новый MAC-адрес
Теперь вы можете установить новый MAC-адрес:
ip link set dev eth0 address AA:BB:CC:DD:EE:FF
Замените AA:BB:CC:DD:EE:FF
на желаемый MAC-адрес.
Шаг 6: Включите интерфейс
После изменения MAC-адреса необходимо включить интерфейс:
ip link set dev eth0 up
Теперь ваш MAC-адрес должен быть успешно изменен.
Часть 2: Автоматизация процесса с помощью сценариев
Чтобы облегчить задачу, вы можете создать сценарий для автоматического изменения MAC-адреса.
Создание скрипта
Создайте новый скрипт, используя любой текстовый редактор, доступный в вашем маршрутизаторе:
nano /root/mac.sh
Вставьте следующий код:
#!/bin/bash
IF=eth0
# Генерация случайного MAC-адреса
hexchars="0123456789ABCDEF"
MAC=$(for i in {1..12} ; do echo -n ${hexchars:$(( $RANDOM % 16 )):1} ; done | sed -e 's/\(..\)/\1:/g;s/:$//')
ip link set dev $IF down
ip link set dev $IF address $MAC
ip link set dev $IF up
Сохраните и сделайте скрипт исполняемым:
chmod +x /root/mac.sh
Теперь вы можете протестировать свой скрипт, выполнив:
/root/mac.sh
Часть 3: Запланированное выполнение с помощью cron
Чтобы выполнять скрипт по расписанию, используйте планировщик cron
.
Шаг 1: Редактирование crontab
Откройте редактор crontab с правами root:
crontab -e
Шаг 2: Добавление задания
Добавьте следующую строку, чтобы запускать скрипт, например, каждые сутки в 1:00:
0 1 * * * /root/mac.sh
Заключение
Теперь ваш маршрутизатор Netgear WNDR3700v4 автоматически меняет MAC-адрес согласно заданному расписанию. Если у вас возникнут какие-либо вопросы или проблемы, не стесняйтесь искать дополнительную информацию или задавать их на форумах, посвященных DD-WRT и маршрутизации. Помните о важности аккуратности при работе с сетевыми настройками, чтобы не подвергать риску вашу сеть.