Mikrotik Firewall: повышаем безопасность при работе с VPN L2TP, PPTP и PPPoE, оптимизация правил файрволла

04 май 2018 27 864 36
Во многих предыдущих версиях RouterOS используются правила Firewall с прямым указанием названий интерфейсов для некоторых правил.

Рассмотрим ситуацию на примере старенького RB951Ui-2HnD, для которого в одной из предыдущих версий RouterOS производителем заданы следующие правила по-умолчанию:
Если Вы хотите научиться настраивать MikroTik, предлагаем пройти онлайн обучение. Более подробную информацию Вы можете найти в конце данной публикации.
/ip firewall filter
add action=accept chain=input comment="default configuration - ACCEPT ICMP" \
    protocol=icmp
add action=accept chain=input comment=\
    "default configuration - ACCEPT established and related" \
    connection-state=established,related
add action=drop chain=input comment=\
    "default configuration - DROP other input from WAN" in-interface=\
    ether1-gateway
add action=fasttrack-connection chain=forward comment=Fasttrack \
    connection-mark=!ipsec connection-state=established,related disabled=yes
add action=accept chain=forward comment=\
    "default configuration - ACCEPT forward established and related" \
    connection-state=established,related
add action=drop chain=forward comment=\
    "default configuration - DROP Invalid connections" connection-state=\
    invalid
add action=drop chain=forward comment=\
    "default configuration - DROP from WAN using static route (not DSTNATed)" \
    connection-nat-state=!dstnat connection-state=new in-interface=\
    ether1-gateway

Правила относятся к стандартной конфигурации (defconf), поэтому не будут меняться при простом обновлении версии RouterOS, во всяком случае при обновлении до 6.42.1 правила не меняли своего вида. Возможно, изменения будут при полном сбросе.

Как видим, для двух правил используется прямое указание внешнего WAN-интерфейса – ether1-gateway. Для других моделей RouterBOARD может применяться название eth1, ether1 или eth1-gateway, общей сути это не меняет.

В частности, речь идет о правилах «drop input» и «drop not-dstnatated», которые обеспечивают защиту вашей внутренней сети. Вышеприведенные настройки Firewall вполне корректны для типа подключения «Automatic» (DHCP), когда вы не используете классический VPN (l2tp, pptp) или PPPoE.

Как это понимать?

Все дело в том, что при использовании VPN, интернет предоставляется непосредственно внутри тоннеля, а сам клиент при этом может находится в локальной сети провайдера (NAT с авторизацией). Иногда в домашних маршрутизаторах данный тип подключения производители называют как Russian L2TP, Russian PPTP или Dual Access.

В данном случае, приведенные правила Firewall, для которых указан «in-interface=ether1-gateway», имеют отношение исключительно к локальной сети провайдера и при этом не затрагивают vpn-туннель, ведь, по сути, для маршрутизатора это уже отдельный интерфейс. Ситуация усугубляется в тех случаях, когда внутри VPN пользователь получает реальный внешний IP, открывающий доступ к устройству со всего мира.

Определить внешний IP очень просто, достаточно зайти на 2ip.ru и сверить отображаемый IP-адрес с тем, который присвоен на интерфейсе роутера. Также NAT легко определить по самому IP:
  • 10.0.0.0 — 10.255.255.255
  • 100.64.0.0 — 100.127.255.255
  • 172.16.0.0 — 172.31.255.255
  • 192.168.0.0 — 192.168.255.255
Возможен и второй сценарий. К примеру, вы используете VPN для Policy Based Routing с целью обхода ограничений провайдера.
В первом и втором варианте конфигурации, если у вас в правилах используется явный интерфейс, необходимо внести правки в Firewall.

Откройте раздел «Interfaces» (интерфейсы), в нем перейдите на вкладку «Interface List» (списки интерфейсов), нажимаем в верхней части кнопку «Lists» (списки) и создаем новый список под названием WAN.
/interface list
add comment="contains WAN interfaces" name=WAN

После создания нового списка интерфейсов, добавляем в него основной физический WAN-интерфейс и PPPoE/VPN-подключение. Например:
/interface list member
add interface=ether1-gateway list=WAN
add interface=l2tp-hideme list=WAN

После того, как мы создали отдельный список для WAN-интерфейсов, можно приступить к изменению правил Firewall.
Собственно здесь все очень просто. Там, где явно указан in-interface=ether1-gateway, следует его убрать и назначить вместо него параметр in-interface-list=WAN.
/ip firewall filter
add action=accept chain=input comment="default configuration - ACCEPT ICMP" \
    protocol=icmp
add action=accept chain=input comment=\
    "default configuration - ACCEPT established and related" \
    connection-state=established,related
