Как настроить NAT на MikroTik для удалённого доступа

Настройка NAT на оборудовании MikroTik позволяет организовать безопасный доступ к внутренним ресурсам локальной сети, таким как серверы, IP-камеры или рабочие станции, через внешнее интернет-соединение. Основным механизмом здесь выступает Destination NAT (DST-NAT), который перенаправляет входящие пакеты с внешнего интерфейса роутера на конкретный локальный IP-адрес. Для успешной реализации задачи требуется наличие публичного IP-адреса, который может быть как статическим, так и динамическим. Правильная конфигурация правил трансляции адресов исключает несанкционированный доступ к сетевой инфраструктуре и обеспечивает стабильную работу удалённых сервисов без необходимости использования VPN в простых сценариях.

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

Типы внешних IP-адресов и их влияние на доступность

Прежде чем приступать к созданию правил в RouterOS, необходимо убедиться, что роутер получает от провайдера публичный («белый») IP-адрес. Если адрес находится в диапазонах 10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16, это означает использование серого IP, при котором прямой доступ из интернета невозможен без дополнительных туннелей. Также стоит обратить внимание на диапазон 100.64.0.0/10 (Carrier-Grade NAT), который часто ошибочно принимают за публичный. Проверить текущий адрес можно в меню IP -> Addresses или в статусе интерфейса, через который осуществляется выход в интернет.

Если провайдер предоставляет динамический белый IP, для постоянного доступа рекомендуется использовать сервис MikroTik Cloud (IP -> Cloud). Он присваивает роутеру уникальное DNS-имя, которое автоматически обновляется при смене адреса, что избавляет от необходимости ручного мониторинга изменений.

Взаимодействие NAT и Firewall Filter

В архитектуре RouterOS пакеты проходят через цепочки NAT раньше, чем попадают в фильтры Firewall (в контексте цепочки Forward). Это означает, что если в правилах NAT адрес назначения уже изменен с внешнего на локальный, то в правилах Firewall Filter необходимо разрешать доступ именно к локальному IP-адресу сервера. Если в роутере настроена строгая политика безопасности (запрет всего, что не разрешено явно), проброс порта не заработает без соответствующего разрешающего правила в таблице Filter.

Создание правила Destination NAT в RouterOS

Определение параметров во вкладке General

Для создания правила необходимо перейти в раздел IP -> Firewall на вкладку NAT. Основные настройки выполняются в цепочке dstnat. Существует два подхода к идентификации входящего трафика:

  • Использование Dst. Address: в это поле вписывается текущий внешний IP-адрес роутера. Это наиболее точный метод, но он требует обновления правила при смене динамического адреса.
  • Использование In. Interface: указывается интерфейс, в который включен кабель провайдера (например, ether1). Этот метод универсален для динамических адресов, но может вызвать проблемы при наличии нескольких провайдеров или использовании Hairpin NAT.

Далее выбирается протокол (обычно 6 (tcp) или 17 (udp)) и Dst. Port — порт, на который будут приходить запросы из интернета. Этот порт не обязательно должен совпадать с портом, на котором работает служба внутри сети.

Настройка перенаправления во вкладке Action

После идентификации пакета нужно указать роутеру, что с ним делать. На вкладке Action выбирается действие dst-nat. В поле To Addresses вписывается локальный IP-адрес целевого устройства (например, 192.168.88.10). В поле To Ports указывается порт, который слушает приложение на этом устройстве.

  1. Chain: dstnat
  2. Protocol: 6 (tcp)
  3. Dst. Port: 8080 (внешний порт)
  4. Action: dst-nat
  5. To Addresses: 192.168.88.10
  6. To Ports: 80 (внутренний порт)

Такая конфигурация позволяет обращаться к веб-серверу по внешнему адресу роутера с указанием порта 8080, при этом сам сервер будет получать запросы на стандартный 80-й порт.

Реализация Hairpin NAT для локального доступа

Проблема доступа по внешнему адресу изнутри сети

Когда пользователь, находясь внутри локальной сети, пытается обратиться к серверу по внешнему IP-адресу роутера, запрос часто обрывается. Это происходит из-за того, что сервер пытается ответить клиенту напрямую (так как они в одной подсети), минуя роутер. Клиент получает ответ от локального IP сервера, хотя ожидал его от внешнего IP роутера, и отбрасывает пакет как некорректный. Эта ситуация решается настройкой механизма Hairpin NAT (или NAT Loopback).

Настройка правила маскировки для локального трафика

