logo

Общие инструкции по настройке 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.

Решение

  1. Перейдите в раздел /firewall → nat. Нажмите Add, в качестве Chain выберите Postrouting. Нажмите ОК.

firewall 1
  1. Откроется общая форма настройки правил iptables. Доступные поля зависят от выбранной таблицы и настраиваемых действий.

firewall 2
Table 1. Параметры правила Iptables

Поле

Описание

Chain

Цепочка, в которую добавляется правило

Source

Источник пакета (интерфейс, зона)

Source Address

Адрес источника пакета (означает логическое NOT)

Destination

Назначение пакета (интерфейс, зона)

Destination Address

Адрес назначения пакета (означает логическое NOT)

Protocol

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

Firewall Mark

Признак отметки файрволла (для продвинутых правил)

Action

Действие (зависит от выбранной таблицы)

Ipsec Policy

Политика IPSce

Extra Params

Дополнительные параметры (для продвинутых правил)

  1. Настройте правило по образцу:

    • 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.

firewall 3

Таким образом настроен проброс с порта 8080 роутера на порт 80 адреса 192.168.1.100. Данный проброс будет работать в случае если устройство в локальной сети, до которого проброшен порт, в качестве шлюза по умолчанию имеет роутер iRZ .

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

  1. Для этого в разделе /firewall → nat нажмите Add и в качестве Chain выберите Postrouting. Нажмите ОК.

  2. Заполните форму по образцу:

    • Chain: Postrouting

    • Destination: zone-lan (если нет других локальных сетей и бриджей), либо bridge0 (тот, к которому подключено целевое устройство), если локальных несколько

    • Protocol: tcp

    • Action: snat (Source NAT)

    • NAT Address: 192.168.1.1 (IP адрес самого роутера, выступающего в качестве шлюза)

firewall 4

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

В 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 указывать в данном режиме не нужно.

firewall 5

Перед этим необходимо дополнительно создать правила DNAT для проброса портов к сервисам, предоставляемым роутером (порт 80 для админ-панели, 22 для SSH), по образцу.

firewall 6

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

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

В данной конфигурации целевой хост не защищен сетевым экраном, работающим на роутере.

Настройка в режиме 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.

firewall 7
Вновь созданное правило будет последним в списке под общим правилом, запрещающим доступ, и работать не будет. Поэтому его нужно переместить выше запрещающего правила.

Настройка в режиме CLI

/firewall filter add chain=input
    action accept
    disabled -
    dst -
    dst-addr :1723
    extra -
    mark -
    policy -
    protocol tcp
    src zone-wan
    src-addr -
    reorder position=-1
    apply
  /

Настройка зон

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

Предустановленными зонами являются zone-lan (локальная сеть) и zone-wan (интерфейсы, смотрящие в сторону провайдера сети).

Интерфейсы (например, туннельные), не добавленные ни в одну зону, по умолчанию файрволом не обрабатываются. Для них правила могут быть настроены отдельно и явно.

Чтобы добавить интерфейс в зону, кликните по ней и выберите интерфейс в списке Entry.

Зоной также может быть набор IP адресов. Для создания такой зоны в разделе /firewall → zone создайте новую зону кнопкой Add и задайте настройки:

  • type: Address

  • Entry: IP адреса и подсети адресов

firewall 8

Теперь при создании правил файрвола можно использовать данную зону, правила будут применяться лишь для пакетов с адресами, входящими в нее.

Настройка в режиме CLI

/firewall zone add name=newzone type=address
    entry 192.168.2.0/24,192.168.4.0/24
    apply
/