воскресенье, 9 октября 2016 г.

Добавляем IP в статический лист через правила в Firewall.

  Возьмем классическое правило добавления IP в address-list в Firewall Mikrotik:
/ip firewall filter
add action=add-dst-to-address-list address-list=1 address-list-timeout=0s chain=forward
  Обратимся к Wiki:
address-list-timeout (time; Default: 00:00:00) - указываем временной интервал, на который мы добавляем IP в адрес-лист. Значение 00:00:00 оставит адрес в списке навсегда.

   Но если взглянуть на скриншот, можно увидеть, несмотря на интервал 00:00:00, правила создаются динамические. А это значит, что после перезагрузки эти листы удалятся. Очень странное поведение RouterOS, но имеем то, что имеем!
  Иногда нам нужно правилом забанить вредоносные IP. Например те, которые подключаются с WAN-интерфейса, и мы определяем их подключения - как небезопасные. При-чем хочется забанить их навсегда - но получается только до перезагрузки. Для этого нам нужно преобразовать динамические записи -  в статические. В этом случае можно использовать скрипт. Скрипт, преобразовывающий динамические записи в адрес-листе в статические я описывал ранее, сейчас я приведу его другую вариацию:
:foreach i in=[/ip firewall address-list find list=1] do={
    :local ipaddress [/ip firewall address-list get $i address]
    :local dynamic [/ip firewall address-list get $i dynamic]
    if ($dynamic = true) do={
        /ip firewall address-list remove $i
        /ip firewall address-list add list=12 address=$ipaddress
    }
}
  Где "1" - имя динамического адрес-листа, а "12" - имя преобразованного статического. Скрипт можно кинуть в планировщик на выполнение раз в минуту. Таким образом ни один IP не пропадает после перезагрузки. Теперь можно создавать правило для дропа статического адрес-листа.


Подписаться на новые статьи.

3 комментария:

  1. Спасибо дружище, теперь могу банить уебанов майкрософтских

    ОтветитьУдалить
  2. Спасибо. Оказалось полезно. Только я заместо 1 и 12 указал одно и тоже имя листа. Эффект перевода адресов из динамических в статические.

    ОтветитьУдалить
  3. "Очень странное поведение RouterOS, но имеем то, что имеем!"
    Почему же? А если бы Вам нужно было иметь временный список с записями без тайм-аута, то это поведение уже не казалось бы странным?

    ОтветитьУдалить