Общие инструкции по настройке firewall на irzOS
Firewall в роутерах на базе irzOS основан на программном обеспечении iptables. Интерфейс настройки предоставляет почти полный доступ к управлению правилами iptables.
| Документация по настройке iptables доступна по ссылкам netfilter.org/documentation и opennet.ru/docs/RUS/iptables (устарело, но на русском). |
Основные понятия
Интерфейсы – логические сетевые интерфейсы, например: локальная сеть, проводное подключение к провайдеру (WAN), модемное подключение, беспроводное подключение WiFI в режиме клиента.
Зоны – объединяют интерфейсы в группы для упрощения работы с ними: zone-wan объединяет «восходящие» интерфейсы, в zone-lan попадает локальная сеть и соединения, приравненные к нему (например, туннель).
Цепочки – список правил, которыми обрабатываются пакеты в специфичном порядке. Каждая цепочка связана с определенным моментом обработки пакета в сетевом стеке.
Таблицы – способ объединения цепочек для организации логически связанных действий над пакетом.
Для создания проброса портов используется таблица NAT.
Проброс порта для устройства в локальной сети
Задача:
Создать проброс порта 80 (web-интерфейс) для устройства в локальной сети с назначенным IP-адресом 192.168.1.100.
Решение:
-
Перейдите в раздел /firewall → nat. Нажмите Add, в качестве Chain выберите prerouting. Нажмите ОК.
-
Откроется общая форма настройки правил iptables. Настройте правило по образцу.
| Доступные поля зависят от выбранной таблицы и настраиваемых действий. |
Поле |
Описание |
Значение |
Chain |
Цепочка, в которую добавляется правило |
prerouting |
Source |
Источник пакета (интерфейс, зона) |
zone-wan |
Source Address |
Адрес источника пакета (! означает логическое NOT) |
– |
Destination |
Назначение пакета (интерфейс, зона) |
– |
Destination Address |
Адрес назначения пакета (! означает логическое NOT) |
:8080 |
Protocol |
Протокол, к которому применяется правило |
tcp |
Firewall Mark |
Признак отметки файрволла (для продвинутых правил) |
|
Action |
Действие (зависит от выбранной таблицы) |
dnat |
NAT Address |
IP-адрес самого роутера, выступающего в качестве шлюза |
|
Ipsec Policy |
Политика IPSce |
|
Extra Params |
Дополнительные параметры (для продвинутых правил) |
192.168.1.100:80 |
-
Нажмите Apply.
Таким образом настроен проброс с порта 8080 роутера на порт 80 IP-адреса 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 в данном случае необязательно. |
Проброс всех портов на устройство внутри локальной сети
При необходимости полного доступа извне к устройству внутри локальной сети и невозможности организовать маршрутизацию или туннель можно использовать DNAT для всех протоколов и портов сразу.
Для этого при создании правила достаточно в качестве Protocol выбрать all. В данном режиме не нужно указывать порт в поле NAT Address.
Перед этим необходимо создать дополнительные правила DNAT для проброса портов к сервисам роутера (порт 80 панели администрирования, 22 для SSH) по образцу.
Правила обрабатываются сверху вниз, поэтому правило для полного проброса портов должно стоять ниже правил для доступа к сервисам роутера.
| Неправильный порядок правил может привести к потере внешнего доступа к роутеру. |
| В данной конфигурации целевой хост не защищен внутренним сетевым экраном роутера. |
Настройка в режиме CLI
| При условии, что внутренний IP-адрес – 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. В качестве Chain выберите input и заполните поля по образцу.
| Созданное правило размещается последним в списке, под общим запрещающим правилом, и работать не будет. Поэтому его нужно переместить выше запрещающего правила. |
Настройка зон
Одним из основных понятий, которым оперирует файрволл, является зона. Зона — это условное понятие, объединяющее набор интерфейсов или набор IP-адресов для создания правил, оно помогает избежать создания идентичных правил для нескольких разных интерфейсов и логически сгруппировать их.
Предустановленными зонами являются zone-lan (локальная сеть) и zone-wan (интерфейсы, направленные в сторону провайдера сети).
Интерфейсы (например, туннельные), не добавленные ни в одну зону, по умолчанию файрволом не обрабатываются. Для них правила могут быть настроены отдельно и явно.
Чтобы добавить интерфейс в зону, нажмите на неё и выберите интерфейс из списка Entry.
Зона также может состоять из набора IP-адресов. Чтобы создать такую зону, перейдите в /firewall → zone, нажмите Add и задайте настройки:
-
type: address
-
Entry: IP-адреса и подсети адресов
Теперь данную зону можно использовать при создании правил файрвола. Правила будут применяться лишь для пакетов с адресами, входящими в нее.