Блокировка загрузки файлов по расширению mikrotik routeros

Обновлено: 06.07.2024

Настройка черного и белого списков в роутерах Mikrotik

Ограничение доступа к тем или иным ресурсам сети интернет на основе списков достаточно популярный способ фильтрации, несмотря на его недостатки. Действительно, в большинстве случаев требуется заблокировать достаточно небольшой список ресурсов, скажем, соцсети, с чем данный метод вполне успешно справляется. В данной статье мы поговорим о том, как настроить фильтрацию по спискам на роутерах Mikrotik, тем более что RouterOS предоставляет нам для этого достаточно широкие возможности.

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор - официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Из этого следует, что мы не можем блокировать отдельные страницы, но можем заблокировать домен целиком. Для большинства сценариев этого вполне достаточно. Но здесь нас подстерегает другая неприятность, многие сайты используют CDN (Content Delivery Network, сеть доставки контента), такие как CloudFlare и заблокировав нужный вам сайт вы можете также ограничить доступ к большому количеству сторонних ресурсов. Что из этого может выйти все мы видели во время ковровых блокировок РКН против Телеграм.

Также следует понимать, что блокировка посредством черных списков применима лишь к небольшому числу ресурсов, например, популярные соцсети, попытка таким образом фильтровать весь нежелательный трафик выливается в необходимость постоянной актуализации списков и может привести к высокой нагрузке на оборудование. Для таких целей лучше использовать специализированные сервисы.

Создаем списки

Для настройки фильтрации нам понадобятся минимум два списка: список доменов и список пользователей. С доменами понятно, это те сайты, к которым мы хотим запретить доступ или, наоборот, разрешить. Создаются такие списки просто: IP - Firewall - Address Lists где добавляем новый адрес, в поле Name вписываем имя листа, если это первая запись, либо выбираем его из выпадающего списка. В поле Address указываем IP-адрес или доменное имя ресурса, при указании доменного имени в список будут внесены все IP-адреса сайта, и они будут обновляться с периодичностью указанной в TTL домена.

В командной строке это же действие можно выполнить так:

Таких списков мы можем создать сколько нам нужно, причем один и тот же адрес может входить сразу в несколько списков. Это удобно, если нужно обеспечить для разных групп пользователей доступ к разному набору сайтов. В итоге у вас должно получиться примерно следующее:

mikrotik-black-white-list-002.jpg

В данном примере реализовано два списка: WL - белый список и BL - черный список. Обычно в реальной жизни используется что-то одно, в нашем случае создание данных списков обусловлено сугубо учебными целями.

С доменами разобрались, остались пользователи. Существуют две политики применения правил: разрешено всем, кроме группы пользователей и запрещено всем, кроме группы пользователей. В любом случае у нас имеется группа пользователей, которая либо подвергается ограничениям, либо выводится из-под их действия. В грамотно спроектированной системе такая группа должна являться меньшинством, что обеспечит минимальную нагрузку на сетевое оборудование.

Также вспомним, что в руках у нас роутер, т.е. устройство, работающее на сетевом уровне (L3), а значит основные параметры, с которыми он может работать - это адрес источника и адрес назначения. Адрес назначения - это домен, выше мы его уже разобрали. Адрес источника - это как раз пользователь, точнее - сетевое устройство пользователя. В самом простом случае мы можем создать еще один список и добавить туда IP-адреса нужных устройств.

Но на практике адреса раздаются сервером DHCP, это не проблема, создаем резервирование IP-адреса, для чего следует перейти в IP - DHCP-Server - Leases и открыв запись нужного адреса нажать Make Static.

mikrotik-black-white-list-003-1.jpg

После чего закрываем и снова открываем запись и в поле Address List вводим, если это первая запись, или выбираем имя списка, куда будет добавлен IP-адрес данного компьютера, в нашем случае это список USER.

mikrotik-black-white-list-004-1.jpg

Либо через командную строку:

Таким образом мы получаем список пользователей, либо несколько списков, в которых указанные адреса будут находиться до тех пор, пока на сервере активно резервирование.

Черный список

Начнем с самого простого сценария - черного списка. Сначала настроим вариант, когда такой список применяется ко всем пользователям, кроме членов списка USER. Для этого перейдем в IP - Firewall - Filter Rules и создадим новое правило. На закладке General укажем Chain - forward и In. Interface - bridge1:

mikrotik-black-white-list-005.jpg

На закладке Advanced указываем Src. Address List - USER и ставим перед ним восклицательный знак (символ инверсии правила), что будет означать кроме входящих в группу. В поле Dst. Address List указываем BL - т.е. наш черный список доменов.

mikrotik-black-white-list-006.jpg

И наконец на закладке Action указываем действие, обычно везде в интернете указывают drop, хорошо, укажем и мы.

mikrotik-black-white-list-007.jpg

Данное правило должно располагаться самым первым в цепочке FORWARD, выше FastTrack.

Теперь попробуем посетить запрещенный сайт:

mikrotik-black-white-list-010.jpg

Быстро добавить правило через командную строку можно так:

Теперь немного изменим задачу, применим черный список только к группе USER. Для этого немного изменим условия на закладке Advanced, а именно укажем Src. Address List - USER без восклицательного знака, в итоге условие будет читаться как: если источник в группе USER и назначение в группе BL.

