Оглавление
- Введение
- Принцип работы межсетевого экрана
- Политики по умолчанию
- Сетевые зоны
- Открытие порта на маршрутизаторе
- Перенаправление порта на устройство в LAN
- Пользовательские правила nftables
- Заключение
Введение
Локальная сеть редко остаётся изолированной: её устройствам нужен доступ к интернету, удалённым серверам и ресурсам на других площадках. Такой доступ обеспечивает маршрутизатор (роутер), который связывает локальную сеть с внешней и передаёт данные между ними. Вместе с полезным трафиком из внешней сети могут поступать и нежелательные запросы, в том числе попытки получить доступ к самому маршрутизатору или устройствам за ним. Чтобы ограничить такие обращения, в маршрутизаторе используется межсетевой экран (firewall): он проверяет пакеты по заданным правилам и определяет, какие пропустить, а какие отклонить. Так можно разрешить устройствам локальной сети выход во внешнюю сеть и одновременно закрыть доступ к ним извне.
В статье рассмотрены принцип работы межсетевого экрана на 4G-роутерах TELEOFIS LT7x, его основные параметры и сетевые зоны. На примерах показано, как открыть порт на роутере для его собственной службы, настроить проброс порта на устройство в локальной сети и подключить собственные правила nftables, если стандартных настроек недостаточно. В примерах используются зоны lan и wan; названия сетей и адреса в конкретной конфигурации могут отличаться.
Принцип работы межсетевого экрана
Межсетевой экран сопоставляет каждый пакет с настроенными правилами с учётом направления трафика: адресован ли пакет самому маршрутизатору, создан ли им или проходит через него транзитом. Для каждого направления задаётся действие по умолчанию, а отдельные правила уточняют его для конкретных подключений. Направления подробно описаны в следующем разделе.
Настройки межсетевого экрана доступны в веб-интерфейсе по пути Сеть → Межсетевой экран. На вкладке Общие настройки находятся политики для входящего, исходящего и пересылаемого трафика, а также дополнительные функции защиты. Эти же параметры хранятся в файле /etc/config/firewall, который при необходимости можно изменить через консоль.
Рисунок 1 — Вкладка «Общие настройки» межсетевого экрана.
Политики по умолчанию
Если пакет не подходит ни под одно отдельное правило, межсетевой экран применяет политику для соответствующего направления трафика: для интерфейсов, включённых в зону, — политику этой зоны, для интерфейсов вне зон — политику из раздела Общие настройки. Отдельные правила, добавленные на вкладке Правила для трафика, позволяют сделать исключения — например, разрешить доступ к одной службе при общем запрете входящих подключений.
Описание направлений трафика:
| Поле в веб-интерфейсе | Цепочка | Какой трафик обрабатывает | Пример |
|---|---|---|---|
| Входящий трафик | INPUT | Трафик из сети к самому маршрутизатору. | Подключение к веб-интерфейсу или по SSH. |
| Исходящий трафик | OUTPUT | Трафик, который создаёт маршрутизатор. | Запрос маршрутизатора к серверу времени. |
| Перенаправление | FORWARD | Транзитный трафик через маршрутизатор. | Подключение компьютера из LAN к серверу в интернете. |
В файле /etc/config/firewall эти настройки находятся в разделе config defaults. Для значений, показанных на рисунке 1, параметры выглядят так:
config defaults
option syn_flood '1'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'REJECT'
Параметры input, output и forward соответствуют трём полям с действиями по умолчанию. Строка syn_flood относится к отдельному флажку защиты от атак SYN-flood. Поле Перенаправление в общих настройках задаёт политику для транзитного трафика; перенаправление портов настраивается на отдельной вкладке.
Для каждого направления выбирается одно из трёх действий:
ACCEPT— пропустить пакет.REJECT— отклонить пакет и сообщить отправителю об отказе.DROP— отбросить пакет без ответа отправителю.
REJECT и DROP различаются только наличием ответа: в обоих случаях пакет не достигает назначения. Если какой-либо службе всё же нужен доступ, для неё создаётся отдельное правило — выбор действия по умолчанию его не заменяет.
Сетевые зоны
Зона — это заданная в настройках группа сетевых интерфейсов, для которой межсетевой экран формирует отдельные цепочки правил. В рассматриваемой конфигурации зона lan относится к локальной сети, а зона wan — к внешним подключениям. При поступлении пакета межсетевой экран определяет его зону и применяет относящиеся к ней правила. Поэтому правило с источником wan не обрабатывает пакет, пришедший из lan. Такое разделение сокращает число ненужных проверок и позволяет не повторять одинаковые настройки для каждого интерфейса.
Список зон находится в нижней части вкладки Общие настройки (рисунок 1). Чтобы открыть параметры зоны, нажмите Изменить в её строке. На рисунке 2 показаны настройки зоны wan.
Рисунок 2 — Общие настройки зоны wan.
Описание параметров зоны:
| Параметр | Значение | Что означает |
|---|---|---|
| Название | wan | Имя зоны, которое используется в правилах межсетевого экрана. |
| Входящий трафик | отвергать | Новые обращения из зоны wan к самому маршрутизатору отклоняются. |
| Исходящий трафик | принимать | Пакеты, созданные маршрутизатором, могут выходить через интерфейсы этой зоны. |
| Перенаправление | отвергать | Политика зоны для пересылаемого трафика. |
| Маскарадинг | включён | При выходе через зону подменяется исходный IPv4-адрес. |
| Ограничение MSS | включено | Корректируется размер TCP-сегментов при пересылке. |
| Охватываемые сети | internet, wan | Интерфейсы маршрутизатора, включённые в эту зону. |
| Перенаправление в зоны назначения | не определено | Новые подключения из wan в другие зоны не разрешены. |
| Перенаправление из зон источников | lan | Устройствам из lan разрешено начинать соединения через wan. |
Ответы на уже установленные соединения пропускаются из wan обратно в lan без отдельного разрешения этого направления.
Открытие порта на маршрутизаторе
На вкладке Правила для трафика создаются отдельные правила фильтрации. С их помощью можно управлять обращениями к самому маршрутизатору и трафиком, который он пересылает между зонами: разрешать или запрещать подключения с учётом протокола, адресов и портов.
Открытие порта для службы на маршрутизаторе — один из вариантов такого правила. Так решается задача «как открыть порт на роутере», если подключаться нужно к самому LT7x. Этот трафик относится к направлению Входящий трафик (INPUT). В качестве примера разрешим доступ из зоны wan к веб-интерфейсу LT7x по протоколу HTTP на TCP-порту 80.
Шаг 1. Откройте Сеть → Межсетевой экран и перейдите на вкладку Правила для трафика (рисунок 3).
Рисунок 3 — Переход к вкладке «Правила для трафика».
Шаг 2. В нижней части списка правил нажмите Добавить (рисунок 4).
Рисунок 4 — Добавление нового правила для трафика.
Шаг 3. Введите название HTTP, выберите протокол TCP и зону источника wan. В поле Зона назначения укажите Устройство (ввод), в поле Порт назначения — 80, в поле Действие — принимать (рисунок 5).
Рисунок 5 — Правило для открытия HTTP-порта 80 на маршрутизаторе.
Шаг 4. Нажмите Сохранить, затем Применить на странице межсетевого экрана. После применения правило отображается на вкладке Правила для трафика (рисунок 6).
Рисунок 6 — Правило HTTP после добавления.
Правило разрешает подключение к веб-интерфейсу маршрутизатора и не открывает доступ к устройствам локальной сети.
Настройка через консоль. То же правило можно добавить в файл /etc/config/firewall. Подключитесь к маршрутизатору по SSH, откройте файл командой nano /etc/config/firewall и добавьте блок:
config rule
option name 'HTTP'
list proto 'tcp'
option src 'wan'
option dest_port '80'
option target 'ACCEPT'
Сохраните файл и выполните /etc/init.d/firewall restart. Если правило уже создано через веб-интерфейс, добавлять его повторно не нужно: веб-интерфейс сохраняет настройки в тот же файл.
Перенаправление порта на устройство в LAN
Если подключение из внешней сети должно поступить не на маршрутизатор, а на устройство за ним, используют перенаправление порта (проброс порта, port forwarding). Например, к LT7x подключён ПЛК с адресом 192.168.88.100, который принимает TCP-подключения на порту 5000. Настроим передачу обращений к порту 5000 внешнего адреса маршрутизатора на этот ПЛК. На схеме внешний адрес LT7x 192.0.2.13 указан условно: в реальной настройке используется адрес, назначенный устройству.
Рисунок 7 — Схема перенаправления TCP-порта 5000 на ПЛК.
Шаг 1. Перейдите в Сеть → Межсетевой экран → Перенаправление портов и нажмите Добавить (рисунок 8).
Рисунок 8 — Переход к созданию перенаправления порта.
Шаг 2. Заполните новую запись следующими параметрами:
| Параметр | Значение |
|---|---|
| Название | PLC-5000 |
| Протокол | TCP, UDP |
| Зона источника | wan |
| Внешний порт | 5000 |
| Зона назначения | lan |
| Внутренний IP-адрес | 192.168.88.100 |
| Внутренний порт | 5000 |
Заполненное окно настройки показано на рисунке 9.
Рисунок 9 — Параметры перенаправления порта.
Шаг 3. Нажмите Сохранить. Созданная запись появится на вкладке Перенаправление портов (рисунок 10).
Рисунок 10 — Перенаправление порта после сохранения.
Шаг 4. Нажмите Применить на странице межсетевого экрана. Маршрутизатор будет менять адрес назначения подходящих входящих пакетов на адрес ПЛК и пересылать их в локальную сеть. Адрес ПЛК должен оставаться постоянным: закрепите его в настройках DHCP или задайте статически на самом устройстве.
Настройка через консоль. Вместо создания записи в веб-интерфейсе откройте /etc/config/firewall по SSH и добавьте блок:
config redirect
option dest 'lan'
option target 'DNAT'
option name 'PLC-5000'
option src 'wan'
option src_dport '5000'
option dest_ip '192.168.88.100'
option dest_port '5000'
Сохраните файл и выполните /etc/init.d/firewall restart. Поскольку в блоке не указан proto, перенаправление действует для TCP и UDP, как в примере на рисунке 9. Если служба ПЛК использует только TCP, добавьте в блок строку option proto 'tcp'.
Для подключения из интернета входящие пакеты должны доходить до WAN-адреса LT7x, поэтому маршрутизатору нужен публичный («белый») IP-адрес. Если перед LT7x установлен другой маршрутизатор с NAT или оператор выдаёт частный («серый») адрес, входящие подключения не достигают устройства, и одного правила перенаправления на LT7x недостаточно.
Пользовательские правила nftables
На LT7x настройки межсетевого экрана обрабатывает firewall4, который формирует правила nftables. Открытие и перенаправление портов можно настроить через веб-интерфейс или файл /etc/config/firewall. Однако не все условия фильтрации доступны в веб-интерфейсе или выражаются обычным разделом config rule. Для таких случаев можно подключить собственные правила nftables.
Например, для L2TP/IPsec может потребоваться разрешать обращения к UDP-порту 1701 только после обработки пакета протоколом IPsec. Подключитесь к маршрутизатору по SSH и создайте файл командой nano /etc/rule.nft. Добавьте в него две строки:
meta ipsec exists udp dport 1701 accept
meta ipsec missing udp dport 1701 reject
Первая строка принимает UDP-пакеты на порт 1701, если они прошли IPsec-обработку. Вторая отклоняет обращения к тому же порту без IPsec. Эти правила фильтруют обращения к самому маршрутизатору и не настраивают службу L2TP/IPsec.
Затем добавьте в /etc/config/firewall раздел для подключения файла:
config include
option type 'nftables'
option path '/etc/rule.nft'
option position 'chain-pre'
option chain 'input'
Позиция chain-pre размещает правила в начале цепочки input — перед штатным правилом, которое по данным conntrack принимает пакеты в состояниях established и related. Цепочка input общая для обращений к маршрутизатору со всех интерфейсов, поэтому ограничение порта 1701 в этом примере действует для всех зон. После сохранения файлов примените конфигурацию командой /etc/init.d/firewall restart.
Посмотреть действующие правила можно командой nft list ruleset. В выводе найдите таблицу inet fw4 и цепочку input: добавленные правила расположены перед строкой ct state established,related accept (рисунок 11).
Рисунок 11 — Пользовательские правила в цепочке input.
Полное описание параметров /etc/config/firewall и способов подключения пользовательских правил nftables приведено в официальной документации OpenWrt. Синтаксис самих правил описан в руководстве nftables.
Заключение
Подключение к внешней сети открывает локальным устройствам доступ к нужным ресурсам, но тем же путём могут поступать и нежелательные обращения. Межсетевой экран LT7x позволяет управлять этим обменом: политики по умолчанию задают общее поведение, зоны связывают настройки с интерфейсами, а отдельные правила уточняют, какие подключения разрешены.
Открытие порта предоставляет доступ к службе самого маршрутизатора, а перенаправление передаёт подключение устройству в локальной сети. Если стандартных параметров недостаточно, можно подключить собственные правила nftables. Так маршрутизатор сохраняет связь локальной сети с внешними ресурсами и пропускает входящие обращения в соответствии с заданными условиями.