Src address list mikrotik что это
Настройка Firewall на шлюзе MikroTik
Настроить firewall на MikroTik достаточно просто, но пользователи либо не сильно много уделяют внимания этой одной из важных элементов настройки устройства, либо настраивают его неправильно, что показало большое количество взломанных устройств в 2019 году, когда была найдена уязвимость WinBox. Данная статья пытается помочь понять, как работает фильтрация трафика в MikroTik, что необходимо делать что бы защитить свои устройства, но не претендует на руководство к действию, каждый выбирает свой путь сам.
Для правильной настройки межсетевого экрана на любом устройстве необходимо понимать несколько вещей:
Схемы работы Firewall
Их две, и они применимы к любому межсетевому экрану:
В первой схеме по умолчанию на все пакеты не накладывается никаких ограничений и по необходимости блокируются только какие-то критические сервисы, например, сервисы предоставляющие удаленный доступ. По данной схеме работают большинство домашних маршрутизаторов, у которых разрешен весь трафик кроме соединений из вне, которые не были инициированы этим устройством или устройствами локальной сети, работающими через этот шлюз.
Во второй схеме все подключения по умолчанию блокируются, если необходим доступ к какому-либо сервису, то разрешаем его.
FireWall в MikroTik
Правила состоят из цепочек (Chain), в таблице Filter Rules по умолчанию три цепочки:
Помимо стандартных цепочек можно создавать пользовательские цепочки, это может быть полезно для создания блоков обработки пакетов и более наглядного его восприятия.
В настройках MikroTik есть еще одно состояние:
Создание правил в Firewall
Возможные параметры для фильтрации трафика:
В результате, если обрабатываемый пакет подпадает под условия правила, с этим пакетом выполняются указанные в настройке действия (Actions). Основные действия при обработке:
Примеры защиты устройств
В командной строке правила будут выглядеть так:
Пример #2. У нас firewall настроен как в примере #1, но нам необходимо чтобы устройство было доступно по протоколу ICMP (можно было проверить доступность устройства с помощью команды ping ) откуда угодно.
Наш firewall работает по схеме разрешено всё кроме того, что запрещено, то, из локальной сети доступ к устройству не ограничен, а из внешней сети доступ ограничивают правила из примера #1. Что бы реализовать доступ к устройству из сети интернет все правила, связанные с этим должны в списке правил располагаться выше запрещающего.
Добавление правила из командной строки будет выглядеть так:
После нажатия кнопки OK правило добавится в самый низ таблицы, перетаскиваем его выше запрещающих правил захватив мышкой.
Пример #3. Firewall настроен как в примерах #1 и #2. Необходимо разрешить доступ RDP (порт 3389) к одному из компьютеров в локальной сети с определенного (доверенного) IP адреса, настройки NAT опускаем, рассматриваем только фильтрацию.
Как и в предыдущем примере разрешающее правило должно располагаться выше запрещающих ввиду того, что запрещающие правила блокируют доступ из внешней сети.
Напоминаю, что здесь мы рассматриваем только фильтрацию трафика, настройки NAT опущены.
В командной строке добавление правила будет выглядеть следующим образом:
Пример #4. Необходимо настроить firewall по схеме #2 (запрещено всё, что не разрешено), при этом необходимо что бы ходил трафик локальной сети от маршрутизатора и обратно, был доступ к маршрутизатору из вне по списку определенных IP и в сеть интернет был доступ только с определенных IP адресов локальной сети.
Отладка
При возникновении проблем любое из правил можно отправить в Log, для этого в свойствах правила на вкладке Action включаем логирование и в поле Log Prefix добавляем пояснение для упрощения поиска в логах.
В разделе Log при отработке правила будут примерно такие записи:
После отладки не забываем отключать в правилах логирование.
IPv6 Firewall
Mikrotik. Типичные проблемы и их решения
Сюда вошли наиболее типичные проблемы микротик и их решения.
Теперь они собраны в одном месте, а не разбросаны по крупицам по всему интернету.
6.1. Как ходит трафик в Микротик?
Это нужно знать наизусть. Иначе можно многое напутать…
Представьте компьютер с двумя сетевыми картами. Будем называть его ШЛЮЗ.
В одну карту входит интернет. Со второй выходит к свитчу.
А к свитчу подключены другие компы.
За этими компьютерами люди в интернете выходят.
Так вот. Трафик идущий от людей в интернет и обратно – это для шлюза транзитный-проходящий трафик FORWARD
Это левая диаграмма. Как раз наш случай с Микротик.
А если на самом шлюзе запускаются браузер, почта и пр.
То это уже Входящий и Исходящий трафик для шлюза. Не транзитный. INPUT и OUTPUT.
Т.к. конечная точка всех пакетов – это сам шлюз, а не компы за шлюзом.
Это левая и правая диаграмма, только без центрального блока FORWARD.
В Микротике правая практически никогда не задействована.
Так что про INPUT-OUTPUT забудьте.
Только для блокировки входящих пакетов.
Filter – разрешает-запрещает пакеты, совпадающие по условию записи в Filter.
NAT – это чаще всего правило SrcNat-Masquerade – чтоб люди могли ходить в интернет.
И DstNat-DstNat – чтоб с интернета можно было добраться до компьютеров и роутеров в вашей сети.
Mangle – продвинутый маркировщик пакетов.
Предположим клиент вашей сети имеет адрес локальный 192.168.0.2, а IP Микротика 80.80.80.1 – это интернет адрес.
Когда клиент запрашивает веб-страницу, к нему идут пакеты.
Но не на его адрес, а на адрес Микротика. Потому как адрес 192.168.0.2 локальный, и само собой напрямую на этот адрес прийти ничего не может.
Т.е. Микротику приходит пакет с Dst.Address – 80.80.80.1
1. Mangle Prerouting, Nat Prerouting – правила в этих 2 цепочках Самые первые обрабатывают пакет.
Никаких локальных адресов в пакете нет, только внешний адрес Микротика!
2. Далее срабатывает Firewall – NAT.
Происходит подмена (из таблицы NAT) для входящих пакетов внешнего IP на локальный.
или DstNat (это для тех, кто пытается достучаться до локальных IP-адресов из интернета)
Т.е. теперь Dst.Address пакета не 80.80.80.1, а уже локальный адрес клиента – 192.168.0.2.
3. Теперь срабатывают правила в цепочках Mangle Forward и Filter Forward.
Тут уже можно фильтровать клиентов вашей сети.
4.Далее снова срабатывает NAT.
Здесь создаются записи в таблице NAT для исходящих пакетов. Т.е. срабатывает SRC-NAT.
По этим записям будет происходить обратная замена IP, когда придут ответные пакеты.
И для исходящих пакетов происходит подмена локального IP 192.168.0.2 на IP Микротика 80.80.80.1.
5. И последний этап – Mangle Postrouting, Nat Postrouting.
Никаких локальных адресов в пакете нет, только внешний адрес Микротика!
Далее все это направляется в шейпер. Queue Tree и Simple Queue.
6.2. Firewall Filter — блокируем и разрешаем.
Здесь создаются блокирующие и разрешающие правила.
Если записей никаких нет – то все разрешено.
Порядок записей имеет значение.
Проверка правил происходит сверху вниз.
Если пакет соответствует правилу, то дальнейшая проверка не происходит, если конечно не стоит галка PassTrugh
Мягкий – Добавлять только запрещающие правила. Все остальное разрешать.
Жесткий – поставить запрещающее правило на все. А сверху добавлять разрешающие.
Блокируется или входящие пакеты или исходящие.
Важно!
1. Никогда не пытайтесь одним правилом блокировать входящие и исходящие пакеты одновременно.
Просто создайте при необходимости 2 правила – на входящие и исходящие пакеты.
А лучше блокировать только исходящие пакеты еще на взлете. Входящих пакетов само собой уже не будет.
Да и Роутер разгрузится от лишнего входящего трафика.
2. Есть 2 типа пакетов – входящие и исходящие.
Важно! Src.Address и Dst.Address в правилах меняются местами. В зависимости от направления движения пакета.
Входящие – это из интернета к нам.
Src.Address – это интернет-адрес отправителя (сервера в интернете).
Dst.Address – это интернет-адрес Микротика (получателя). Если это правило в цепочке PreRouting. или
Dst.Address – это локальный адрес клиента (получателя). Если это правило в цепочке Forward или PostRouting.
Исходящие – это от нас в интернет.
Src.Address – это локальный адрес клиента (отправителя). Если это правило в цепочке Forward или Prerouting.
Dst.Address – это интернет-адрес получателя (сервера в интернете).
3. В правилах всегда указывайте Out. Interface или In. Interface.
Причем, если указываете In. Interface – LAN1, то это исходящий трафик.
Значит Dst.Address – это должен быть адрес интернет-ресурса. А Src.Address – это адрес вашей локалки или Микротика, если указываете Out. Interface – LAN1, то это входящий трафик.
Значит Dst.Address – это должен быть адрес вашей локальной сети или Микротика. А Src.Address – адрес интернет-ресурса.
То же самое (п. 1 и 2) касается и Mangle.
6.3. NAT. Проброс портов.
В данном случае на компе с адресом 192.168.88.10 запущен веб сервер. Если внутри вашей сети набрать в браузере 192.168.88.10 – то откроется локальный сайт. А если с другого компа в интернете набрать в браузере 80.80.80.1:10010
80.80.80.1 – это Ваш внешний_IP_адрес_Микротика, то Вы попадете на свой сайт, который находится на компе 192.168.88.10.
6.4. Маркировщик Mangle. Следим и помечаем трафик.
Это очень мощное средство. Позволяет маркировать пакеты по любым правилам. Подчиняется тем же правилам, что описаны в разделе 6.2. FireWall Filter. Но Мангле ничего не запрещает и не разрешает. Он просто помечает трафик: соединения, пакеты, маршруты и пр. Умеет также добавлять в AddressList, Менять TTL пакетов, приоритет, порядок цепочек и пр. пр. Это для дальнейшей обработки в фаерволе или шейпере.
6.5. Address List. Для чего он?
Это в основном для того, чтоб не указывать кучу однотипных правил для разных IP, а кинуть эти IP в один Address List. И затем создать только одно правило на этот Address List.
Кроме того, правила Mangle – сами могут добавлять IP адреса в определенный Address List.
Например, добавить в Address List “ICQ” – те IP, которые пользуются ICQ.
Чрезвычайно удобная штука!
6.6. Нарезаем скорость. Simple Queues.
Важно! Проверка правил шейпера происходит сверху вниз. Если какое-то правило шейпа сработало, то дальнейшая проверка уже не производится!
Добавляем IP или список IP, для которых в сумме можно выставить максимальную скорость Max Limit.
Отдельно входящую и исходящую скорость.
Можно также выставить гарантированную скорость – Limit At.
Но с этим будьте осторожны! Если у Вас канал плавающий по скорости – лучше отключить.
Также можно включить дополнительные колонки, которые показывают входящую и исходящую скорости (Total Tx Bytes, Total Rx Bytes). (Правой кнопкой мыши по окну Queue. Затем Showcolumns и крутим ниже… )
А также потребленный входящий и исходящий трафик. (Rx Avg. Rate и Tx Avg. Rate )
Начиная с момента последней перезагрузки роутера.
Можно скорости писать в виде 500K, 2M, а также можно указать скорости Burst Limit (с Burst TreshHold, Burst Time)
Это взрывная кратковременная скорость.
Очень эффективно при низко скоростных тарифах и если Вас качальщики задрали.
Веб сайты открываются тогда моментом на Burst скорости, а закачки идут на обычной скорости.
Если у Вас Dual Access, то можно для каждого клиента создать еще одну дополнительную запись с высокой скоростью на локальные ресурсы.
Только нужно дополнительно указать Dst. Address 10.0.0.0/8 – это Ваши локальные ресурсы.
Эту запись нужно поставить выше основной записи клиента.
Если Вы скорость на локальные ресурсы не хотите подрезать вообще, то
Можно создать только одну общую запись с Dst. Address – 10.0.0.0/8, Target Address – пустой, скорость Tx, Rx указать по максимуму – например 1G
и поместить ее на самый верх.
Важно! Очень советую в самый конец добавлять правило END.
Все, что не сработало по любому из шейпером – будет шейпится в правиле END.
На этом правиле будет учитываться, подрезаться или блокироваться весь неучтенный трафик.
Ну например Вы по невнимательности забыли кого-то добавить в шейпер.
И человек получит всю доступную скорость без любых огранечиний! Тем самым может положить канал!
Правило END для учета и подрезки неучтенного траффика:
add interface=all max-limit=100k/100k name=END target-addresses=192.168.0.0/16
Для учета без подрезки – ставим max-limit=100M/100M
Для подрезки под 0 – ставим max-limit=10/10
192.168.0.0/16 – Весь диапазон, не попавший в верхние правила.
По функциональности он гораздо шире. Этот шейпер срабатывает раньше Simple Queue.
Эффективен особенно при методе PCQ.
И большом количестве клиентов 100 и более.
В нем входящая и исходящая скорости нарезаются отдельными правилами.
Он работает только в связке с Мангле.
Придумаем несколько Адрес листов – например 1M и 5M.
Это тарифные планы.
1. В IP-Firewaal-Address List Добавляем IP юзеров – и вписываем им 1М или 5М.
2. Далее в IP-Firewall-Mangle маркируем Connection-ы.
Создаем правило forwad. Action – mark connection (New Connection Mark называем к примеру Conn-5M или Conn-1M, Passtrough – включаем),
Ставим Connection State – new, Out. Interface – LAN1, а также наш Dst. Address List – 1M или 5M.
3. Затем ниже создаем правило forward. Action – mark packet. (New Packet Mark называем к примеру p-5M или p-1M, Passtrough – включаем)
Connection Mark – ставим Conn-5M или Conn-1M соответственно.
4. Далее в Queue Types создаем PCQ-правило к примеру PCQ-Download, в нем Dst. Address – включаем.
5. Затем в Queue Tree – создаем родителя, называем его Download, а Parent – наш LAN1 интерфейс.
6. Создаем еще два правила в Queue Tree –
Называем правило к примеру Speed-5M, указываем родителя Download, Queue Type – PCQ-Download, Packet Marks – p-5M и указываем нашу скорость Max Limit – 5M
(а второе правило то же самое, только имя правила Speed-1M, Packet Marks – p-1M, а скорость Max Limit – 1M )
Эти два правила будут будут нарезать трафик всем клиентам.
Достаточно адрес IP клиента добавить в нужный Adrress List.
Все кто в Адрес лист 1M – получат скорость 1M
Все кто в Адрес лист 5M – получат скорость 5M
Чтобы изменить скорость всем 5M на 10M – достаточно только в QueueTree поменять одну строчку – Max Limit.
Т.е. скорости каждому в отдельности не прописываются, а прописываются тарифные планы – т.е. Packet Mark
На исходящий трафик нужно создать нового родителя с parent – наш WAN1. Также создать в Queue Type – PCQ-Upload, в нем Src. Address – включаем.
Все остальное аналогично.
Графики для Queue Tree – недоступны.
А как же смотреть, кто сколько скачал и на какой скорости и кто качает?
Добавляем в IP-Firewall-Mangle – на каждый IP – свою запись: Chain – forward. Out. Interface – LAN1. Dst. Address – наш IP. Action –Passtrouh.
Эти записи ставим ниже записей mark-connection и mark-packet.
Включаем дополнительную колонку – Rate. Это и есть текущая скорость. (Правой кнопкой мыши по окну Mangle. Затем Showcolumns и крутим в самый низ, пока не найдем Rate )
Колонка Bytes – это потребленный трафик Download (Rx).
6.8. Включаем Графики.
Графики трафика доступны для всех интерфейсов, и Simple Queue. А также доступны графики загрузки процессора, памяти, flash-памяти. За сутки, за неделю, за месяц, за год.
Графики включаются в Tools – Graphing.
Просто добавьте нужные позиции.
Посмотреть графики можно на Веб-странице Микротика.
При перезагрузке графики сохраняются.
При прошивки графики сбрасываются.
6.9. IPTV настройка.
Скачиваем версию пакетов под ваш Микротик
Вместо 5.16 ставим – вашу версию Router OS.
Важно! Версия пакета должна совпадать с версией вашей Router OS!
Распаковываем. Перетаскиваем multicast…npk на WinBox.
Далее идем в System-Packages. Там должен быть multicast пакет.
Идем в Route – там должен быть IGMP Proxy.
1-2. Route – IGMP Proxy – 2 записи.
3. IP-Route – добавляем маршрут на локальную сеть
4. IP-Firewall-Filter – разрешающее правило на локальную сеть. Или пока все отключить.
5. IP-Firewal-NAT – Out Interface пустой
6. WiFi – WMM support включить
6.10. Резервирование 2 и более каналов.
По умолчанию пакеты идут через WAN1.
Если WAN1 отвалится – все пакеты пойдут на WAN2.
В NAT – Out. Inteface – пустой.
В IP – DHCP Client – Add Default Route – можно отключить
6.11. Балансировка 2+ каналов.
Балансировка через маршруты. Соединения вперемешку будут идти через WAN1 или WAN2
Метод хорошо работает при каналах приблизительно равных по скорости.
Разница по скорости каналов не должна отличаться более чем в 2 раза.
В Мангле – эти правила поднимите наверх.
Можно добавить еще маршрут без маркировки на всякий пожарный:
В NAT – Out. Inteface – пустой.
В IP – DHCP Client – Add Default Route – можно отключить
Важно! При каналах сильно отличающихся по скорости он мало эффективен.
В таком случае советую использовать резервирование каналов по п. 6.10.
Слабый канал погоды все-равно не сделает. А скоростному мешать будет.
6.12. Запрет определенных сайтов по имени.
Открываем New Terminal. И вставляем наше правило. Не забудьте поднять его наверх.
Можете также вручную кнопкой [+] создать это правило.
Все. сайт mikrotik.org больше не откроется.
Тем самым Вы блокируете только исходящие запросы еще на взлете.
Роутеру уже на нужно фильтровать входящие пакеты от этого сайта,
потому как Входящих пакетов само собой дальше уже не будет.
А исходящий трафик обычно в 10-20 раз меньше входящего.
Да и фильтруются только исходящие TCP запросы.
Кроме того сами исходящие GET-запросы копеечные по трафику – до 200-500 байт. Они помещаются в один пакет.
Т.к. что нагрузка на правило content – мизерная.
Кроме того не будут блокироваться сайты, содержащие строчку Host: mikrotik.org
и будут проходить get-запросы содержащие строчку mikrotik.org.
Что есть очень хорошо.
src-address – ставим IP компьютера-жертвы.
content=”Host: mikrotik.org” – блокируемый сайт
Если нужно блокировать доступ к сайту для всех компов, убираем эту строчку src-address.
Если нужно блокировать только определенным компьютерам – то создайте во вкладке address-list, записи с IP блокируемых компьютеров. И назовите эти записи к примеру block-website.
А вот Этот адрес-лист укажите уже в записи Src.Address List. Src-address – удалите
6.13. Определяем у кого стоят роутеры по TTL.
Все IP адреса, которы сидят за роутерами, попадут в Address-List Router
Как это применить – есть куча вариантов.
И наоборот, можно спрятать вашу сеть от фильтра TTL провайдера.
Это правило поднимите на самый верх.
6.14.Блокируем порты спамеров.
1. Блокируем порты спамеров и зараженных троянами-вирусами компов.
2. Добавляем в address-list=spammer наших спамеров на 30 дней :
При большом количестве соединений на 25 порт – IP пользователя заносится в address-list=spammer
А Этот address-list=spammer – блокируется фаерволом.
Вы же не хотите, что бы Ваш провайдер Вам закрывал порты? Или хотите?
6.15. Настройка Static DNS.
Static DNS
нужен чтобы к любому компу в сети обращаться не по IP адресу, а по придуманному имени. Что очень удобно.
IP – DNS – Static DNS – [+] Добавляем пару к примеру IP-адрес – и DNS-имя. 192.168.0.1 – myrouter.net
Таперь на наш роутер можно заходить по myrouter.net
6.16.Кешируем с помощью Web-Proxy.
Кеширование используется для:
1. Ускорения интернет. Особенно Эффективно при медленном интернете.
Часто запрашиваемые файлы хранятся на флеш-памяти или винте.
При повторном запросе – эти файлы не закачиваются с интернета, а берутся из кеша Микротика
2. Для экономии траффика. Хорошо при платном траффике.
3. Для котроля – кому какие сайты разрешать и пр.
Весь трафик проходит через прокси микротика.
На прокси ставиться порт 8080.
И затем включается прозрачный прокси.
6.17. Редирект на страницу-напоминалку.
Очень эффективно не просто отключать пользователей, а напоминать им – почему они отключены!
К примеру у Вас есть комп в сети 192.168.0.10. Там находится Веб-сервер и страница-напоминалка-пополнялка-личный кабинет. Она доступна по адресу 192.168.0.10
Это правило кинуть выше правила srcnat!
Все. редирект работает.
3. Но еще очень желательно 2 правила в IP – Firewall – Filter
Эти правила кинуть вниз.
Это для полной блокировки любой активности (а не только ВЕБ-серфиннг) юзеров, которые не в ALLOW.
Затем юзеров – которых нужно перенаправить – просто отключаем крестом в Address List, вручную или скриптом при отрицательном баллансе из биллинга.
Один клик и готово.
Теперь, когда юзер наберет anysite.com – он автоматом попадет на Вашу странцу.
Но когда он наберет – anysite.com/anypage.php – он увидит ошибку, а не Вашу страницу!
где – /index.html – это Ваша страница напоминалка.
А в 404.php сделать include вашей страницы напоминалки.
Или просто скопировать ее содержимое.
Теперь куда бы пользователь не зашел – он всегда увидит Вашу страницу.
Вот так все просто.
6.18. Шейпим торренты.
Данный метод режет все торренты. И шифрованные в том числе. И он не ресурсоёмкий для Микротика.
p2p=all-p2p – работает только для редких не шифрованных торрент-клиентов.
Маркируем входящие торрент-пакеты по размерам, портам и протоколам:
Если нужна обработка нижележащих цепочек – Укажите всюду passthrough=yes.
Далее можно добавить новое правило Torrent-5M в раздел Queue Tree в родителя Download. Указав Packet Marks – Torrent. И желаемую скорость 5M.
5M – это скорость для каждого или для всех в сумме, в зависимости от выбора Queue Type в PCQ Dst. Address Mask 32 или 24.
Или добавить одно правило на самый верх в Simple Queue. Указав Packet Marks – Torrent. И желаемую Tx скорость 50M.
50M – это скорость общая на всех торрент-клиентов.
В Simple Queue можно каждому указать скорость на торрент в отдельности.
Т.е. для каждого IP создать дополнительную запись.
Эта запись должна быть выше основной записи IP клиента.
Или уже решайте на свое усмотрение, что с этими маркированными пакетами делать.
Учитывайте, что сюда также могут иногда попасть пакеты из онлайн игр.