mikrotik-black-white-list-011.jpg

Или в командной строке:

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

Белые списки

На первый взгляд организация доступа в сеть по белым спискам ничем принципиально не отличается от черных, однако это не так, выше мы уже говорили почему и далее покажем это на примерах. А пока реализуем схему с доступом по белым спискам для всех, кроме группы USER.

Снова перейдем в IP - Firewall - Filter Rules и создадим новое правило. На закладке General также укажем Chain - forward и In. Interface - bridge1 , на Advanced указываем Src. Address List - !USER и Dst. Address List - !WL:

mikrotik-black-white-list-012.jpg

И на закладке Action указываем действие reject. Таким образом данное правило будет блокировать все соединения, если адрес отправителя не входит в группу USER и адрес назначения не входит в белый список WL.

Аналогичное действие через консоль:

Данное правило также следует располагать первым в цепочке FORWARD.

Теперь попробуем открыть наш сайт. А вот тут первый неприятный сюрприз:

mikrotik-black-white-list-014.jpg

Что это значит? Браузер не может проверить подлинность сертификата, а так как наш сайт использует HSTS, то доступ к нему будет невозможен, потому как подобные действия могут указывать на атаку с понижением степени защиты, чему HSTS должен препятствовать.

Для того, чтобы браузер смог проверить сертификат нам нужно разрешить доступ к сведениям центра сертификации, адреса нужных узлов можно найти в самом сертификате сайта:

Чтобы применить белый список только к участникам группы немного изменим правило: в Adwanced указываем Src. Address List - USER, т.е. без восклицательного знака. Теперь логика правила изменится и будут блокироваться все соединения для группы USER, кроме тех, которые разрешены белым списком.

mikrotik-black-white-list-016.jpg

Либо в командной строке:

Как видим, технически организовать доступ по белым спискам не так уж сложно, гораздо сложнее обеспечить полноценную работу разрешенных сайтов, что требует достаточно долгой и кропотливой работы по выявлению и добавлению в список связанных ресурсов.

Layer 7 protocol

Layer 7 protocol - это методика поиска определенных вхождений в ICMP/TCP/UDP потоках при помощи регулярных выражений. На первый взгляд достаточно интересная возможность, существенно расширяющая степень контроля над проходящим трафиком, но есть один существенный недостаток. Как уже понятно из названия, данный вид фильтрации работает на прикладном (L7) уровне, т.е. полностью обрабатывается CPU и даже при небольшом количестве правил способен создать сильную нагрузку на оборудование, особенно старые (не ARM) модели.

Использовать L7 для блокировки сайтов не рекомендуют сами разработчики Mikrotik, справедливо замечая, что в большинстве случаев это не будет работать так, как задумано, но при этом вы будете впустую растрачивать вычислительные ресурсы роутера. На наш взгляд использовать L7 для задач, связанных с доступом к сайтам вообще бессмысленно. Современный трафик в подавляющем большинстве шифрованный и различного рода конструкции для анализа URL просто не будут работать, а управлять доступом на основе доменного имени вполне можно и на L3 (чем мы занимались выше).

По этой же самой причине не будут работать многие размещенные в интернете инструкции, где трафик фильтровался по содержимому, типам файлов или потоков, использовал параметры запросов и т.д. и т.п. Хотя мы до сих пор встречаем статьи, в которых по L7 пытаются блокировать соцсети или Youtube, мотивируя это большим числом адресов, использованием CDN, поддоменов и т.д. и т.п. Однако все это не выдерживает никакой критики, соцсети и видеохостинги прекрасно блокируются по доменному имени.

Мы не рекомендуем использовать L7 во всех тех случаях, когда задачу можно решить иным образом, применяя его только для решения специфичных задач. Например, выявления и блокировки какого-либо вида трафика.

Поставим для примера следующую задачу: заблокировать возможность установления SSH-соединений для клиентов сети. Решение в лоб - заблокировать исходящие соединения на 22 порт не принесет успеха, так как SSH-сервер может работать на произвольном порту. Поэтому нужно при помощи специальных паттернов определить наличие именно SSH-трафика и каким-то образом его блокировать.

Для решения нашей задачи сначала перейдем в IP - Firewall - Layer 7 protocol и создадим новый фильтр: в поле Name напишем произвольное имя, в нашем случае SSH, а в поле Regexp внесем регулярное выражение паттерна:

mikrotik-black-white-list-017.jpg

Также можно выполнить команду в терминале:

Что делать дальше? Самое очевидное решение - использовать данный фильтр в правилах брандмауэра является примером того, как делать не надо. В этом случае через L7 фильтр будет проходить каждый пакет, что вызовет сильную нагрузку на CPU роутера.

Поэтому мы пойдем другим путем и на основании L7 фильтра будем маркировать соединения, которых гораздо меньше, чем пакетов. Перейдем в IP - Firewall - Mangle и создадим новое правило: на закладке General выставляем Chain - prerouting, Protocol - tcp и Сonnection Mark - no mark:

На закладке Advanced указываем использование созданного нами фильтра Layer 7 Protocol - SSH:

mikrotik-black-white-list-019.jpg

