Обложка канала

Лига сисадминов

Здесь мы собираем всё, что может быть интересно представителям, пожалуй, лучшей в мире профессии: руководства, лучшие практики, свежие новости мира ИТ, книги, и многое другое.

Лига сисадминов

3 года назад
Открыть в
Скрипт Fail2ban для Mikrotik Небольшой полезный скрипт, который ищет в логах неудачные попытки авторизации вида: login faillure for user и добавляет адреса с которых эти попытки сделаны в address-list BlackList. Получается банит ssh, https, http, winbox, dude и т.д. Чтобы забанить эти адреса нужно в firewall добавить правило которое блочит эти адреса, а так же в планировщике задать запуск по расписанию, конкретно для этого скрипта нужно запускать каждые 6 минут
/ip firewall raw add action=drop chain=prerouting comment="BlackList Drop All" src-address-list=BlackList

текст скрипта :global attempt 3 :global temp :global ipaddr :global LogErr :global string :global signA " via"; :global signB "from "; :set LogErr [/log find message~"login failure for user." time>([/system clock get time] - 6m)] :foreach i in=$LogErr do={ :set string [:pick [/log get $i message ] 0 ([:len [/log get $i message ]])] :set ipaddr [:pick $string ([:find $string $signB]+ 5) ($string [:find $string $signA])] :if ([:len [/ip firewall address-list find address=$ipaddr]]=0) do { /ip firewall address-list add list=AttemptBruteforce1 address=[:toip $ipaddr] timeout=30m :log warning "attempt_bruteforce_1 $ipaddr"} :if ([:len [/ip firewall address-list find address=$ipaddr]]>0 && [:len [/ip firewall address-list find address=$ipaddr]]<$attempt) do { :set temp ([:len [/ip firewall address-list find address=$ipaddr]]+1) /ip firewall address-list add list="AttemptBruteforce$temp" address=[:toip $ipaddr] timeout=30m :log warning "attempt_bruteforce_ $temp $ipaddr"} :if ([:len [/ip firewall address-list find address=$ipaddr]]=$attempt) do { /ip firewall address-list add list=BlackList address=[:toip $ipaddr] :log warning "Blocked_bruteforce_ip $ipaddr"}} #ит_заметки #network #firewall #mikrotik #fail2ban