понедельник, 19 сентября 2016 г.

Как на mikrotik cделать фильтрацию трафика с 22:00 до 10:00

Вопрос: Как на mikrotik одним правилом сделать фильтрацию трафика с 22:00 до 10:00? На cisco без проблем. Здесь же говорит "couldn"t add new firewall rule - start time bigger than end time". Если ставить 20:00:00 и 1d 10:00:00 то говорит "Error interval". Mikrotik так не умеет или я что-то делаю не так?

Ответ: Одним правилом сделать это нельзя - mikrotik не воспринимает такие диапозоны, но есть варианты

(далее блокируется пинг до Google DNS 8.8.8.8, не забудьте удалить после тестов)

0) Стандартный способ - использовать два правила с временными промежутками 22:00:00-23:59:59 и 00:00:00-10:00:00

1) Использовать через запрет - Где-то в конце есть правило, которое запрещает, а конкретным правилом разрешать.

/ip firewall filter
add chain=forward dst-address=8.8.8.8 protocol=icmp src-address=192.168.0.0/16 time=10h-22h,sun,mon,tue,wed,thu,fri,sat

add action=reject chain=forward protocol=icmp src-address=192.168.0.0/16

2) Использовать шедулер -
также создаём правило в файрволе, но не указываем конкретное время -

/ip firewall filter
add action=reject chain=forward dst-address=8.8.8.8 protocol=icmp src-address=192.168.0.0/16

Далее получаем номер правила с помощью
ip firewall filter print

И теперь создаём два правила шедулера -

/system scheduler
add interval=1d name=schedule1 on-event="ip firewall filter disable 1\r\
    \n" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=sep/19/2016 start-time=10:00:00
add interval=1d name=schedule2 on-event="ip firewall filter enable 1\r\
    \n" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=sep/19/2016 start-time=22:00:00

Это даёт нам несколько преимуществ -

  1. Мы не привязаны только к правилам файрвола и можем работать с чем угодно - интерфейсы, пользователи и може делать всё что нам захочется.
  2. Если правил для фильтрации много, то в случае изменения временного промежутка нам надо поменять в ОДНОМ месте, иначе пришлось бы менять во всех где используется временной фильтр.
  3. В случае если надо выключить (или включить) фильтрацию, то можно запустить один скрипт который это всё сделает, а не менять время на интерфейсах (или на самом роутере)
  4. Более гибкая работа со временем. Можно сделать несколько разных фильтраций с разными правилами и фильтрациями.


3) Немного "костыльный" способ - через изменение текущего часового пояса - то есть если у нас Московкий часовой пояс +3, то выбираем -7, и теперь надо указывать промежуток - от 12:00:00, до 23:59:59

PS: Надо не забывать обязательно настраивать синхронизацию по времени в случае работы с учётом времени.