В Action указываем действие mark-connection, задаем марку соединения New Connection Mark - SSH-CONN и обязательно ставим флаг Passthrough для прохождения пакета далее по цепочке:

mikrotik-black-white-list-020.jpg

Затем добавим еще одно правило: General - Chain - prerouting, Protocol - tcp и Connection Mark - SSH-CONN:

mikrotik-black-white-list-021.jpg

А в действиях добавим mark packet, New Packet Mark - SSH-PCK и снимем флаг Passthrough:

mikrotik-black-white-list-022.jpg

Все тоже самое быстро делается в командной строке:

Таким образом мы пометили все пакеты, относящиеся к SSH-соединениям, но L7 фильтр мы используем только для соединений, не нагружая роутер проверкой каждого пакета. Теперь запретим транзит таких пакетов, для этого вернемся в IP - Firewall - Filter Rules и создадим правило, на закладке General которого укажем: Chain - forward, Рrotocol - tcp, In Interface - bridge1 и Packet Mark - SSH-PCK:

mikrotik-black-white-list-023.jpg

На закладке Action ставим действие drop. То же самое в консоли:

Ставим это правило также в начало цепочки FORWARD и если вы все сделали правильно, то установить SSH-соединение из вашей сети больше никому не удастся.

mikrotik-black-white-list-024.jpg

Следует понимать, что выше был лишь пример того, как можно использовать Layer 7 protocol на Mikrotik, в реальной ситуации следует несколько раз подумать и прибегать к возможностям L7 только тогда, когда все остальные варианты исчерпаны. Также старайтесь как можно более подробно описывать условия, для правил использующих L7 фильтры, чтобы максимально уменьшить нагрузку на процессор роутера.

Фильтрация по MAC-адресам

Среди условий в правилах брандмауэра есть опция MAC-адреса, но в одном правиле можно указать только один адрес, т.е. для каждого MAC вам придется создать свою копию правила, что увеличит нагрузку на устройство и сделает набор правил трудночитаемым.

В тоже время MAC-адрес нам нужен для одной единственной цели - идентифицировать пользователя, что мы также можем сделать и по IP-адресу, для этого нам нужно будет преобразовать MAC в IP, который уже можно добавить в один из списков и использовать представленные нами выше правила. В этом нам снова поможет таблица Mangle.

Откроем IP - Firewall - Mangle и добавим правило, на закладке General укажем Chain - prerouting, In Interface - bridge1, на Advanced в поле Src. MAC Address укажем MAC-адрес нужного устройства.

mikrotik-black-white-list-025.jpg

И на закладке Action добавим действие add src to address list, где в поле Address List укажем требуемый список пользователей, в нашем случае USER, а в поле Timeout укажите требуемое время жизни записи, это нужно для того, чтобы запись обновилась при смене обладателем MAC IP-адреса. На скриншоте мы, в тестовых целях, использовали 5 секунд, в реальной жизни руководствуйтесь здравым смыслом и выбирайте более высокие значения.

mikrotik-black-white-list-026.jpg

Это же правило в командной строке:

Теперь первый пришедший с данного устройства пакет добавит его IP-адрес в указанный нами список, тем самым связав его с текущим MAC на время указанное в Timeout. Для каждого следующего устройства необходимо создать подобное правило, также не забывайте снабжать каждое из них комментарием, чтобы впоследствии вам и вашим коллегам было понятно о каком именно устройстве идет речь.

Заключение

Как видим возможности RouterOS позволяют решать достаточно сложные задачи используя даже недорогие роутеры. Но следует понимать ограничения всех вышеперечисленных методов, осознавая их достоинства и недостатки. А также соотносить свои требования с возможностями оборудования. Если понимать и принимать во внимание эти факторы, то фильтрация по спискам на Mikrotik будет эффективным инструментом в руках администратора. В противном случае вы получите только разочарование и иные негативные последствия. Поэтому пожелаем вам благоразумия и напомним: хороший администратор выбирает для каждой задачи наиболее подходящий инструмент, что является признаком профессионализма. А фанатизм еще никого до добра не доводил.

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор - официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

This manual introduces you with commands which are used to perform the following functions:

  • system backup;
  • system restore from a backup;
  • configuration export;
  • configuration import;
  • system configuration reset.

Description

The configuration backup can be used for backing up MikroTik RouterOS configuration to a binary file, which can be stored on the router or downloaded from it using FTP for future use. The configuration restore can be used for restoring the router's configuration, exactly as it was at the backup creation moment, from a backup file. The restoration procedure assumes the configuration is restored on the same router, where the backup file was originally created, so it will create partially broken configuration if the hardware has been changed.

The configuration export can be used for dumping out complete or partial MikroTik RouterOS configuration to the console screen or to a text (script) file, which can be downloaded from the router using FTP protocol. The configuration dumped is actually a batch of commands that add (without removing the existing configuration) the selected configuration to a router. The configuration import facility executes a batch of console commands from a script file.

System reset command is used to erase all configuration on the router. Before doing that, it might be useful to backup the router's configuration.

System Backup

The system backup feature allows you to effortlessly save and load device's configuration. Read more about the backup feature in the System/Backup section.

Exporting Configuration

