Общие инструкции по настройке firewall на iRZOS
Firewall в роутерах на базе irzOS основывается на программном обеспечении iptables и интерфейс настройки предоставляет почти полный доступ к настройке правил iptables.
| Ознакомиться с документацией по настройке iptables можно ссылкам https://www.netfilter.org/documentation/ и https://www.opennet.ru/docs/RUS/iptables/ (устарело, но на русском) |
Основные понятия
Интерфейсы – интерфейсами являются логические сетевые интерфейсы, например: локальная сеть, проводное подключение к провайдеру (WAN), модемное подключение, беспроводное подключение WiFI в режиме клиента.
Зоны – объединяют интерфейсы в группы для упрощения работы с ними: zone-wan объединяет «восходящие» интерфейсы, в zone-lan попадает локальная сеть и соединения, приравненные к нему (например, туннель).
Цепочки – список правил, которыми обрабатываются пакеты в специфичном порядке. Каждая цепочка связана с определенным моментом обработки пакета в сетевом стеке.
Таблицы – способ объединения цепочек для организации логически связанных действий над пакетом.
Для создания проброса портов используется таблица NAT.
Проброс порта для устройства в локальной сети
Задача
Создать проброс порта 80 (web-интерфейс) для устройства в локальной сети с назначенным IP 192.168.1.100.
Решение
-
Перейдите в раздел /firewall → nat. Нажмите Add, в качестве Chain выберите Postrouting. Нажмите ОК.
-
Откроется общая форма настройки правил iptables. Доступные поля зависят от выбранной таблицы и настраиваемых действий.
Поле |
Описание |
Chain |
Цепочка, в которую добавляется правило |
Source |
Источник пакета (интерфейс, зона) |
Source Address |
Адрес источника пакета (означает логическое NOT) |
Destination |
Назначение пакета (интерфейс, зона) |
Destination Address |
Адрес назначения пакета (означает логическое NOT) |
Protocol |
Протокол, к которому применяется правило |
Firewall Mark |
Признак отметки файрволла (для продвинутых правил) |
Action |
Действие (зависит от выбранной таблицы) |
Ipsec Policy |
Политика IPSce |
Extra Params |
Дополнительные параметры (для продвинутых правил) |
-
Настройте правило по образцу:
-
Source: zone-wan (uplink, интернет, провайдер, сотовая сеть)
-
Destination Address: :8080 (порт 8080 на внешних интерфейсах роутера)
-
Protocol: tcp (протокол HTTP работает поверх протокола TCP)
-
Action: dnat (Destination NAT)
-
NAT Address: 192.168.1.100:80 ( 192.168.1.100 – целевой IP, 80 – стандартный порт HTTP)
-
Нажмите Apply.
Таким образом настроен проброс с порта 8080 роутера на порт 80 адреса 192.168.1.100. Данный проброс будет работать в случае если устройство в локальной сети, до которого проброшен порт, в качестве шлюза по умолчанию имеет роутер iRZ .
В некоторых случая сетевые устройства настроены статически и адрес шлюза не указан, либо возможности указать шлюз нет изначально. В этом случае данный проброс не будет работать и необходимо дополнительно добавить еще одно правило SNAT.
-
Для этого в разделе /firewall → nat нажмите Add и в качестве Chain выберите Postrouting. Нажмите ОК.
-
Заполните форму по образцу:
-
Chain: Postrouting
-
Destination: zone-lan (если нет других локальных сетей и бриджей), либо bridge0 (тот, к которому подключено целевое устройство), если локальных несколько
-
Protocol: tcp
-
Action: snat (Source NAT)
-
NAT Address: 192.168.1.1 (IP адрес самого роутера, выступающего в качестве шлюза)
-
Правило будет применяться для всех устройств\адресов в выбранной зоне или бридже.
| В Destination Address можно так же указать IP адрес целевого устройства ( 192.168.1.100). В этом случае правило быдет применяться только для этого устройства. Заполнение поля Destination в данном случае необязательно. |
Настройка в режиме CLI
| Параметры со значением «-» могут быть проигнорированы. |
Добавить правило DNAT:
/firewall nat add chain=prerouting
action dnat
disabled -
dst -
dst-addr :8080
extra -
mark -
nat-addr 192.168.1.100:80
policy -
protocol tcp
src zone-wan
src-addr -
Добавить правило SNAT (опционально):
/firewall nat add chain=postrouting
action snat
disabled -
dst zone-lan
dst-addr -
extra -
mark -
nat-addr 192.168.1.1
policy -
protocol tcp
src -
src-addr -
/firewall nat apply
Проброс всех портов на устройство внутри
При необходимости полного доступа извне к устройству внутри локальной сети и невозможности организовать маршрутизацию или туннель можно использовать DNAT для всех протоколов и портов сразу.
Для этого при создании правила достаточно в качестве Protocol выбрать all. Порт в NAT Address указывать в данном режиме не нужно.
Перед этим необходимо дополнительно создать правила DNAT для проброса портов к сервисам, предоставляемым роутером (порт 80 для админ-панели, 22 для SSH), по образцу.
При этом правило для полного проброса портов должно стоять ниже правил для доступа к сервисам роутера, т.к. правила обрабатываются по очереди, сверху вниз.
При неправильном порядке доступ к роутеру извне может быть потерян.
| В данной конфигурации целевой хост не защищен сетевым экраном, работающим на роутере. |
Настройка в режиме CLI
| При условии что внутренний адрес 192.168.1.1. |
Настройка доступа к админ-панели:
/firewall nat add chain=prerouting
action dnat
disabled -
dst -
dst-addr :80
extra -
mark -
nat-addr 192.168.1.1:80
policy -
protocol tcp
src zone-wan
src-addr -
apply
Настройка доступа к SSH:
/firewall nat add chain=prerouting
action dnat
disabled -
dst -
dst-addr :22
extra -
mark -
nat-addr 192.168.1.1:22
policy -
protocol tcp
src zone-wan
src-addr -
apply
Настройка Full DNAT для IP 192.168.1.100:
/firewall nat add chain=prerouting
action dnat
disabled -
dst -
dst-addr -
extra -
mark -
nat-addr 192.168.1.100
policy -
protocol all
src zone-wan
src-addr -
apply
/firewall nat apply
/
Открытие портов на роутере для конкретных сервисов
Если есть необходимость открыть порт (например, tcp 1723 для PPTP), следует создать правило в разделе /firewall → filter.
| Вновь созданное правило будет последним в списке под общим правилом, запрещающим доступ, и работать не будет. Поэтому его нужно переместить выше запрещающего правила. |
Настройка зон
Одним из основных понятий, которым оперирует файрволл, является зона. Зона — это условное понятие, объединяющее набор интерфейсов или набор адресов для создания правил, оно помогает избежать создания идентичных правил для нескольких разных интерфейсов и логически сгруппировать их.
Предустановленными зонами являются zone-lan (локальная сеть) и zone-wan (интерфейсы, смотрящие в сторону провайдера сети).
Интерфейсы (например, туннельные), не добавленные ни в одну зону, по умолчанию файрволом не обрабатываются. Для них правила могут быть настроены отдельно и явно.
Чтобы добавить интерфейс в зону, кликните по ней и выберите интерфейс в списке Entry.
Зоной также может быть набор IP адресов. Для создания такой зоны в разделе /firewall → zone создайте новую зону кнопкой Add и задайте настройки:
-
type: Address
-
Entry: IP адреса и подсети адресов
Теперь при создании правил файрвола можно использовать данную зону, правила будут применяться лишь для пакетов с адресами, входящими в нее.