Media Access Control (MAC-адрес) - это уникальный идентификатор, назначенный для сетевых интерфейсов для связи на физическом сегменте сети. MAC-адреса используются для многочисленных сетевых технологий и наиболее сетевых технологий, включая Ethernet.

MAC-адреса чаще всего присваиваются производителем сетевой карты (NIC) и хранится в его аппаратной части. Присвоенный изготовителем МАС-адрес обычно кодирует зарегистрированный идентификационный номер производителя и может быть передано как burned-in в адрес. Он может быть также известен как аппаратный адрес Ethernet (EHA), аппаратный адрес или физический адрес.

Как сменить MAC-адрес сетевой карты

Иногда возникает необходимость поменять MAC-адрес сетевой карты. Например, если в точке доступа wi-fi прописан другой MAC-адрес. В Linux это сделать достаточно просто. В качестве примера мы используем сетевую карту eth0, поменяв MAC-адрес на 01:02:03:04:05:06.

Сначала нужно остановить сетевую карту:

ifconfig eth0 down

Далее прописываем нужный нам MAC

ifconfig eth0 hw ether 01:02:03:04:05:06

И теперь запускаем сетевую карту

ifconfig eth0 up

Проверяем:

1
2
3
4
5
6
7
8
9
10
11
 user@wikiadmin.net ~ $ sudo /sbin/ifconfig eth0
 [sudo] password for user: 
 eth0      Link encap:Ethernet  HWaddr 01:02:03:04:05:06  
           inet addr:10.3.136.244  Bcast:10.3.136.247  Mask:255.255.255.248
           inet6 addr: fe80::222:15ff:fef3:d7e4/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:1919757 errors:0 dropped:0 overruns:0 frame:0
           TX packets:2182871 errors:0 dropped:0 overruns:0 carrier:1
           collisions:0 txqueuelen:1000 
           RX bytes:1314507150 (1.3 GB)  TX bytes:1817560254 (1.8 GB)
           Interrupt:45

ARP

Нужно описание!

Фильтрация по MAC с помощью ARP

Итак, предыстория: есть небольшая машинка, раздающая через Wi-Fi интернет. Создана на основе статьи Сервер из старого компьютера. Однако фильтрацию пользователей решено было возложить не на hostapd, а на iptables. Причина проста: нужно, чтобы некоторые машины могли присоединяться к сети, но не могли выходить за её пределы. Как позже оказалось, POSTROUTING в Iptables и MAC-адреса несовместимы, а делать цепочку отдельных правил не хотелось. Поэтому появилась мысль просто привязать IP и MAC в ARP таблице.

Итак, для начала мы можем посмотреть таблицу, которая уже создалась. Находим команду:

whereis arp

В нашем случае это оказалось /usr/sbin/arp (ubuntu server). Теперь смотрим, просто задав эту команду:

/usr/sbin/arp

1
2
3
4
 Address                  HWtype  HWaddress           Flags Mask            Iface
 10.0.0.3                 ether   48:5b:39:be:35:ff   C                     wlan0
 10.0.0.4                 ether   ec:55:f9:07:f8:1f   C                     wlan0
 10.0.0.2                 ether   7c:61:93:93:5f:93   C                     wlan0

Обратите снимание, что стоит только флаг C. Теперь соберем это все в один файл-таблицу

1
 cat > /[[root]]/ipmac.txt
1
2
3
 10.0.0.3 48:5b:39:be:35:ff
 10.0.0.4 ec:55:f9:07:f8:1f
 10.0.0.2 7c:61:93:93:5f:93

Просто, не так ли? Теперь запишем эти данные в ARP-таблицу:

arp -f /root/ipmac.txt

И проверяем:

1
2
3
4
5
  /usr/sbin/arp
 Address                  HWtype  HWaddress           Flags Mask            Iface
 10.0.0.3                 ether   48:5b:39:be:35:ff   CM                    wlan0
 10.0.0.4                 ether   ec:55:f9:07:f8:1f   CM                    wlan0
 10.0.0.2                 ether   7c:61:93:93:5f:93   CM                    wlan0

Теперь добавился флаг M. Итак, если кто-то из клиентов поменяет сетевую карту, то интернет ему не светит. Конечно, это не самый безопасный способ. Грамотный специалист вполне сможет поменять MAC и, сменив IP на соответствующий, получить доступ в интернет.

Дополнительные команды ARP

очистка arp-таблицы:

arp -d -a

Загрузка связки IP+MAC из файла:

arp -f /root/ipmac.txt

Привязываем MAC к IP не через файл:

arp -s 10.0.0.1 00:11:22:33:44:55

Удаляем связку (не из файла, поэтому после перезагрузки данные могут восстановиться):

arp -d 10.0.0.1

Для отслеживания изменений MAC-адресов удобно использовать arpwatch.