Command name: /export

The export command prints a script that can be used to restore configuration. The command can be invoked at any menu level, and it acts for that menu level and all menu levels below it. The output can be saved into a file, available for download using FTP.

Command Description

  • file=[filename] - saves the export to a file

Example

To make an export file:

To see the files stored on the router:

Compact Export

Starting from v5.12 compact export was added. It allows to export only part of configuration that is not default RouterOS config.

Note: Starting from v6rc1 "export compact" is default behavior. To do old style export use export verbose

For example compact OSPF export:

Compact export introduces another feature that indicates which part of config is default on RouterOS and cannot be deleted. As in example below '*' indicates that this OSPF instance is part of default configuration.

List of default config by menus that cannot be removed:

Menu Entries
/interface wireless security-profiles default
/ppp profile "default", "default-encryption"
/ip hotspot profile "default"
/ip hotspot user profile "default"
/ip ipsec proposal "default"
/ip smb shares "pub"
/ip smb users "guest"
/ipv6 nd "all"
/mpls interface "all"
/routing bfd interface "all"
/routing bgp instance "default"
/routing ospf instance "default"
/routing ospf area "backbone"
/routing ospf-v3 instance "default"
/routing ospf-v3 area "backbone"
/snmp community "public"
/tool mac-server mac-winbox "all"
/tool mac-server "all"
/system logging "info", "error", "warning", "critical"
/system logging action "memory", "disk", "echo", "remote"
/queue type "default", "ethernet-default", "wireless-default", "synchronous-default", "hotspot-default", "only-hardware-queue", "multi-queue-ethernet-default", "default-small"

Importing Configuration

Command name: /import

The root level command /import [file_name] executes a script stored in the specified file. It will add the configuration from the specified file to an existing configuration. This file may contain any console commands, including scripts. Can be used to restore configuration or parts of it after configuration loss.

Command Description

  • file=[filename] - loads the exported configuration from a file to router

Automatic Import

In RouterOS it is possible to automatically execute scripts - your script file has to be named anything.auto.rsc - once this file is uploaded using FTP to the router, it will automatically be executed, just like with the '/import' command. This method only works with FTP.

Once the file is uploaded, it is automatically executed. Information about the success of the commands that were executed is written to anything.auto.log

Example

To load the saved export file use the following command:

Configuration Reset

Command name: /system reset-configuration

Description

The command clears all configuration of the router and sets it to the default including the login name and password ('admin' and no password), IP addresses and other configuration is erased, interfaces will become disabled. After the reset command router will reboot. The default is either the factory default, that you can see in the article Default configurations, or it can be a custom default, that can be loaded by including an RSC file when doing Netinstall or if specified with a branding package.

Command Description

  • keep-users: keeps router users, passwords and ssh host keys(since v6.45.1)
  • no-defaults: doesn't load any default cofigurations, just clears everything
  • skip-backup: automatic backup is not created before reset, when yes is specified
  • run-after-reset: specify export file name to run after reset

Note: If run-after-reset is set then no-defaults parameter will be ignored and only the specified script will be loaded!

Warning: Warning: If the device has a folder named "flash", then the confscript.rsc file must be stored in that folder to work with "run-after-reset" command. Everything outside this folder is stored on the RAM drive which contents are deleted on reboot or power cycle.

Warning: If the router has been installed using netinstall and had a script specified as the initial configuration, the reset command executes this script after purging the configuration. To stop it doing so, you will have to reinstall the router.

Example

Import troubleshooting

Configuration parts to watch out for in exported .rsc files

Things that should be removed from export files that were created with: "/export", before attempting import on new device.

  • Interface renaming that is in conflict with default ethernet naming scheme.
  • In older version exports default entries might show with "add" instead of "set" command. That should be edited before import to avoid errors.
  • Check if interface/module: ether/wlan/modem/com/etc count match on new and old device. If there will some missing that will end up in error during .rsc import.

In case of problematic import, attempt the following:

  • Reset the configuration on that device.
  • Run import command again with "verbose=yes" argument. It will stop also stop import process on problem which you already encountered, but will also show place where export failed. That way showing you place where things need to be edited in .rsc import file

Startup delay

If your configuration relies on interfaces that might not yet have started up upon command execution, it is suggested to introduce delays, or to monitor until all needed interfaces are available. This example script allows you to set how many interfaces you are expecting, and how long to wait until they become available:

The above script will wait until there are 10 interfaces visible, or 30 seconds. If there are no 10 interfaces in this time, it will put a message in the log. Modify the variables according to your needs.

Практика настройки Mikrotik для чайников

Подключаем ПК к пятому порту Mikrotik(вообще можно использовать любой, кроме первого), переворачиваем устройство и видим на наклейке со штрих-кодом диапазон mac адресов, последний относится к пятому порту, вводим его в окно подключения winbox, либо используем как аргумент mactelnet. Пользователь admin, пароль отсутсвует.

Появится предложение: сохранить базовую конфигурацию, либо обнулить устройство. Выбираем [Remove Configuration] . Устройство перезагрузится.

Добавление пользователя

Первым делом создаем нового пользователя и удаляем admin'а, да об этом все забывают.

