Подмена MAC адреса

Зачем оно надо.

Ну кроме игр в крэкеров и экспериментов “а что если” есть и реальная необходимость: некоторые провайдеры при авторизации пользователя проверяют и мак, и если вы всю жизнь живёте с одной сетевушкой – всё нормально, но реалии жизни говорят об обратном…

Немного теории

Эту часть можно спокойно пропустить и читать дальше.

Канальный уровень (Data Link layer)

Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает в кадры данных, проверяет на целостность, если нужно исправляет ошибки и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня — MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня. На этом уровне работают коммутаторы, мосты.

В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровня между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS.

К сведению:

Как видно из части “Немного теории” mac-адрес это РЕАЛЬНО адрес, и для работоспособности сети не рекомендуется использовать в ней один мак на разных машинах. К чему это приводит? Ну как минимум эти машины друг друга не “видят”.
Как можно было уже заметить(из “зачем оно надо”) mac-адрес определяет не операционная система, а сетевая карта. Мак прошит на ней.
Стоит сказать, что маки выбираются очень хитрым образом, так что их совпадение в одной сети очень мало. Подробнее об алгоритме можно почитать в Интернете :)
Хотя мак и прошит на сетевухе его можно заменить программными методами.

Итак

Самым простым способом, пожалуй будет написать в консоли

sudo su # получаем права суперюзера
ifconfig eth0 down # пока отключим интерфейс
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx # собственно меняем мак
ifconfig eth0 up # поднимаем интерфейс
exit # выходим из под супер пользователя
ifconfig # любуемся :)

где xx:xx:xx:xx:xx:xx – ваш мак-адрес.

Сам же использую следующий способ:
В файле /etc/network/interfaces добавляем/меняем

iface eth0 inet static
address *.*.*.*                        # ваш ip адресс
netmask *.*.*.*                        # маска вашей сети
hwaddress ether xx:xx:xx:xx:xx:xx      # желаемый мак

На http://mydebianblog.blogspot.com такое прочитал: в Gentoo работает ещё такой способ:

В файле /etc/conf.d/net

mac_eth0="00:50:8D:63:41:DE"
config_eth0=( "192.168.100.37 netmask 255.255.252.0" )
routes_eth0=(
"default via 192.168.100.1"
)

Сам не проверял.

man ipconfig на русском

Поделиться заметкой:
Узнать версию Linux
Все способы узнать версию дистрибутива Linux (а также FreeBSD, MacOS и прочих)
Права на файлы
Права на файлы и папки в Linux, FreeBSD и MacOS
Настоящий интеллект