Mikrotikda VPN uchun Fail2ban

Ular VPN serverini qo’pollik bilan majburlashyaptimi? Zombi mijozlari cheksiz ulanishga harakat qilishmoqda, akkauntlari allaqachon o’chirilganidan bexabarmi? Mikrotik uchun tayyor yechim topa olmadim, shuning uchun yordam uchun ChatGPTga murojaat qilishim kerak bo’ldi. Bir nechta urinishlar va qo’lda nosozliklarni tuzatishdan so’ng, nihoyat ishlaydigan yechimni topdim.

Aslida, biz ushbu skriptni tizim > skriptlariga qo’shamiz:

 :local threshold 3;
:local interval 60;
:local currentTime [:tostr [/system clock get time]];
:local count [/log find where (message~"authentication failed") && (message~"user") && (time>=($currentTime-$interval))];
:foreach log in=$count do={
    :local logMessage [/log get $log message];
    :local srcAddr [:pick $logMessage 1 [:find $logMessage ">"]];
    :local srcUser [:pick $logMessage [:find $logMessage "user"] [:len $logMessage]];
    :local countAddr [/log find where (message~"authentication failed") && (message~$srcAddr) && (message~$srcUser)];
    :if ([:len $countAddr] >= $threshold) do={
        /ip firewall address-list add list=ban-l2tp address=$srcAddr timeout=1h;
    }
} 

Skript rejalashtiruvchi tomonidan ishga tushiriladi, muvaffaqiyatsiz avtorizatsiya urinishlari uchun jurnallarni qidiradi va manba manzilini belgilangan ro’yxatga qo’shadi. Timeout=1h qiymatini qoldirib ketish mumkin; bu holda manzil ro’yxatdan avtomatik ravishda yo’qolmaydi.

Tizim > rejalashtiruvchiga o’ting va vazifa qo’shing:

Xo’sh, va, albatta, biz filtrga, masalan, to’plangan ro’yxatdagi manzillardan barcha trafikni taqiqlaydigan qoida qo’shamiz.

l2tp da 7.14 routerlari bilan sinovdan o’tkazildi