Переходим: [System]➙[Users]➙[+] .
Name: логин ;
Group: full(полный доступ);
Password: пароль ;
Confirm Password: пароль еще раз .
Подтверждаем нажатием на [Ok] .
В таблице с пользователями выделяем admin и нажимаем [] .

Отключаемся и заходим на устройство под новым пользователем.

Настройка провайдера

Провайдер будет подключаться в первый порт RouterBOARD, остальные четыре и беспроводной интерфейс отданы под домашнюю подсеть 192.168.10.0/24, адрес роутера в домашней подсети: 192.168.10.1, клиентам сети будут раздаваться адреса из диапазона 192.168.10.100-192.168.10.200.

Способы соединения с провайдером бывают различные, и если на физическом уровне у нас Ethernet (даже если он идет от xDLS-модема), то в качестве сетевых протоколов может быть IPoE (Static или DHCP), PPPoE, L2TP, PPTP или их комбинации (вообще PPTP, L2TP без настроенного IP работать не смогут), в добавок ко всему может быть привязка по mac адресу. Постараюсь рассмотреть наиболее частые случаи.

Но для начала переименовываем интерфейс ether1 в eth1-wan, для удобства: [Interfaces]➙[Ether1]➙[Name: eth1-wan]➙[OK] .

Подключаем кабель провайдера в первый порт устройства.

Подмена mac-адреса

Не скажу, что все провайдеры используют привязку по mac, но встречаются такие довольно часто, особенно если используется IPoE для привязки IP и защиты от халявщиков.

Подмену можно совершить только через командный режим, так что нажимаем [New Terminal] и вводим:

где 00:11:22:33:44:55 — mac зарезервированный у провайдера.

Автоматическое получение настроек средствами DHCP.

Наиболее простой вараиант: [IP]➙[DHCP Client]➙[+]➙[Interface: eth1-wan]➙[OK] .

Статическая настройка IP

Тоже простой вариант, но потребуется уточнить у провайдера следующие параметры (значение указаны в качестве примера):
IP (ip адрес): 192.0.2.10;
mask (маска): 255.255.255.0(или /24);
gateway (шлюз): 192.0.2.1;
DNS1: 192.0.2.2;
DNS2: 192.0.2.3.
Добавляем IP на интерфейс: [IP]➙[Addresses]➙[+]➙[Address: 192.0.2.10/255.255.255.0; Interface: eth1-wan]➙[OK] ;
Добавляем default route: [IP]➙[Routes]➙[+]➙[Dst.Address:0.0.0.0/0; Gateway:192.0.2.1; Check gateway: ping; Distance: 1]➙[OK] ;
Добавляем DNS: [IP]➙[DNS]➙[Servers: 192.0.2.2; 192.0.2.3]➙[OK] .

Настройка PPPoE

PPPoE — туннельный протокол для которого не требуется предварительная настройка IP. Конечно, у провайдера может быть пиринг с другими сетями или доступ в свою сеть без ограничения по скорости, которые работают вне PPPoE интерфейса и требуют добавления отдельного маршрута (DualAccess или Russian PPPoE в SOHO роутерах), но подобная конфигурация выходит за рамки HOWTO для начинающих.

Для конфигурации PPPoE потребуется узнать логин и пароль для подключения к сети (обычно выдаются при заключении договора).

Добавляем туннельный интерфейс: [PPP]➙[+]➙[PPPoE Client] .

На вкладке [Genaral] указываем имя интерфейса Name=tap1-wan и интерфейс провайдера Interface=eth1-wan .

На вкладке [Dial Out] указываем логин и пароль для подключения, остальные опции по скриншотам.

Важно: Если вы используете PPPoE, то в дальнейшем используйте вместо eth1-wan интерфейс tap1-wan.

Настройка L2TP/PPTP

Вот мы и подошли к самому богатому на подводные камни способу подключения. Оба протокола настраиваются схожим образом, но требуют предварительной настройки IP (средствами DHCP, либо статически). Проблема mikrotik в том, что задав адрес сервера доменным именем, он распознает его в адрес один раз и будет использовать только данный адрес, если адрес поменяется (либо провайдер использует RoundRobin DNS и сервер будет перегружен), то велика вероятность остаться без интернета. Со стороны провайдера тоже могут быть забавные вещи, например DNS сервера доступные только из локальной сети, либо необходимость заранее прописать статический маршрут до сервера PPTP/L2TP, если вам посчастливилось стать клиентом желто-полосатого провайдера, можете смело скачивать и изучать соответствующую инструкцию. Вариант с DualAccess L2TP/PPTP тоже возможен.

Но будем считать, что у вас все хорошо, IP адрес получили средствами DHCP, узнать у провайдера: логин, пароль и сервер vpn, можно приступать к настройке.

Добавляем интерфейс PPTP/L2TP: [PPP]➙[+]➙[PPTP Client или L2TP Client] .
На вкладке [General] указываем имя подключения: Name=tun1-wan .
На вкладке [Dial out] указываем сервер PPTP или L2TP, логин и пароль.


Для l2tp заменить pptp-client на l2tp-client:

Важно: Если вы используете L2TP/PPTP, то в дальнейшем используйте вместо eth1-wan интерфейс tun1-wan.

А как-же Yota?