Для корректной работы необходимо создать правило в цепочке srcnat. Оно должно идентифицировать пакеты, которые исходят из локальной сети и направляются обратно в локальную сеть к конкретному серверу. В правиле указывается Src. Address (локальная подсеть, например, 192.168.88.0/24) и Dst. Address (IP-адрес сервера). В качестве действия выбирается masquerade.

При использовании Hairpin NAT важно, чтобы в правиле DST-NAT в качестве идентификатора входящего трафика использовался Dst. Address (внешний IP), а не In. Interface, иначе правило не сработает для пакетов, приходящих с внутренних интерфейсов.

Обеспечение безопасности открытых сервисов

Ограничение доступа по спискам адресов (Address Lists)

Открытие портов во внешний мир всегда сопряжено с риском брутфорс-атак и поиска уязвимостей. Если удалённый доступ требуется только с определённых доверенных адресов (например, из офиса или с домашнего компьютера с фиксированным IP), это следует ограничить в настройках NAT. На вкладке General в поле Src. Address можно указать конкретный IP или выбрать предварительно созданный список во вкладке Advanced (Src. Address List).

  • Создайте список разрешенных IP в IP -> Firewall -> Address Lists.
  • Примените этот список в правиле NAT.
  • Все запросы с других адресов будут игнорироваться роутером на уровне обработки NAT.

Смена стандартных портов и защита от сканирования

Использование нестандартных внешних портов (например, 54321 вместо 3389 для RDP) значительно снижает количество автоматизированных атак, фиксируемых в логах. Хотя это не является полноценной мерой защиты, это избавляет от «шумового» трафика. Дополнительно можно настроить правила в Firewall Filter, которые будут временно блокировать IP-адреса, проявляющие подозрительную активность или пытающиеся сканировать закрытые порты роутера.

Контроль через Connection Tracking

Система отслеживания соединений в MikroTik позволяет видеть все активные трансляции в реальном времени. В разделе IP -> Firewall -> Connections можно отфильтровать записи по локальному IP-адресу сервера и убедиться, что пакеты проходят стадию NAT (флаг ‘D’ — dstnat). Это основной инструмент для понимания того, откуда приходят запросы и как они преобразуются роутером.

Диагностика типичных ошибок конфигурации

Проверка статуса счетчиков трафика

В списке правил NAT слева от каждого правила находятся счетчики пакетов и байт. Если при попытке подключения счетчик не увеличивается, значит, трафик не попадает под критерии правила. Причиной может быть неправильно указанный протокол, ошибка в номере порта или блокировка трафика на стороне провайдера (некоторые операторы блокируют входящие соединения на портах 80, 443 или 25 для частных лиц).

Использование инструмента Torch для анализа интерфейса

Инструмент Tools -> Torch позволяет в реальном времени просматривать трафик на внешнем интерфейсе. Установив фильтр по порту назначения, можно увидеть, доходят ли пакеты от удаленного клиента до роутера вообще. Если в Torch пакеты видны, а счетчик NAT не растет, проблема в условиях правила. Если же в Torch пусто — пакеты фильтруются выше по сети (провайдером или промежуточным оборудованием).

Логирование действий NAT

Для детального разбора процесса можно включить логирование в самом правиле NAT (галочка Log на вкладке Action). В системном логе будет отображаться информация о каждом пакете, попавшем под правило: интерфейс, адрес источника и параметры назначения. Это позволяет выявить ошибки в маршрутизации или определить, что клиент использует неверный протокол при подключении.

При настройке проброса портов для сервисов, использующих несколько соединений (например, классический FTP), обычного DST-NAT может быть недостаточно. В таких случаях требуется активация соответствующих сервис-хелперов в меню IP -> Firewall -> Service Ports, которые помогают роутеру отслеживать связанные соединения и динамически открывать необходимые порты для передачи данных.

Пример настройки через командную строку (CLI)

Для быстрой конфигурации или автоматизации процесса удобно использовать терминал RouterOS. Ниже приведен пример команд для проброса порта RDP на внутренний компьютер с защитой по списку адресов:

  1. /ip firewall address-list add address=203.0.113.5 list=Trusted_Remote_Users
  2. /ip firewall nat add chain=dstnat action=dst-nat to-addresses=192.168.88.20 to-ports=3389 protocol=tcp dst-address=198.51.100.10 dst-port=33389 src-address-list=Trusted_Remote_Users comment=»Secure RDP access»

В данном примере внешний порт 33389 перенаправляется на стандартный 3389, при этом доступ разрешен только для IP, указанного в списке Trusted_Remote_Users. Использование dst-address вместо интерфейса гарантирует корректную работу правила в сложных топологиях с несколькими маршрутами.

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


Добавить комментарий