Size: a a a

RouterOS Security

2020 December 03

AK

Alexey Konstantinov in RouterOS Security
С чем то работает кто сни проставляет с кем то нет
источник

AK

Alexey Konstantinov in RouterOS Security
не все проставляют
источник

AK

Alexey Konstantinov in RouterOS Security
но - опять же там уже eSNI на подходе и где то даже юзается - вообще не вариак.
источник

AK

Alexey Konstantinov in RouterOS Security
и слава яйцам.
источник

C

Chumayu in RouterOS Security
Lokr
а это действительно работает? помню у меня не получалось
В большенстве случаев с TLS я думаю работает, в версии TLS 1.3 появился eSNI (то бишь зашифрованно доменное имя)
источник

L

Lokr in RouterOS Security
Я геморный скрипт написал. Парсит список доменов из файла. Пингует их и банит полученные IP
источник

C

Chumayu in RouterOS Security
я думаю в целом должно часть блокироваться.
источник

L

Lokr in RouterOS Security
Именно что что-то банилось что то нет
источник

L

Lokr in RouterOS Security
Босс был не доволен
источник

L

Lokr in RouterOS Security
источник

L

Lokr in RouterOS Security
:local BLdebug false;
# На всякий случай пингуем ya.ru
:local pingresultA [/ping ya.ru count=2];
:if ($BLdebug = true) do={
:log info (" --------- START BAN SCRIPT");
:log warning ("ya.ru пингуется (прошло $pingresultA из 2)");
}

# Если файл  BlackList.txt существует
:if ([/file get [/file find name=BlackList.txt] size] > 0) do={
:if ($BLdebug = true) do={
:log info ("Файл BlackList.txt существует");
}
# Получаем содержимое файла в переменную
:local content [/file get [/file find name="BlackList.txt"] contents];
:if ($BLdebug = true) do={
:log info ("В файле:\n$content");
}

# Получаем длину переменной
:local contentLen [:len $content];
:local lineEnd 0;
:local line "";
:local lastEnd 0;

:do {

#       Находим первый перевод строки
        :set lineEnd [:find $content "\n" $lastEnd];
#       Получаем текст с последнего перевода строки до нового перевода строки (без символа перевода строки)
        :set line [:pick $content $lastEnd ($lineEnd -1)];
#       Запоминаем последнюю позицию перевода строки
        :set lastEnd ($lineEnd +1);

        :if ($BLdebug = true) do={
        :log info ("Прочли строку: $line");
        }
#       Если строка не закомментирована
        :if ([:pick $line 0 1] != "#") do={
        :if ($BLdebug = true) do={
        :log info ("Строка не закоментирована: $line");
        }
            :local entry [:pick $line 0 $lineEnd]
#           Если строка не пустая вгоняем содержимое в массив
            :if ([:len $entry] > 0) do={
                  :if ($BLdebug = true) do={
                  :log info ("Строка не пустая: $entry");
                  }            
                  :local tmpArray [:toarray $entry];
                  :put $tmpArray;
    :local comment ([:pick $tmpArray 0]);
    :local prfx [:pick $comment 0 1];    

#                 Если первый символ не *
    :if ($prfx != "*") do={
                     :if ($BLdebug = true) do={
                     :log info ("Без *");
                     }
#                    Алгоритм №1
                     :set pingresultA [/ping $comment count=2];
                     :if ($BLdebug = true) do={
                        :if ($pingresultA > 0) do={
     /log error "$comment пингуется ($pingresultA из 2)";
                        } else={
                                               /log warning "$comment НЕ ПИНГУЕТСЯ";
                        }
                     }
#                   Для каждого IP хоста из кэша DNS
      :foreach i in=[/ip dns cache all print as-value where name=$comment && type="A"] do={

#                                              Если IP нет в адреслистах
     :local tmpAddress ($i->"data");
     :if ([/ip firewall address-list find where address=$tmpAddress] = "") do={

       :local tmpName ($i->"name");
       :if ($BLdebug = true) do={
                   /log info "$tmpAddress найден в DNS кэше и сопоставляется с $tmpName";
       }
#                                                              Вносим IP  в адреслист, имя сайта указываем как комментарий
       :if ($BLdebug = true) do={
                   :log info ("BlockSites added entry: $tmpName $tmpAddress");
       }
       /ip firewall address-list add address=$tmpAddress list=[:pick $tmpArray 1] comment=$tmpName;
     }
#                                              Задержка для снижения нагрузки на CPU
     delay delay-time=10ms;
                     }
источник

L

Lokr in RouterOS Security
} else {
                     :if ($BLdebug = true) do={
                     :log info ("Первый символ *");
                     }
#                    Алгоритм №2
   :set comment [:pick $comment 1 [:len $comment]];
   :set comment ("\\" . $comment);
   :if ($BLdebug = true) do={
   :log info ("Поиск: $comment");
   }
   :foreach i in=[/ip dns cache all print as-value where name~$comment  && type="A"] do={
     :local tmpAddress ($i->"data");
     :if ([/ip firewall address-list find where address=$tmpAddress] = "") do={
       :local tmpName ($i->"name");
     :if ($BLdebug = true) do={
                 /log info "$tmpAddress найден в DNS кэше и сопоставляется с $tmpName";
                 :log info ("BlockSites added entry: $tmpName $tmpAddress");
     }
       /ip firewall address-list add address=$tmpAddress list=[:pick $tmpArray 1] comment=$tmpName;
     }
#                                              Задержка для снижения нагрузки на CPU
     delay delay-time=10ms;
   }

    }
       
            }

        }



     
} while ($lineEnd < $contentLen - 2)
}

:if ($BLdebug = true) do={
:log info (" --------- END BAN SCRIPT");
}
источник

AK

Alexey Konstantinov in RouterOS Security
Lokr
Я геморный скрипт написал. Парсит список доменов из файла. Пингует их и банит полученные IP
вы уподабливаетесь ркн же.
если на адресе есть еще какой то домен то тоже досвидос?
источник

AK

Alexey Konstantinov in RouterOS Security
Lokr
Я геморный скрипт написал. Парсит список доменов из файла. Пингует их и банит полученные IP
а нахера пинговать? добавь в адрес лист и всё.
там разфигачится в ипы адрес.
источник

L

Lokr in RouterOS Security
Alexey Konstantinov
а нахера пинговать? добавь в адрес лист и всё.
там разфигачится в ипы адрес.
IP могут меняться у того же фейсбука их дохрена
источник

AK

Alexey Konstantinov in RouterOS Security
Lokr
IP могут меняться у того же фейсбука их дохрена
добавь фейсбук в адрес лист они все туда упадут .
источник

L

Lokr in RouterOS Security
вот что нам днс ответит туда и пользователь пойдет. значит гарантировано забанится
источник

AK

Alexey Konstantinov in RouterOS Security
адреса определняются.
источник

L

Lokr in RouterOS Security
Alexey Konstantinov
адреса определняются.
единожды при добавлении
источник

AK

Alexey Konstantinov in RouterOS Security
Lokr
единожды при добавлении
Нет, там действует мту по его окончанию обновляется.
источник