Добавление mac в acces-list при ошибке в пароле на wifi

Тема в разделе "Скрипты", создана пользователем Zigotha, 11 фев 2020.

  1. Zigotha

    Zigotha Новый участник

    Добрый день. Нашел на просторах интернета такой скрипт:

    :local pop 4
    :local mac
    :local wifi [/log find message~"disconnected, unicast key exchange timeout"]foreach i in=$wifi do={
    :set mac [:pick [/log get $i message ] 0 ([:len [/log get $i message ]]-50)]
    :log warning $mac
    if ([:len [/log find message~($mac . "@wlan1: disconnected, unicast key exchange timeout")] ] >= $pop) do={
    if ([/interface wireless access-list find mac-address=$mac] = "" ) do={
    /interface wireless access-list add mac-address=$mac authentication=no
    interface=all
    }
    }
    }
    :log warning "FINISH"

    Если я правильно понял, то при вводе неправильного пароля на wifi, mac устройства заносится в acces-list с атрибутом authentication=no, грубо говоря попадает в черный список. Но скрипт почему-то не работает. Помогите пожалуйста разобраться почему?
    В логах события вида 14:39:19 wireless,info 40:5B:D8:04:F8:4B@wlan1: disconnected, unicast key exchange timeout генерируются

    [admin@Conference_ap1] > /export
    # feb/11/2020 14:58:41 by RouterOS 6.46.3
    #
    # model = RBcAPGi-5acD2nD
    /interface bridge
    add name=bridge1
    /interface wireless
    set [ find default-name=wlan1 ] country=russia disabled=no mode=ap-bridge ssid=Conference
    set [ find default-name=wlan2 ] country=russia mode=ap-bridge ssid=Conference wireless-protocol=802.11
    /interface list
    add name=WAN
    add name=LAN
    /interface wireless security-profiles
    set [ find default=yes ] authentication-types=wpa2-psk mode=dynamic-keys supplicant-identity=MikroTik wpa-pre-shared-key=1234567890@ wpa2-pre-shared-key=1234567890
    /interface bridge port
    add bridge=bridge1 interface=ether1
    add bridge=bridge1 interface=ether2
    add bridge=bridge1 interface=wlan2
    add bridge=bridge1 interface=wlan1
    /interface list member
    add interface=ether1 list=WAN
    add interface=ether2 list=LAN
    add interface=wlan2 list=LAN
    add interface=wlan1 list=LAN
    /ip address
    add address=10.10.11.83/22 interface=ether2 network=10.10.8.0
    /ip dhcp-relay
    add dhcp-server=10.10.11.254 disabled=no interface=wlan1 name=relay1
    /ip dns
    set servers=10.10.11.9,10.10.11.12
    /ip route
    add distance=1 gateway=10.10.11.250
    /ip service
    set telnet disabled=yes
    set ftp disabled=yes
    set www disabled=yes
    set ssh disabled=yes
    set api disabled=yes
    set api-ssl disabled=yes
    /system clock
    set time-zone-name=Europe/Moscow
    /system identity
    set name=Conference_ap1
    /system scheduler
    add interval=1m name="block wifi brute" on-event=script1 policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup
    /system script
    add dont-require-permissions=no name=script1 owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":local pop 4\r\
    \n:local mac\r\
    \n:local wifi [/log find message~\"disconnected, unicast key exchange timeout\"]foreach i in=\$wifi do={\r\
    \n:set mac [:pick [/log get \$i message ] 0 ([:len [/log get \$i message ]]-50)]\r\
    \n:log warning \$mac\r\
    \nif ([:len [/log find message~(\$mac . \"@wlan1: disconnected, unicast key exchange timeout\")] ] >= \$pop) do={\r\
    \nif ([/interface wireless access-list find mac-address=\$mac] = \"\" ) do={\r\
    \n/interface wireless access-list add mac-address=\$mac authentication=no\r\
    \ninterface=all\r\
    \n}\r\
    \n}\r\
    \n}\r\
    \n:log warning \"FINISH\""
     
  2. Zigotha

    Zigotha Новый участник

    Подскажите, пожалуйста, где косяк?
     
  3. Илья Князев

    Илья Князев Администратор Команда форума

    Вы рассчитываете что кто-то вместо вас это отладит?
     
  4. Zigotha

    Zigotha Новый участник

    Надеялся что кто-то с опытом написания скриптов на микротиках, бегло взглянув, поймет в чем ошибка) Просто этот скрипт часто приводят в различных статьях, но нигде нет фидбека работает он или нет. Я просто даже как дебажить не представляю...
     
  5. Илья Князев

    Илья Князев Администратор Команда форума

    Только в лог выкидывая строки и переменные.