А просто. Если вам попался USB модем, то скорее всего он будет определяться как ethernet интерфейс в [Interfaces]➙[LTE] и достаточно забирать с него IP средствами DHCP. Но для первичной активации модем придется подключить к ПК. Не знаю со всеми моделями модемов так или мне попался неудачный, но без предварительной активации на ПК работать он отказывался.

Другие 3G/4G модемы

Если модем не определяется как сетевая карта, но Mikrotik его видит в [System]➙[Resources]➙[USB] , то потребуется создать PPP подключение для интерфейса usb1, в некоторых ситуациях устройство необходимо прежде перевести в режим модема AT командой(ищите на соответствующих форумах). В любом случае вариантов великое множество, один из них описан здесь.

Подготовка интерфейсов для локальной сети

На данный момент интерфейсы ether2-ether5 и wlan1 работают независимо друг от друга, их необходимо объединить в единую среду передачи данных.

Ethernet интерфейсы можно объединить на аппаратном уровне, что повысит скорость передачи данных и снизит нагрузку на CPU (по сравнению с программным мостом). В качестве master port будет использоваться ether5, можно назначить любой, но если появится еще один провайдер, то логично будет подключить его во второй порт (и отключить на нем master port).

Переименовываем ether5 в eth5-lan: [Interfaces]➙[ether5]➙[Name: eth5-lan]➙[OK] ;
Переименовываем ether2-ether4 и устанавливаем для них master port: [Interfaces]➙[ether2-4]➙[Name: eth2-4-lan; Master Port=eth5-lan]➙[OK] .

Интересный момент. Средствами master port можно объединить интерфейсы принадлежащее одному чипсету, на старших моделях чипсетов может быть несколько (колонка switch), интерфейсы с разных чипсетов объединяются через программный Bridge, ну или пачкордом.

Теперь все локальные Ethernet интерфейсы объединены под именем eth5-lan.

Wireless интерфейс существует отдельно от Ethernet, для объединения потребуется прибегнуть к программному мосту (bridge).

Создаем интерфейс моста: [Bridge]➙[+]➙[Name: br1-lan]➙[OK] ;
Добавляем интерфейсы: [Bridge]➙[Ports]➙[+]➙[Interface: eth5-lan; Bridge: br1-lan]➙[OK]
[Bridge]➙[Ports]➙[+]➙[Interface: wlan1; Bridge: br1-lan]➙[OK]

Теперь все локальные Ethernet и wlan интерфейсы объединены под именем br1-lan.

Безопасность беспроводной сети

Вещь муторная(точнее муторно ее описывать), но необходимая.

Добавляем профиль безопасности и указываем пароль для беспроводного подключения: [Wireless]➙[Security Profiles]➙[+]
Name — название профиля;
WPA/WPA2 Pre-Shared Key — ключи для WPA/WPA2(пароль от wi-fi);
Остальное по скриншоту, в завершении [OK] .

Активируем и настраиваем беспроводной интерфейс: [Wireless]➙[wlan1]➙[Enable] .
На вкладке [Wireless] :
Mode: ap bridge;
Band: 2gHz-B/G/N. Если ваши беспроводные девайсы выпущены несколько лет назад, то логичнее выбрать 2gHz-B/G. ;
Frequency: auto. В SOHO устройствах этот параметр называется Канал соответствие можно посмотреть по ссылке. Если не уверены что выбрать, оставляйте auto. ;
SSID: Название точки доступа;
Wireless Protocol: 802.11;
Securiity Profile: wpa2-protect. Профиль созданный на предыдущем шаге.;
Bridge Mode: enabled;
Default Authenticate: yes;
Default Forward: yes;
Hide SSID: no. Можно скрыть точку доступа. Но не стоит считать это панацеей. ;
Далее вкладка [Nstreme] .
Отключаем все.

Как закончили, нажимаем [Ok] и пробуем подключиться (ip телефон не получит, но подключение должно установиться).

Настройка ip, dhcp-server

Добавляем ip на интерфейса br1-lan: [IP]➙[Addresses]➙[+]➙[Address: 192.168.10.1/24; Interface: br1-lan]➙[OK]

Создаем пул адресов для dhcp: [IP]➙[Pool]➙[+]➙[Name: dhcp-pc; Addresses:192.168.10.100-192.168.10.200]➙[OK]

Включаем прослушку dhcp-запросов на интерфейсе br1-lan: [IP]➙[DHCP Server]➙[+]➙[Name: dhcp-pc; Interface: br1-lan; Lease Time: 08:00:00; Address Pool: dhcp-pc]➙[OK]

Теперь надо определиться какие параметры будут отдаваться по dhcp: [IP]➙[DHCP Server]➙[Networks]➙[+]
Address: 192.168.10.0/24;
Gateway: 192.168.10.1;
Netmask: 24;
DNS Servers: 192.168.10.1.
По окончанию [Ok] .

На скриншоте в качестве NTP сервера указан адрес роутера, но в базовой поставке раздавать точное время Mikrotik не умеет, можно указать любой другой сервер из сети, либо добавить и настроить пакет ntp(описано в конце HOWTO).

Настройка сервера доменных имен

