Генерация белого списка WIFI-клиентов
Добавлено: 09 дек 2021, 21:06
Приветствую!
Столкнулся с проблемой несанкционированного подключения к своим беспроводным сетям.
Со временем надоело вручную блокировать каждое вновь подключившееся неизвестное устройство.
Было решено попытаться автоматизировать процесс блокировки.
Суть идеи: На основе списка DHCP-клиентов генерИтся список разрешенных WIFI-клиентов. Всем остальным подключение по WIFI запрещено.
Задумка реализована под CAPsMAN.
При запуске скрипта, из списка зарегистрированных DHCP-Server->Leases производится выборка только тех, в комментариях у которых присутствует слово: "wifi". Из этих записей формируется белый список MAC-адресов, который складывается в CAPsMAN->Access List. В конце добавляется запрещающее правило.
С этого момента доступ к WIFI-сети имеют только прописанные в белом списке клиенты.
Теперь все желающие, в том числе знающие пароль от WIFI-сети, но не прописанные в белом списке WIFI-клиентов, не имеют возможности подключиться к сети без участия администратора.
Для того, чтобы прописать нового клиента, необходимо вручную зарегистрировать его в списке DHCP-Server->Leases, в комментарии указать "wifi" и запустить скрипт для перегенерации белого списка.
Усовершенствования скрипта только приветствуются .
Столкнулся с проблемой несанкционированного подключения к своим беспроводным сетям.
Со временем надоело вручную блокировать каждое вновь подключившееся неизвестное устройство.
Было решено попытаться автоматизировать процесс блокировки.
Суть идеи: На основе списка DHCP-клиентов генерИтся список разрешенных WIFI-клиентов. Всем остальным подключение по WIFI запрещено.
Задумка реализована под CAPsMAN.
При запуске скрипта, из списка зарегистрированных DHCP-Server->Leases производится выборка только тех, в комментариях у которых присутствует слово: "wifi". Из этих записей формируется белый список MAC-адресов, который складывается в CAPsMAN->Access List. В конце добавляется запрещающее правило.
С этого момента доступ к WIFI-сети имеют только прописанные в белом списке клиенты.
Теперь все желающие, в том числе знающие пароль от WIFI-сети, но не прописанные в белом списке WIFI-клиентов, не имеют возможности подключиться к сети без участия администратора.
Для того, чтобы прописать нового клиента, необходимо вручную зарегистрировать его в списке DHCP-Server->Leases, в комментарии указать "wifi" и запустить скрипт для перегенерации белого списка.
Код: Выделить всё
# Script for blocking unknown wifi clients by drPioneer
# https://forummikrotik.ru/viewtopic.php?p=82674#p82674
# tested on ROS 6.49.10
# updated 2021/12/09
:if ([:len [ /ip dhcp-server lease find; ]] = 0) do={ :put ("Wifi clients not found in DHCP list."); }
:if ([:len [ /caps access-list find action=reject; ]] > 0) do={ /caps access-list remove [ /caps access-list find action=reject ]; }
:foreach wlanClients in=[ /ip dhcp-server lease find comment~"wifi"] do={
:local wlanMAC ([ /ip dhcp-server lease get $wlanClients mac-address; ]);
:local wlanCommet ([ /ip dhcp-server lease get $wlanClients comment; ]);
:local counter 0;
:foreach accessList in=[ /caps access-list find; ] do={
:local accessMAC ([ /caps access-list get $accessList mac-address; ]);
:if ($wlanMAC = $accessMAC) do={ :set counter ($counter + 1); }
}
:if (counter = 0) do={ /caps access-list add mac-address=$wlanMAC comment=$wlanCommet action=accept; }
}
/caps access-list add action=reject;