Difference between revisions of "MAC address spoofing (Русский)"

From ArchWiki
Jump to: navigation, search
(Update for iproute2. Mark for translation.)
(update interlanguage links (https://github.com/lahwaacz/wiki-scripts/blob/master/update-interlanguage-links.py))
 
(22 intermediate revisions by 7 users not shown)
Line 1: Line 1:
[[Category:Сеть (Русский)]]
+
[[Category:Networking (Русский)]]
 +
[[Category:Security (Русский)]]
 
[[Category:Русский]]
 
[[Category:Русский]]
[[cs:MAC Address Spoofing]]
+
[[cs:MAC address spoofing]]
[[en:MAC Address Spoofing]]
+
[[de:MAC-Adresse abfragen und setzen]]
[[es:MAC Address Spoofing]]
+
[[en:MAC address spoofing]]
[[zh-CN:MAC Address Spoofing]]
+
[[es:MAC address spoofing]]
{{Translateme}}
+
[[fr:Changement d'adresse MAC]]
 +
[[ja:MAC アドレス偽装]]
 +
[[zh-cn:MAC address spoofing]]
 +
{{Unmaintained (Русский)}}
 +
 
 +
В этой статье описываются несколько способов подмены адреса Media Access Control (MAC).
 +
 
 +
== Вручную ==
 +
 
 +
Существует два способа подмены MAC-адреса: используя {{Pkg|iproute2}} (установленный по умолчанию), и с помощью {{Pkg|macchanger}} (доступный в [[Official repositories (Русский)|официальных репозиториях]]). Оба способа изложены ниже.
 +
 
 +
=== Способ 1: iproute2 ===
 +
 
 +
Сперва проверьте ваш текущий MAC-адрес при помощи команды:
 +
 
 +
# ip link show ''интерфейс''
 +
 
 +
где {{ic|''интерфейс''}} — имя вашего [[Network configuration (Русский)#Сетевые интерфейсы|сетевого интерфейса]].
 +
 
 +
Необходимая нам в данный момент информация расположена в строке, начинающейся со слов "link/ether", за которыми следует 6-битный номер. Скорее всего, у вас это будет выглядеть примерно так:
  
Предположим, по каким-то причинам вам хочется изменить MAC адрес вашей сетевой карты. Допустим, требуемый сетевой интерфейс - <code>ethX</code>. Тогда, чтобы получить свой MAC адрес, введите:
 
# ip link show eth0
 
То, что вам нужно - это 6 байтовое число в 16ричной форме, что-то типа этого:
 
 
  link/ether 00:1d:98:5a:d1:3a
 
  link/ether 00:1d:98:5a:d1:3a
  
Изменить MAC адрес очень просто, надо убить сетевой интерфейс, изменить MAC адрес и восстановить интерфейс. Это делается так:
+
Первый шаг для подмены MAC-адреса — отключить интерфейс. Это можно сделать, выполнив команду:
  # ip link set dev eth0 down
+
 
  # ip link set dev eth0 address XX:XX:XX:XX:XX:XX
+
  # ip link set dev ''интерфейс'' down
  # ip link set dev eth0 up
+
 
где <code>FF:FF:FF:FF:FF:FF</code> - ваш новый MAC адрес.
+
Теперь мы переходим собственно к подмене нашего MAC-адреса. Подойдет любое шестнадцатеричное число, однако, некоторые сети могут отказывать в присвоении IP-адресов клиентам, чьи MAC-адреса не соответствуют тем, что устанавливают поставщики. Поэтому, если вы не контролируете сеть(и), к которой вы подключаетесь, желательно использовать реальный префикс MAC (первые три байта), а для для оставшихся трех использовать случайное значение.
 +
 
 +
Чтобы сменить MAC, необходимо выполнить команду:
 +
 
 +
  # ip link set dev ''интерфейс'' address ''XX:XX:XX:XX:XX:XX''
 +
 
 +
где вместо {{ic|''XX:XX:XX:XX:XX:XX''}} необходимо указать любое 6-битное значение.
 +
 
 +
Последний шаг — включить интерфейс обратно. Это можно сделать, выполнив команду:
 +
 
 +
  # ip link set dev ''интерфейс'' up
 +
 
 +
Если вы хотите проверить, произошла ли подмена MAC-адреса, просто еще раз запустите {{ic|ip link show ''интерфейс''}} и проверьте значение "link/ether". Если подмена сработала, "link/ether" будет иметь то значение, которое вы ему присвоили.
 +
 
 +
=== Способ 2: macchanger ===
 +
 
 +
В этом способе используется пакет {{Pkg|macchanger}} (GNU MAC Changer). Он предоставляет множество функций, таких как смена адреса для соответствия конкретному поставщику и присвоение полностью случайного адреса.
 +
 
 +
[[Установите]] пакет {{Pkg|macchanger}} из [[Official repositories (Русский)|официальных репозиториев]].
 +
 
 +
Подмена осуществляется для конкретного интерфейса: в каждой из следующих команд заменяйте {{ic|''интерфейс''}} на имя вашего [[Network configuration (Русский)#Сетевые интерфейсы|сетевого интерфейса]].
 +
 
 +
Вы можете сгенерировать полностью случайный адрес:
 +
 
 +
# macchanger -r ''интерфейс''
 +
 
 +
А чтобы изменить только байты, которые являются уникальными для конкретного устройства (благодаря чему при проверке MAC-адрес будет по-прежнему считаться принадлежащим тому же производителю), необходимо выполнить:
 +
 
 +
# macchanger -e ''интерфейс''
 +
 
 +
Для установки конкретного MAC-адреса выполните:
 +
 
 +
# macchanger --mac=''XX:XX:XX:XX:XX:XX'' ''интерфейс''
 +
 
 +
где {{ic|''XX:XX:XX:XX:XX:XX''}} — MAC, который вы хотите присвоить.
 +
 
 +
Наконец, для восстановления исходного значения MAC-адреса:
 +
 
 +
# macchanger -p ''интерфейс''
 +
 
 +
{{Note (Русский)|Пока будет происходить смена МАС-адреса, вы не сможете использовать устройство вне зависимости от способа подключения и того, включен ли сетевой интерфейс.}}
 +
 
 +
== Автоматически ==
 +
 
 +
=== Способ 1: systemd-networkd ===
 +
 
 +
[[systemd-networkd (Русский)|systemd-networkd]] поддерживает подмену MAC-адреса при помощи [[systemd-networkd (Русский)#Файлы link|файлов link]]:
 +
 
 +
{{hc|/etc/systemd/network/00-default.link|2=
 +
[Match]
 +
MACAddress=''постоянный MAC''
 +
 
 +
[Link]
 +
MACAddress=''новый MAC''
 +
NamePolicy=kernel database onboard slot path
 +
}}
 +
 
 +
Для получения дополнительной информации смотрите страницу справочного руководства {{ic|man systemd.link}}.
 +
 
 +
=== Способ 2: systemd-udevd ===
 +
 
 +
[[Udev]] позволяет подменять MAC-адреса в [[Udev (Русский)#Написание своих правил|файлах правил]]. Атрибут {{ic|address}} дает возможность udev находить правильное устройство по MAС-адресу производителя, а затем выполняется команда для смены адреса:
 +
 
 +
{{hc|/etc/udev/rules.d/75-mac-spoof.rules|2=
 +
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="02:03:09:xx:xx:xx", RUN+="/usr/bin/ip link set dev %k address c8:0a:a9:xx:xx:xx"
 +
}}
 +
 
 +
где {{ic|XX:XX:XX:XX:XX:XX}} — оригинальный MAC-адрес, {{ic|YY:YY:YY:YY:YY:YY}} — новый.
 +
 
 +
=== Способ 3: юнит systemd ===
 +
 
 +
==== Создание юнита ====
 +
 
 +
Ниже вы найдете пару примеров юнитов [[systemd (Русский)|systemd]] для изменения MAC-адреса при загрузе системы: первый устанавливает указанный MAC, используя утилиту ''ip'', а второй использует ''macchanger'' для присвоения случайного адреса. Зависимость {{ic|network-pre.target}} используется для того, чтобы смена MAC происходила перед тем, как запустятся сетевые программы вроде [[netctl (Русский)|netctl]], [[NetworkManager (Русский)|NetworkManager]], [[systemd-networkd (Русский)|systemd-networkd]] или [[dhcpcd (Русский)|dhcpcd]].
 +
 
 +
===== iproute2 =====
 +
 
 +
Юнит [[systemd (Русский)|systemd]], устанавливающий указанный MAC-адрес:
 +
 
 +
{{hc|/etc/systemd/system/macspoof@.service|<nowiki>
 +
[Unit]
 +
Description=MAC Address Change %I
 +
Wants=network-pre.target
 +
Before=network-pre.target
 +
BindsTo=sys-subsystem-net-devices-%i.device
 +
After=sys-subsystem-net-devices-%i.device
 +
 
 +
[Service]
 +
Type=oneshot
 +
ExecStart=/usr/bin/ip link set dev %i address 36:aa:88:c8:75:3a
 +
ExecStart=/usr/bin/ip link set dev %i up
 +
 
 +
[Install]
 +
WantedBy=multi-user.target
 +
</nowiki>}}
 +
 
 +
===== macchanger =====
 +
 
 +
Юнит [[systemd (Русский)|systemd]], устанавливающий случайный адрес (префикс производителя остается тем же). Удостоверьтесь, что у вас [[Pacman (Русский)#Установка определенных пакетов|установлен]] пакет {{Pkg|macchanger}}):
 +
 
 +
{{hc|/etc/systemd/system/macspoof@.service|<nowiki>
 +
[Unit]
 +
Description=macchanger on %I
 +
Wants=network-pre.target
 +
Before=network-pre.target
 +
BindsTo=sys-subsystem-net-devices-%i.device
 +
After=sys-subsystem-net-devices-%i.device
 +
 
 +
[Service]
 +
ExecStart=/usr/bin/macchanger -e %I
 +
Type=oneshot
 +
 
 +
[Install]
 +
WantedBy=multi-user.target
 +
</nowiki>}}
 +
 
 +
Если вы хотите, чтобы адрес измнялся целиком, включая префикс производителя (первые три байта), используйте опцию {{ic|-r}} вместо {{ic|-e}} (смотрите также [[#Способ 2: macchanger]]).
 +
 
 +
==== Включение службы ====
 +
 
 +
Включите службу, добавив требуемое имя интерфейса (например, {{ic|eth0}}) к:
 +
 
 +
# systemctl enable macspoof@eth0.service
 +
 
 +
Перезагрузитесь либо перезапустите необходимые службы в правильном порядке.
 +
 
 +
== Решение проблем ==
 +
 
 +
=== Не удается подключиться к сети DHCPv4 ===
 +
 
 +
Если вы не можете подключиться к сети DHCPv4 и используете dhcpcd, который по умолчанию используется NetworkManager, необходимо [[Dhcpcd (Русский)#Идентификатор клиента|изменить настройки dhcpcd]], чтобы арендовать адрес.
 +
 
 +
== Смотрите также ==
 +
 
 +
* [https://github.com/alobbs/macchanger Страница Macchanger на GitHub]
 +
* [http://www.debianadmin.com/change-your-network-card-mac-media-access-control-address.html Статья на debianadmin.com] с большим количеством опций для ''macchanger''

Latest revision as of 08:08, 28 March 2016

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

В этой статье описываются несколько способов подмены адреса Media Access Control (MAC).

Вручную

Существует два способа подмены MAC-адреса: используя iproute2 (установленный по умолчанию), и с помощью macchanger (доступный в официальных репозиториях). Оба способа изложены ниже.

Способ 1: iproute2

Сперва проверьте ваш текущий MAC-адрес при помощи команды:

# ip link show интерфейс

где интерфейс — имя вашего сетевого интерфейса.

Необходимая нам в данный момент информация расположена в строке, начинающейся со слов "link/ether", за которыми следует 6-битный номер. Скорее всего, у вас это будет выглядеть примерно так:

link/ether 00:1d:98:5a:d1:3a

Первый шаг для подмены MAC-адреса — отключить интерфейс. Это можно сделать, выполнив команду:

# ip link set dev интерфейс down

Теперь мы переходим собственно к подмене нашего MAC-адреса. Подойдет любое шестнадцатеричное число, однако, некоторые сети могут отказывать в присвоении IP-адресов клиентам, чьи MAC-адреса не соответствуют тем, что устанавливают поставщики. Поэтому, если вы не контролируете сеть(и), к которой вы подключаетесь, желательно использовать реальный префикс MAC (первые три байта), а для для оставшихся трех использовать случайное значение.

Чтобы сменить MAC, необходимо выполнить команду:

# ip link set dev интерфейс address XX:XX:XX:XX:XX:XX

где вместо XX:XX:XX:XX:XX:XX необходимо указать любое 6-битное значение.

Последний шаг — включить интерфейс обратно. Это можно сделать, выполнив команду:

# ip link set dev интерфейс up

Если вы хотите проверить, произошла ли подмена MAC-адреса, просто еще раз запустите ip link show интерфейс и проверьте значение "link/ether". Если подмена сработала, "link/ether" будет иметь то значение, которое вы ему присвоили.

Способ 2: macchanger

В этом способе используется пакет macchanger (GNU MAC Changer). Он предоставляет множество функций, таких как смена адреса для соответствия конкретному поставщику и присвоение полностью случайного адреса.

Установите пакет macchanger из официальных репозиториев.

Подмена осуществляется для конкретного интерфейса: в каждой из следующих команд заменяйте интерфейс на имя вашего сетевого интерфейса.

Вы можете сгенерировать полностью случайный адрес:

# macchanger -r интерфейс

А чтобы изменить только байты, которые являются уникальными для конкретного устройства (благодаря чему при проверке MAC-адрес будет по-прежнему считаться принадлежащим тому же производителю), необходимо выполнить:

# macchanger -e интерфейс

Для установки конкретного MAC-адреса выполните:

# macchanger --mac=XX:XX:XX:XX:XX:XX интерфейс

где XX:XX:XX:XX:XX:XX — MAC, который вы хотите присвоить.

Наконец, для восстановления исходного значения MAC-адреса:

# macchanger -p интерфейс
Примечание: Пока будет происходить смена МАС-адреса, вы не сможете использовать устройство вне зависимости от способа подключения и того, включен ли сетевой интерфейс.

Автоматически

Способ 1: systemd-networkd

systemd-networkd поддерживает подмену MAC-адреса при помощи файлов link:

/etc/systemd/network/00-default.link
[Match]
MACAddress=постоянный MAC

[Link]
MACAddress=новый MAC
NamePolicy=kernel database onboard slot path

Для получения дополнительной информации смотрите страницу справочного руководства man systemd.link.

Способ 2: systemd-udevd

Udev позволяет подменять MAC-адреса в файлах правил. Атрибут address дает возможность udev находить правильное устройство по MAС-адресу производителя, а затем выполняется команда для смены адреса:

/etc/udev/rules.d/75-mac-spoof.rules
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="02:03:09:xx:xx:xx", RUN+="/usr/bin/ip link set dev %k address c8:0a:a9:xx:xx:xx"

где XX:XX:XX:XX:XX:XX — оригинальный MAC-адрес, YY:YY:YY:YY:YY:YY — новый.

Способ 3: юнит systemd

Создание юнита

Ниже вы найдете пару примеров юнитов systemd для изменения MAC-адреса при загрузе системы: первый устанавливает указанный MAC, используя утилиту ip, а второй использует macchanger для присвоения случайного адреса. Зависимость network-pre.target используется для того, чтобы смена MAC происходила перед тем, как запустятся сетевые программы вроде netctl, NetworkManager, systemd-networkd или dhcpcd.

iproute2

Юнит systemd, устанавливающий указанный MAC-адрес:

/etc/systemd/system/macspoof@.service
[Unit]
Description=MAC Address Change %I
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
ExecStart=/usr/bin/ip link set dev %i address 36:aa:88:c8:75:3a
ExecStart=/usr/bin/ip link set dev %i up

[Install]
WantedBy=multi-user.target
macchanger

Юнит systemd, устанавливающий случайный адрес (префикс производителя остается тем же). Удостоверьтесь, что у вас установлен пакет macchanger):

/etc/systemd/system/macspoof@.service
[Unit]
Description=macchanger on %I
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
ExecStart=/usr/bin/macchanger -e %I
Type=oneshot

[Install]
WantedBy=multi-user.target

Если вы хотите, чтобы адрес измнялся целиком, включая префикс производителя (первые три байта), используйте опцию -r вместо -e (смотрите также #Способ 2: macchanger).

Включение службы

Включите службу, добавив требуемое имя интерфейса (например, eth0) к:

# systemctl enable macspoof@eth0.service

Перезагрузитесь либо перезапустите необходимые службы в правильном порядке.

Решение проблем

Не удается подключиться к сети DHCPv4

Если вы не можете подключиться к сети DHCPv4 и используете dhcpcd, который по умолчанию используется NetworkManager, необходимо изменить настройки dhcpcd, чтобы арендовать адрес.

Смотрите также