Если вас не устраивают DNS от провайдера можно добавить в список свои (можно полностью убрать провайдерские DNS выключив опцию Use peer DNS в соответствующих подключениях).

Включаем прослушку DNS запросов: [IP]➙[DNS]➙[Allow Remote Requests: yes]➙[OK]

Между устройствами в локальной сети появилось связь, при попытке сделать ping до любого ресурса распознается его адрес, но доступ в интернет все еще отсутствует. Пришло время для последнего крупного пункта: настройки пакетного фильтра.

Пакетный фильтр

RouterOS является разновидностью ОС GNU/Linux, в качестве пакетного фильтра применяется netfilter, не могу сказать работает интерфейс напрямую с модулем ядра или с с использованием iptables, но разработчики постарались сделать синтаксис максимально приближенный к последнему.

Дабы не описывать каждую команду отдельно давайте немного разберемся. Пакетный фильтр настраивается в [IP]➙[Firewall] , нас будут интересовать вкладки (таблицы в терминологии iptables) [Filter] , [Nat] и [Mangle] . В каждую таблицу можно добавить ряд правил (как и везде кнопкой [+] ), правила обрабатываются поочередно сверху вниз, поэтому порядок важен. Каждое правило состоит из Условий, разнесенных по трем вкладкам: General, Advanced, Extra и Действия, вкладка Action , есть еще статистика работы правила, но она нам не интересна. Правило может содержать множество условий, главное не делать их противоречивыми. Если проходя по правилам пакет подходит под все условия, он обрабатывается соответствующим действием и дальше не идет ( на самом деле некоторые действия пропускают пакет дальше, просто запомните этот факт если планируете в будущем глубже разобраться с netfilter ). В варианте для новичков нам будет достаточно условий из Вкладки General .

Какие будут настройки? У пользователей из локальной сети появится доступ в интернет. Доступ на mikrotik из локальной сети будет ограничен используемыми службами(web, winbox, ssh, dns, ntp), из внешней сети будет открыт доступ по web, но с измененным адресом порта на 9999.

Все необходимые правила описаны в виде таблиц, если боитесь ошибиться или просто лень, открывайте [New terminal] и копируйте в него строки из консольного варианта в конце раздела.

Вкладка [Filter]

Вкладка [NAT]

Вкладка [Mangle]

Теперь интернет должен быть доступен, если вам этого достаточно то закрывайте HOWTO и пользуйтесь, если хотите узнать больше дальше пойдет рад дополнений.

Дополнение 1. Имя устройства


Даем устройству имя: [System]➙[Identity]➙[Name: MikRouter]➙[OK]
И задаем его в dns: [IP]➙[DNS]➙[Static]➙[+]➙[Name: mikrouter; Address:192.168.10.1]➙[OK]
Теперь к устройству можно обращаться по доменному имени mikrouter , но только из локальной подсети.

Дополнение 2. Настройка времени

Настраиваем часы: [System]➙[Clock]➙[Time]➙[Time Zone Name: Часовой пояс ; Time: Текущее время ; Date: Текущая дата ]➙[OK]

Дополнение 3. Обновление

Обновляем устройство и добавляем пакеты.

Заходим на сайт Mikrotik и загружаем архив с обновлениями (Extra Packages) для своего роутера. Распаковываем и оставляем следующие (6.30.2 — актуальная версия на момент написания, обновления выходят достаточно часто):

В Winbox открываем [Files] и перетаскиваем средствами drag'n'drop указанные выбранные пакеты(в качестве альтернативы можно загрузить через web-интерфейс, либо по ssh средствами scp).

Для обновления достаточно перезагрузить устройство: [System]➙[Reboot]➙[Yes]


В дальнейшем для обновления не обязательно загружать пакеты: [System]➙[Packages]➙[Check for updates]➙[Channel: current]➙[Download&Install]

Дополнение 4. Настройка ntp

В предыдущих дополнениях мы настроили часы и добавили пакет NTP, теперь его необходимо настроить.

Включаем ntp-client и задаем адреса серверов (можно задать свои любимые) точного времени: [System]➙[NTP Client]➙[Enabled: yes; Primary: 48.8.40.31; Secondary:91.206.16.4]➙[OK]
Включаем прослушку ntp запросов: [System]➙[NTP Server]➙[Enabled: yes]➙[OK]

Дополнение 5. Отключаем лишние службы

Дополнение 6. Отключаем обнаружение и ограничиваем доступ по mactelnet

В winbox есть средства обнаружения устройств находящихся в одной физической сети с ПК, это удобно, но зачем соседям знать что у нас за устройство?

Отключаем: [IP]➙[Neighbor]➙[Discovery Interfaces] . Можно оставить обнаружение для br1-lan (локальная сеть), можно убрать на ваш выбор. Для новых интерфейсов обнаружение включено по умолчанию, не стоит от этом забывать.

Теперь ограничим доступ по mac-адресу(winbox и mactelnet): [Tools]➙[MAC Server]➙[Telnet Interfaces]
Отключаем( [x] ) all и добавляем br1-lan .
Переходим в [Winbox Interfaces] и повторяем.

Дополнение 7. Включаем UPnP

Многие p2p приложения и online игры требуют UPnP (служба динамического открытия портов) для нормальной работы.