add action=drop chain=input comment=\
    "default configuration - DROP other input from WAN" in-interface-list=WAN
add action=fasttrack-connection chain=forward comment=Fasttrack \
    connection-mark=!ipsec connection-state=established,related disabled=yes
add action=accept chain=forward comment=\
    "default configuration - ACCEPT forward established and related" \
    connection-state=established,related
add action=drop chain=forward comment=\
    "default configuration - DROP Invalid connections" connection-state=\
    invalid
add action=drop chain=forward comment=\
    "default configuration - DROP from WAN using static route (not DSTNATed)" \
    connection-nat-state=!dstnat connection-state=new in-interface-list=WAN

После подобного изменения правило будет срабатывать для всех интерфейсов, которые включены в список WAN-интерфейсов.
Данный метод служит также оптимизацией, уменьшающей количество правил Firewall. В противном случае, вам бы пришлось создавать дублирующие правила для каждого WAN-интерфейса, и в конкретно этом примере это были бы лишние 2 правила.

Видеокурс «Настройка оборудования MikroTik» (аналог MTCNA)

Учитесь работать с MikroTik? Рекомендую видеокурс «Настройка оборудования MikroTik». В курсе разобраны все темы из официальной учебной программы MTCNA и много дополнительного материала. Курс сочетает теоретическую часть и практику – настройку маршрутизатора по техническому заданию. Консультации по заданиям курса ведет его автор Дмитрий Скоромнов. Подойдет и для первого знакомства с оборудованием MikroTik, и для систематизации знаний опытным специалистам.

Комментарии:

Добавить
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
  1. валентин
    валентин Гости 1 декабря 2020 21:27
    + 0 -
    Ребят подскажите что делает эта строка. Я просто не понимаю какую защиту локалки эта строка дает, если она открывает доступ ко всей LAN.
    add action=drop chain=forward comment=\ "default configuration - DROP from WAN using static route (not DSTNATed)" \ connection-nat-state=!dstnat connection-state=new in-interface=\ ether1-gateway
    1. Гость Дмитрий
      Гость Дмитрий Гости 24 января 2021 16:36
      + 0 -
      Неверно поняли. Правило запрещает (action=drop) входящий трафик на ether1-gateway интерфейсе, кроме того который предваритьльно dstnat (перенаправление портов)
  2. andrew71
    andrew71 Гости 30 сентября 2019 23:19
    + 0 -
    Автору большое спасибо! Очень изящное решение подружить FastTrack и VPN. Сам не додумался.
    Реально спасибо!
  3. Anton Babaskin
    Anton Babaskin Посетители 4 июля 2019 21:15
    + 0 -
    нет смысла лезть в defconf сидя за натом.
  4. mrrc
    mrrc Гости 1 декабря 2018 20:54
    + +1 -
    Не совсем понимаю, для чего дополнительно ограничивать отдельными правилами доступ к конкретным сервисам и службам на микротоме, наподобие DNS, поступающих через WAN-интерфейсы, если далее по списку правил следует общее запрещающее правило для всех подключений через WAN, то есть выдержан принцип, запрещено все, что не разрешено.
    1. DmitryAVET
      DmitryAVET Создатель 2 декабря 2018 00:06
      + +1 -
      все верно, они больше для контроля
  5. Руслан
    Руслан Гости 18 октября 2018 16:36
    + 0 -
    Здравствуйте!
    Настраивал безопасность по вашим статьям своего микротика 951Ui-2HnD(firmware:6.42.7; factory firmware 3.24). Но в процессе сравнения Вами приведенной настройки по умолчанию и настройки которая выводится по команде /system default-configuration print, обнаружил различия.
    Это то что выводит команда у меня:
    /ip firewall {
    filter add chain=input action=accept connection-state=established,related,untracked comment="defconf: accept established,related,untracked"
    filter add chain=input action=drop connection-state=invalid comment="defconf: drop invalid"
    filter add chain=input action=accept protocol=icmp comment="defconf: accept ICMP"
    filter add chain=input action=drop in-interface-list=!LAN comment="defconf: drop all not coming from LAN"
    filter add chain=forward action=accept ipsec-policy=in,ipsec comment="defconf: accept in ipsec policy"
    filter add chain=forward action=accept ipsec-policy=out,ipsec comment="defconf: accept out ipsec policy"
    filter add chain=forward action=fasttrack-connection connection-state=established,related comment="defconf: fasttrack"
    filter add chain=forward action=accept connection-state=established,related,untracked comment="defconf: accept established,related, untracked"
    filter add chain=forward action=drop connection-state=invalid comment="defconf: drop invalid"
    filter add chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface-list=WAN comment="defconf: drop all from WAN not DSTNATed"
    }
    Хотелось бы поинтересоваться, актуальные ли на данный момент это команда выводит настройки?
    Если да то почему они отличаются от Ваших?
    1. DmitryAVET
      DmitryAVET Создатель 18 октября 2018 21:22
      + 0 -
      Если IPsec не используете, то лишние правила вам не нужны )
      1. Руслан
        Руслан Гости 19 октября 2018 12:26
        + 0 -
        Там не только с ipsec различия (выделил отличия в правилах):
        filter add chain=input action=drop connection-state=invalid
        filter add chain=input action=accept connection-state=established,related,untracked
        filter add chain=forward action=accept connection-state=established,related,untracked

        И по другому реализован дроп входящих:
        filter add chain=input action=drop in-interface-list=!LAN comment="defconf: drop all not coming from LAN"

        /interface list member add list=LAN interface=bridge comment="defconf"

        Я извиняюсь, просто хотелось бы настроить актуально и безопасно, и интересуюсь Вашим мнением о различиях.
        1. DmitryAVET
          DmitryAVET Создатель 19 октября 2018 20:23
          + 0 -
          1) на чейнах input и forward для invalid должен стоять drop

          Возможно при написании случайно строчку удалил

          2) untracked нужен, если используете RAW. Если не знаете что это такое - тогда не нужен )
        2. makbar
          makbar Гости 29 марта 2019 12:48
          + -1 -
          Ага, RAW... через это правило ИМХО проходит GRE протокол
          и без его разрешения туннели не поднимутся
  6. Дмитрий
    Дмитрий Гости 7 мая 2018 09:46
    + +1 -
    DmitryAVET, Посмотрел на приведенный Вами мануал по fasttrack, там правила отмечены зеленой галочкой в Filter rules и в Mangle, а у меня, после импорта Ваших правил, они серенькие и не редактируются, их нельзя включить-выключить, только удалить. До импорта правил не было ни каких.
  7. Дитрий
    Дитрий Гости 6 мая 2018 17:31
    + 0 -
    Уточните пожалуйста по ему вопросу? Спасибо.
  8. zilf
    zilf Посетители 6 мая 2018 10:06
    + 0 -
    А вот у меня в правилах по дефолту еще стоит дроп на инвалидные подключение в инпуте. Надо ли оно? Счетчик на нем понемногу тикает, но немного. И еще, у вас, Дмитрий, вижу правило на icmp в самом верху, у меня оно идет после разрешения инпут и дропа инвалидных на инпуте. Как лучше?
    1. DmitryAVET
      DmitryAVET Создатель 6 мая 2018 10:35
      + 0 -
      drop invalid есть в стандартных правилах - предпоследнее правило.
      Первое правило на input icmp это разрешение пинговать устройство :) обычные ICMP-пакеты
      1. zilf
        zilf Посетители 6 мая 2018 10:45
        + 0 -
        у меня дроп на инвалид в цепочке инпут по дефолту стоит (в форварде понятно что надо). А про icmp я имел ввиду есть ли разница особая - самое первое оно стоит или после разрешенных входящих.
        1. DmitryAVET
          DmitryAVET Создатель 6 мая 2018 11:41
          + 0 -
          Главное, чтобы разрешающее стояло выше запрещающего, в противном случае оно не будет срабатывать. Если же оно ниже других разрешающих - также не будет срабатывать, если сработало вышестоящее правило.
  9. Vitaliy
    Vitaliy Гости 6 мая 2018 00:47
    + 0 -
    Раз уж у нас тут тема по переделкt старого набора правил файрволл под новый defconf, то сразу можно и добавить untracked в connection-state=established,related для input и forward
    1. DmitryAVET
      DmitryAVET Создатель 6 мая 2018 09:51
      + 0 -
      Зачем разрешать лишние входящие соединения? Стандартными правилами untracked не разрешен, вероятно у Mikrotik на то были причины?
  10. Дмитрий
    Дмитрий Гости 6 мая 2018 00:17
    + 0 -
    DmitryAVET, Подскажите, а можно ли как то проверить работу правила Fasttrack?
    1. DmitryAVET
      DmitryAVET Создатель 6 мая 2018 09:40
      + 0 -
      Для него отображается счетчик трафика и пакетов
      1. Дитрий
        Дитрий Гости 6 мая 2018 13:21
        + 0 -
        В правиле fasttrack , сутки по нулям счетчики. Так-же правило drop all from WAN not DSTNAT ed, тоже по нолям, это нормально?
        1. DmitryAVET
          DmitryAVET Создатель 6 мая 2018 17:33
          + 0 -
          fasttrack если работает - счетчик идет.
          По поводу drop - либо все нормально, либо правило неправильно настроено
        2. Дмитрий
          Дмитрий Гости 7 мая 2018 05:58
          + 0 -
          А кроме правила по fasttrack в firewall, его нужно как то в другом месте включать или правила достаточно?
        3. DmitryAVET
          DmitryAVET Создатель 7 мая 2018 09:13
          + 0 -
        4. DmitryAVET
          DmitryAVET Создатель 14 мая 2018 10:32
          + 0 -
          вы случаем connection-mark не указывали? Например connection-mark=main? Не используйте данный параметр, если у вас нет меток.
  11. Дмитрий
    Дмитрий Гости 5 мая 2018 22:35
    + 0 -
    Привет! Сделал как написано в статье, но в firewall -> filter rules, ни появилось пункта WAN?
    https://hostingkartinok.com/show-image.php?id=746a776c02f7324752e9f671fbc0b50a
    1. DmitryAVET
      DmitryAVET Создатель 5 мая 2018 23:08
      + 0 -
      Так вы выбирайте чуть ниже, там где списки интерфейсов - In. Interface List, а верхний параметр удаляете.
      1. Дмирий
        Дмирий Гости 5 мая 2018 23:27
        + 0 -
        что то так и ни понял...
        1. DmitryAVET
          DmitryAVET Создатель 5 мая 2018 23:30
          + 0 -
          Последний скриншот в публикации и есть ответ на ваш вопрос.
        2. Дмитрий
          Дмитрий Гости 5 мая 2018 23:41
          + 0 -
          ну, так я же прикрепил свой скрин, на котором в этом окне не появился пункт WAN. Или его нужно в ручную написать в поле?

          аааааааа.. Семен семеныч.. всё понял) Спасибо) Получается и во всех правилах где есть указание на eth1 поменять на WAN и в DNS правилах тоже?
        3. DmitryAVET
          DmitryAVET Создатель 5 мая 2018 23:55
          + 0 -
          Бинго... вы выбираете из интерфейсов, а надо из "списка интерфейсов". И да, везде eth заменить на WAN.
  12. Максим
    Максим Гости 5 мая 2018 14:24
    + 0 -
    Нужно ли в этот список добавлять VPN, который служит для обхода блокировок?
    1. DmitryAVET
      DmitryAVET Создатель 5 мая 2018 14:29
      + 0 -
      В него нужно добавлять все внешние и не доверенные сети/подключения. В том числе и VPN для обхода.
      1. Максим
        Максим Гости 5 мая 2018 18:15
        + +1 -
        У меня была настройка фаервола с Интернета, сейчас привел ее к такому виду:


        Не подскажете, достаточно ли безопасна такая настройка, с учетом того, что у меня в списке WAN 2 порта провайдера, 2 ppoe и l2tp+ipsec VPN?

        И нужен ли в такой конфигурации fasttrack? Правильно ли он будет работать?
        1. DmitryAVET
          DmitryAVET Создатель 5 мая 2018 21:31
          + 0 -
          У вас стандартные правила, с небольшой модификацией - дополнительный drop на часть портов.

          Обратите внимание, если VPN к удаленному офису, если сеть доверенная и вы ходите иметь доступ к своим внутренним ресурсам из офиса - в WAN интерфейс загонять VPN не требуется.

Блокировка почтовых спамеров (SMTP) средствами RouterOS в локальной сети на

Предположим, что существует компания «Рога и Копыта», в которой большое количество сотрудников и рабочих мест, есть удаленные филиалы, полноценный...

Базовая защита от DoS-атак и SYN-флуда на устройствах Mikrotik RouterBOARD под

В процессе повышения навыков работы с Mikrotik и RouterOS в частности, очень важно иметь в своем распоряжении дополнительное устройство RouterBOARD...

Последствия неправильной настройки Mikrotik и критического бага в RouterOS

В Mikrotik уже неоднократно напоминали о необходимости своевременно обновления. К сожалению, большинство владельцев пропускают данную информацию мимо...

Отключаем навязчивую рекламу в Skype средствами Mikrotik

Надоела навязчивая реклама в Skype? Мне - да. Для владельцев Mikrotik есть удобный трюк, при помощи которого можно отключить рекламу в Skype сразу на...

Как подружить FastTrack и IPsec в Mikrotik RouterOS?

В одной из предыдущих публикаций я описывал способ маркировки нужного трафика и его последующую отправку в VPN. Одной из негативных сторон описанного...

Denial Of Service: уязвимость RouterOS 6.38.5 позволяет вызвать отказ сети

Не успели Mikrotik закрыть уязвимости, выявленные с публикацией Wikileaks Vault 7, как 28-го марта была опубликована новая уязвимость CVE-2017-7285,...

авторизация на сайте

Забыли пароль?