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

From ArchWiki
Jump to: navigation, search
(Update for iproute2. Mark for translation.)
(unflagged working section links (interactive))
(Tag: wiki-scripts)
 
(27 intermediate revisions by 9 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-hans:MAC address spoofing]]
 +
{{Unmaintained (Русский)}}
 +
 
 +
{{TranslationStatus (Русский)|Template:TranslationStatus|25 февраля 2017|469030}}
 +
 
 +
В этой статье описываются несколько способов подмены адреса 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 (первые три байта), а для для оставшихся трех использовать случайное значение. Для дополнительной информации пожалуйста прочтите [[Wikipedia:ru:Уникальный идентификатор организации]]
 +
 
 +
Чтобы сменить 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]] (смотрите {{ic|man systemd.link}} для получения дополнительной информации).
 +
 
 +
Для подмены статическим адресом:
 +
 +
{{hc|/etc/systemd/network/00-default.link|2=
 +
[Match]
 +
MACAddress=''оригинальный MAC''
 +
 
 +
[Link]
 +
MACAddress=''новый MAC''
 +
NamePolicy=kernel database onboard slot path
 +
}}
 +
 
 +
Для случайной генерации MAC-адреса при каждой загрузке, установите {{ic|1=MACAddressPolicy=random}} вместо {{ic|1=MACAddress=''новый MAC''}}.
 +
 
 +
=== Способ 2: systemd-udevd ===
 +
 
 +
[[Udev (Русский)|Udev]] позволяет подменять MAC-адреса в [[Udev (Русский)#Написание своих правил|файлах правил]]. Атрибут {{ic|address}} дает возможность udev находить правильное устройство по MAС-адресу производителя, а затем выполняется команда ''ip'' для смены адреса:
 +
 
 +
{{hc|/etc/udev/rules.d/75-mac-spoof.rules|2=
 +
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="XX:XX:XX:XX:XX:XX", RUN+="/usr/bin/ip link set dev %k address YY:YY:YY:YY:YY:YY"
 +
}}
 +
 
 +
где {{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]]).
 +
 
 +
==== Включение службы ====
 +
 
 +
[[systemd (Русский)#Использование юнитов|Включите]] службу, добавив требуемое имя интерфейса (например, {{ic|eth0}}) к:
 +
 
 +
# systemctl enable macspoof@eth0.service
 +
 
 +
Перезагрузитесь либо перезапустите необходимые службы в правильном порядке.If you are in control of your network, verify that the spoofed MAC has been picked up by your router by examining the static, or DHCP address tables within the router.
 +
 
 +
=== Способ 4: использование netctl ===
 +
 
 +
Вы можете использовать [[Netctl (Русский)#Использование хуков|netctl хуки]] для запуска команд, каждый раз когда профиль netctl (пере)запускается для нужного вам интерфейса. Замените {{ic|''interface''}} на необходимый:
 +
 
 +
{{hc|/etc/netctl/interfaces/''interface''|2=
 +
#!/usr/bin/env sh
 +
/usr/bin/macchanger -r ''interface''}}
 +
 
 +
Сделайте скрипт исполняемым:
 +
chmod +x /etc/netctl/interfaces/''interface''
 +
 
 +
Источник: [https://blog.akendo.eu/archlinuxrandom-mac-address-for-new-wireless-connections/ akendo.eu]
 +
 
 +
=== Способ 5: NetworkManager ===
 +
 
 +
Смотрите [[NetworkManager (Русский)#Настройка подмены MAC-адреса на случайный]].
 +
== Решение проблем ==
 +
 
 +
=== Не удается подключиться к сети 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 15:41, 30 March 2017

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

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Template:TranslationStatus. Дата последней синхронизации: 25 февраля 2017. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

В этой статье описываются несколько способов подмены адреса 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 (первые три байта), а для для оставшихся трех использовать случайное значение. Для дополнительной информации пожалуйста прочтите Wikipedia:ru:Уникальный идентификатор организации

Чтобы сменить 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 (смотрите man systemd.link для получения дополнительной информации).

Для подмены статическим адресом:

/etc/systemd/network/00-default.link
[Match]
MACAddress=оригинальный MAC

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

Для случайной генерации MAC-адреса при каждой загрузке, установите MACAddressPolicy=random вместо MACAddress=новый MAC.

Способ 2: systemd-udevd

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

/etc/udev/rules.d/75-mac-spoof.rules
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="XX:XX:XX:XX:XX:XX", RUN+="/usr/bin/ip link set dev %k address YY:YY:YY:YY:YY:YY"

где 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

Перезагрузитесь либо перезапустите необходимые службы в правильном порядке.If you are in control of your network, verify that the spoofed MAC has been picked up by your router by examining the static, or DHCP address tables within the router.

Способ 4: использование netctl

Вы можете использовать netctl хуки для запуска команд, каждый раз когда профиль netctl (пере)запускается для нужного вам интерфейса. Замените interface на необходимый:

/etc/netctl/interfaces/interface
#!/usr/bin/env sh
/usr/bin/macchanger -r interface

Сделайте скрипт исполняемым:

chmod +x /etc/netctl/interfaces/interface

Источник: akendo.eu

Способ 5: NetworkManager

Смотрите NetworkManager (Русский)#Настройка подмены MAC-адреса на случайный.

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

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

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

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