Включаем: [IP]➙[UPnP]➙[Enabled: yes]
Добавляем интерфейсы: [Interfaces]➙[+]
External: eth1-wan;
Internal: br1-lan.

Дополнение 8. Оверклокинг

Если число устройств в сети возросло настолько, что роутер перестал справляться, можно немного разогнать процессор: [System]➙[RouterBOARD]➙[Settings]➙[CPU Frequency: 750 MHz]

Для RB 951G — это максимальная частота работы CPU.

Дополнение 9. Резервная копия настроек


Бекап настроек никогда не будет лишним: [Files]➙[Backup]
Name: имя файла (без расширения);
Password: пароль (если не указывать будет использован пароль от пользователя);
Don't Encrypt: если нет необходимости шифровать бекап.

Для восстановления достаточно скопировать файл на другое устройство(желательно той-же серии и с той-же версией RouterOS).
Зайти в [Files]➙[Restore] и выбрать файл.

Базовая настройка защиты роутера MikroTik: настройка устройства, настройка сетевого экрана, защита от сканирования портов, защита от подбора пароля.

🔔 В статье даны примеры команд в терминале MikroTik. Если при вставке команды в терминал, происходит автоматическая вставка команд (при выполнении вы получаете ошибку bad command name или expected end of command), нажмите сочетание Ctrl+V, чтобы отключить эту возможность.

Содержание

Пользователи

Не используйте простые имена пользователя, пароль должен соответствовать требованиям безопасности.

Если доступ к устройству имеют несколько пользователей, вы можете более подробно задать права выбранному пользователю. Создайте новую группу и определите права пользователей этой группы.

Сервисы

Отключить неиспользуемые сервисы

Отключаем сервисы MikroTik, которые не планируем использовать.

Изменить порт Winbox

MikroTik отключение неиспользуемых сервисов и изменение порта Winbox

Обновление

Если обновление версии будет найдено, выполните обновление устройства.

🔗 Скрипт Проверка обновления RouterOS, пришлет уведомление о выходе новой версии прошивки.

Интерфейсы

Объединим внутренние (доверенные) и внешние (недоверенные) интерфейсы в списки, для удобства дальнейшего управления.

Помещаем в этот список интерфейсы локальной сети, VPN подключения и т.д.

Помещаем в этот список внешние интерфейсы (интернет и т.д.).

Настройка списков интерфейсов MIkroTik

Соседи

Настроим обнаружение устройства используя Neighbor Discovery только для внутренних интерфейсов или разрешенных интерфейсов.

Разрешаем обнаружение только с интерфейсов перечисленных в списке InternalInterfaces.

Настройка MikroTik Neighbor Discovery

Межсетевой экран

Настраиваем ограничения доступа к роутеру и устройствам сети с помощью межсетевого экрана MikroTik.

Разрешить установленные и связанные соединения

Помещаем правило первым в списке Filter Rules (поместите правило ориентируясь на его номер в комментарии).

Отбросить недействительные пакеты

Помещаем правило после правила Trusted, в списке Filter Rules (поместите правило ориентируясь на его номер в комментарии).

Разрешить ICMP

Поместите правило ориентируясь на его номер в комментарии.

Черный список

Создать список

Создаем список BlackList, в который будем помещать IP адреса, которым по какой-то причине запрещен доступ к MikroTik или защищаемым устройствам.

Создать правило

Для экономии ресурсов центрального процессора, запрещающее правило разместим в таблице Prerouting.

⚠️ Правила размещенные в Prerouting выполняются до разделения трафика на цепочки Input и Forward!

Поместите правило по его номеру в комментарии.

MikroTik Firewall RAW таблица

На скриншоте видно дополнительные правила:

Блокировка сканеров портов

Применять правило будем только для новых соединений.

TCP порты ловушки

Создать правило

Помещаем IP адрес недоверенного устройства в BlackList, на 10 часов:

Разместите правило, ориентируясь на его номер в комментарии.

Правило MikroTik Firewall - Блокировать сканеры портов

Разрешим порт Winbox

Поместите правило ориентируясь на его номер в комментарии.

Сбрасываем неразрешенные соединения

Таблица фильтров MikroTik Firewall

Поместите правило на последнюю позицию в правилах Firewall Filter Rules.

Блокируем Bruteforce

Помещаем IP адрес устройства в BlackList, на 70 минут.

Правило брандмауэра - блокировка Bruteforce

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

Большое спасибо Евгений! Поправил.

И кстати, её IP я не вижу. Даже в настройках роутера

Едрён-батон, хоть бы слово понял. Это что? Куда прописывать? Ребята, вы ж для чайников пишете. Третья сотня водки зазря ушла. Эхххх. Не быть мне под защитой.

Что именно непонятно? Попробую помочь.
В квадратных скобках указана последовательность нажатия кнопок в окне Winbox.

Например в первом пункте Пользователи:
Нажмите на кнопку [System], потом на кнопку [Users], в открывшемся окне нажмите на вкладку [Groups], потом на кнопку [+] и введите параметры нового пользователя.

вот КМК полезные правила в RAW

Сомнительной полезности правило в случае, если в локалку проброшены какие-то порты

Правило конечно крутое

, но как быть с DNS ?

Читайте также: