Общие инструкции по настройке firewall на irzOS

#irzOS #роутеры #firewall #r0 #r2 #r10 #r50

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.

Решение:

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

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

Доступные поля зависят от выбранной таблицы и настраиваемых действий.
firewall 3
Параметры правила 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

  1. Нажмите Apply.

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

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

  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

Параметры со значением «-» могут быть проигнорированы.

Добавить правило 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

При условии, что внутренний 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 и заполните поля по образцу.

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
  /

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

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

Предустановленными зонами являются 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
/
Все настройки навсегда сохраняются в память роутера только после выполнения команды /system → config → commit или нажатия кнопки commit в web-интерфейсе.