Настройка раздела Политики сети
 
Настройка правил межсетевого экрана

Настройка межсетевого экрана происходит на уровне network-policy firewall. Подробнее о структуре команд читайте в разделе Настройка правил с использованием UPL.

Admin@nodename# create network-policy firewall

Параметры правил межсетевого экрана:

Параметр

Описание

PASS

DENY

Действие правила межсетевого экрана:

  • PASS — разрешить трафик.

  • DENY — запретить трафик.

enabled

Включение/отключение правила:

  • enabled(yes) или enabled(true).

  • enabled(no) или enabled(false).

name

Название правила межсетевого экрана.

Например: name("Rule example").

desc

Описание правила.

Например: desc("Firewall rule example configured in CLI").

ips_profile

Профиль СОВ. Подробнее о создании и настройке профилей СОВ с использованием интерфейса командной строки читайте в разделе Настройка профилей СОВ.

Например: ips_profile("Test ips profile").

l7_profile

Профиль приложений. Подробнее о создании и настройке профилей приложений с использованием интерфейса командной строки читайте в разделе Настройка профилей приложений.

Например: l7_profile("Test application-profile").

reject_with

Настройка доступна для правил с действием Запретить:

  • reject_with(no).

  • reject_with("host_unreach") — посылать ICMP host unreachable — блокировка трафика с отправкой ICMP-сообщения.

  • reject_with("tcp_rst") — посылать TCP reset: блокировка трафика с отправкой сообщения о разрыве TCP-соединения.

    Важно! При выборе действия Посылать TCP reset необходимо указание сервиса, использующего протокол TCP (подробнее о добавлении и настройке сервисов читайте в разделе ов).

  • reject_with("tcp_reset-both") — посылать TCP reset в обе стороны — блокировка трафика с отправкой сообщения о разрыве TCP-соединения клиенту и серверу.

scenario

Сценарий, который должен быть активным для срабатывания правила.

Для указания сценария: scenario = "Example of a scenario".

Подробнее о настройке сценариев смотрите в разделе Настройка сценариев.

rule_log

Запись в журнал информации о трафике при срабатывании правила. Возможны варианты:

  • rule_log(no) или rule_log(false) — отключить журналирование. Если при создании правила rule_log не указано, функция журналирования отключена.

  • rule_log(yes) или rule_log(true) — журналировать все сетевые пакеты без установки лимитов. Для установки лимитов необходимо указать число событий, записываемых в журнал за единицу времени (s — секунда; min — минута; h — час; d — день, нельзя установить лимит журналирования менее 5-ти пакетов в день) и максимальное количество пакетов, журналируемых на событие. Например, rule_log(yes, "3/h", 5) — включение журналирования с установкой лимитов: в журнал записывается 3 события в час; максимальное количество пакетов, журналируемых на событие равно 5.

  • rule_log(session) — журналировать начало сессии.

fragmented

Указание пакетов, к которым применяется правило межсетевого экрана:

  • fragmented(yes) или fragmented(true) — применить правило к только фрагментированным пакетам.

  • fragmented(no) или fragmented(false) — применить правило к только нефрагментированным пакетам.

  • fragmented(all) — применить правило ко всем пакетам.

Если не указать fragmented при создании правила, то правило межсетевого экрана применяется ко всем пакетам.

src.zone

Зона источника трафика.

Для указания зоны источника, например, Trusted: src.zone = Trusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

src.ip

Добавление списков IP-адресов или доменов источника.

Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

src.geoip

Указание GeoIP источника; необходимо указать код страны (например, src.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15.

user

Пользователи и группы пользователей, для которых применяется правило межсетевого экрана (локальные или LDAP).

Для добавления LDAP групп и пользователей необходим корректно настроенный LDAP-коннектор (о настройке LDAP-коннектора через CLI читайте в разделе Настройка LDAP-коннектора).

Примеры добавления пользователей в правило:

user = known 
user = "user"
user = "testd.local\\user1"
user = ("user", "testd.local\\user1")

dst.zone

Зона назначения трафика.

Для указания зоны источника, например, Untrusted: dst.zone = Untrusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

dst.ip

Добавление списков IP-адресов или доменов назначения.

Для указания списка IP-адресов: dst.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов назначения: dst.ip = lib.url(); в скобках необходимо указать название URL-списка, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

dst.geoip

Указание GeoIP назначения; необходимо указать код страны (например, dst.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15.

service

Тип сервиса. Можно указать сервис или группу сервисов (подробнее читайте в разделах Настройка сервисов и Настройка групп сервисов).

Чтобы указать сервис: service = "service name"; для указания нескольких сервисов: service = (service-name1, service-name2, ...).

Чтобы указать группу сервисов: service = lib.service(); в скобках необходимо указать название группы сервисов.

time

Настройка расписания работы правила.

Для установки расписания: time = lib.time(); в скобках необходимо указать название группы календарей. Подробнее о настройке календарей читайте в разделе Настройка календарей.

Пример создания правила межсетевого экрана с использованием UPL:  

Admin@nodename# create network-policy firewall 1 upl-rule PASS \
...src.zone = Trusted \
...dst.zone = Untrusted \
...user = known \
...service = HTTP \
...rule_log(session) \
...name("Test firewall rule") \
...enabled(true)
...
Admin@nodename# show network-policy firewall 1
% ----------------- 1 -----------------
PASS \
    user = known \
    src.zone = Trusted \
    dst.zone = Untrusted \
    service = HTTP \
    rule_log(session) \
    enabled(true) \
    id("1505d309-621b-4f88-a2e4-98667c477535") \
    name("Test firewall rule")
Настройка правил NAT и маршрутизации

Настройка правил NAT и маршрутизации происходит на уровне network-policy nat-routing. Подробнее о структуре команд читайте в разделе Настройка правил с использованием UPL.

Admin@nodename# create network-policy nat-routing 1 upl-rule <parameters>

Настройка правил типа NAT

При настройке правил типа NAT, необходимо указать следующие параметры:

Параметр

Описание

PASS

OK

Действие для создания правила с помощью UPL.

enabled

Включение/отключение правила:

  • enabled(yes) или enabled(true).

  • enabled(no) или enabled(false).

name

Название правила NAT.

Например: name("NAT rule example").

desc

Описание правила.

Например: desc("NAT rule example set via CLI").

nat

Тип правила (указывается в свойствах правила).

snat_target_ip

IP-адрес, на который будет заменён адрес источника при наттировании пакетов. Адрес указывается в "", например snat_target_ip ("1.1.1.1").

rule_log

Запись в журнал информации о трафике при срабатывании правила. Возможны варианты:

  • rule_log(no) или rule_log(false) — отключить журналирование. Если при создании правила rule_log не указано, функция журналирования отключена.

  • rule_log(session) — журналировать начало сессии.

src.zone

Зона источника трафика.

Для указания зоны источника, например, Trusted: src.zone = Trusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

src.ip

Добавление списков IP-адресов, MAC-адресов или доменов источника.

Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Для указания MAC-адресов источников, например 02:00:00:00:00:00, используйте: src.ip = 02:00:00:00:00:00.

dst.zone

Зона назначения трафика.

Для указания зоны назначения трафика, например, Untrusted: dst.zone = Untrusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

dst.ip

Добавление списков IP-адресов, MAC-адресов или доменов назначения.

Для указания списка IP-адресов: dst.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов назначения: dst.ip = lib.url(); в скобках необходимо указать название URL-списка, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Для указания MAC-адресов назначения, например 02:00:00:00:00:00, используйте: dst.ip = 02:00:00:00:00:00.

service

Тип сервиса. Можно указать сервис или группу сервисов (подробнее читайте в разделах Настройка сервисов и Настройка групп сервисов).

Чтобы указать сервис: service = "service name"; для указания нескольких сервисов: service = (service-name1, service-name2, ...).

Чтобы указать группу сервисов: service = lib.service(); в скобках необходимо указать название группы сервисов.

Пример создания правила NAT с использованием UPL: 

Admin@nodename# create network-policy nat-routing 1 upl-rule PASS \
...src.zone = Trusted \
...dst.zone = Untrusted \
...nat \
...rule_log(session) \
...name("Test NAT rule") \
...enabled(true)
...
Admin@nodename# show network-policy nat-routing 1
% ----------------- 1 -----------------
OK \
    src.zone = Trusted \
    dst.zone = Untrusted \
    direction(input) \
    rule_log(session) \
    enabled(true) \
    id("0344640b-b392-4920-9853-77d85ec1338c") \
    name("Test NAT rule")\
    nat

Настройка правил типа DNAT

При настройке правил типа DNAT необходимо указать следующие параметры.

Параметр

Описание

PASS

OK

Действие для создания правила с помощью UPL.

enabled

Включение/отключение правила:

  • enabled(yes) или enabled(true).

  • enabled(no) или enabled(false).

name

Название правила DNAT.

Например: name("DNAT rule example").

desc

Описание правила.

Чтобы указать описание правила используется: desc("DNAT rule example created via CLI").

dnat

Тип правила (указывается в свойствах правила).

snat_target_ip

IP-адрес, на который будет заменён адрес источника при наттировании пакетов. Адрес указывается в "", например snat_target_ip ("1.1.1.1").

rule_log

Запись в журнал информации о трафике при срабатывании правила. Возможны варианты:

  • rule_log(no) или rule_log(false) — отключить журналирование. Если при создании правила rule_log не указано, функция журналирования отключена.

  • rule_log(session) — журналировать начало сессии.

src.zone

Зона источника трафика.

Чтобы указать зону источника трафика, например Trusted: src.zone = Trusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

src.ip

Добавление списков IP-адресов, MAC-адресов или доменов источника.

Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Для указания MAC-адресов источников, например 02:00:00:00:00:00, используйте: src.ip = 02:00:00:00:00:00.

src.geoip

Указание GeoIP источника; необходимо указать код страны (например, src.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15.

dst.zone

Зона назначения трафика.

Для указания зоны назначения, например, Untrusted: dst.zone = Untrusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

dst.ip

Добавление списков IP-адресов, MAC-адресов или доменов назначения.

Для указания списка IP-адресов: dst.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов назначения: dst.ip = lib.url(); в скобках необходимо указать название URL-списка, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Для указания MAC-адресов назначения, например 02:00:00:00:00:00, используйте: dst.ip = 02:00:00:00:00:00.

service

Тип сервиса. Можно указать сервис или группу сервисов (подробнее читайте в разделах Настройка сервисов и Настройка групп сервисов).

Чтобы указать сервис: service = "service name"; для указания нескольких сервисов: service = (service-name1, service-name2, ...).

Чтобы указать группу сервисов: service = lib.service(); в скобках необходимо указать название группы сервисов.

target_ip

Адрес назначения DNAT.

Для указания адреса назначения: target_ip("1.1.1.1").

target_snat

Изменение IP-адреса источника на адрес UserGate:

  • target_snat(yes) или target_snat(true).

  • target_snat(no) или target_snat(false).

Пример создания правила DNAT с использованием UPL:

Admin@nodename# create network-policy nat-routing 1 upl-rule PASS \
...src.zone = Untrusted \
...target_ip("10.10.0.15") \
...dnat \
...rule_log(session) \
...name("Test DNAT") \
...enabled(yes)
...
Admin@nodename# show network-policy nat-routing 1
% ----------------- 1 -----------------
OK \
    src.zone = Untrusted \
    target_ip("10.10.0.15") \
    direction(input) \
    rule_log(session) \
    enabled(true) \
    id("00e60d4e-9b93-454b-a424-58e2102f84c2") \
    name("Test DNAT")\
    dnat

Настройка правил типа Порт-форвардинг

При настройке правил типа Порт-форвардинг необходимо указать:

Параметр

Описание

PASS

OK

Действие для создания правила с помощью UPL.

enabled

Включение/отключение правила:

  • enabled(yes) или enabled(true).

  • enabled(no) или enabled(false).

name

Название правила Порт-форвардинга.

Например: name("Port forwarding rule example").

desc

Описание правила.

Чтобы указать описание правила используется: desc("Port forwarding rule example created via CLI").

port_mapping

Тип правила (указывается в свойствах правила).

snat_target_ip

IP-адрес, на который будет заменён адрес источника при наттировании пакетов. Адрес указывается в "", например snat_target_ip ("1.1.1.1").

rule_log

Запись в журнал информации о трафике при срабатывании правила. Возможны варианты:

  • rule_log(no) или rule_log(false) — отключить журналирование. Если при создании правила rule_log не указано, функция журналирования отключена.

  • rule_log(session) — журналировать начало сессии.

src.zone

Зона источника трафика.

Для указания зоны источника: src.zone = Trusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

src.ip

Добавление списков IP-адресов, MAC-адресов или доменов источника.

Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Для указания MAC-адресов источников, например 02:00:00:00:00:00, используйте: src.ip = 02:00:00:00:00:00.

src.geoip

Указание GeoIP источника; необходимо указать код страны (например, src.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15.

dst.ip

Добавление списков IP-адресов, MAC-адресов или доменов назначения.

Для указания списка IP-адресов: dst.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов назначения: dst.ip = lib.url(); в скобках необходимо указать название URL-списка, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Для указания MAC-адресов назначения, например 02:00:00:00:00:00, используйте: dst.ip = 02:00:00:00:00:00.

port_map

Переопределение портов публикуемых сервисов:

Для переопределения необходимо указать сетевой протокол (tcp, udp, smtp, smtps), оригинальный и новый порты назначения. Например, port_map(tcp, 2000, 2100).

Важно! Нельзя использовать следующие порты, поскольку они используются внутренними сервисами UserGate: 2200, 8001, 4369, 9000-9100.

target_ip

Адрес назначения DNAT.

Для указания адреса назначения: target_ip("1.1.1.1").

target_snat

Изменение IP-адреса источника на адрес UserGate:

  • target_snat(yes) или target_snat(true).

  • target_snat(no) или target_snat(false).

Пример создания правила порт-форвардинг с использованием UPL:

Admin@nodename# create network-policy nat-routing 8 upl-rule OK \
... src.zone = Untrusted \
... dst.ip = lib.network(UG_IP) \
... target_ip("10.10.0.16") \
... port_map(tcp, 2222, 23) \
... rule_log(session) \
... name(port_fw1) \
... port_mapping \
... 
Admin@nodename# show network-policy nat-routing 8
% ----------------- 8 -----------------
OK \
    src.zone = Untrusted \
    dst.ip = lib.network(UG_IP) \
    target_ip("10.10.0.16") \
    port_map(tcp, 2222, 23) \
    direction(input) \
    rule_log(session) \
    enabled(true) \
    id("1af47c3f-96a3-4e65-90e3-debf169bb745") \
    name(port_fw1)\
    port_mapping

Настройка правил типа Policy-based routing

Для настройки правил типа Policy-based routing нужно указать:

Параметр

Описание

PASS

OK

Действие для создания правила с помощью UPL.

enabled

Включение/отключение правила:

  • enabled(yes) или enabled(true).

  • enabled(no) или enabled(false).

name

Название правила типа Policy-based routing.

Например: name("Policy-based routing rule example").

desc

Описание правила.

Чтобы указать описание правила используется: desc("Policy-based routing rule example set via CLI").

route

Тип правила (указывается в свойствах правила).

gateway

Выбор одного из существующих шлюзов: gateway("1.1.1.1").

О добавлении шлюзов через CLI читайте в разделе Настройка шлюзов.

scenario

Сценарий, который должен быть активным для срабатывания правила.

Для указания сценария: scenario = "Example of a scenario".

Подробнее о настройке сценариев смотрите в разделе Настройка сценариев.

rule_log

Запись в журнал информации о трафике при срабатывании правила. Возможны варианты:

  • rule_log(no) или rule_log(false) — отключить журналирование. Если при создании правила rule_log не указано, функция журналирования отключена.

  • rule_log(session) — журналировать начало сессии.

src.zone

Зона источника трафика.

Для указания зоны источника: src.zone = Trusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

src.ip

Добавление списков IP-адресов, MAC-адресов или доменов источника.

Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Для указания MAC-адресов источников, например 02:00:00:00:00:00, используйте: src.ip = 02:00:00:00:00:00.

src.geoip

Указание GeoIP источника; необходимо указать код страны (например, src.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15.

dst.ip

Добавление списков IP-адресов, MAC-адресов или доменов назначения.

Для указания списка IP-адресов: dst.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов назначения: dst.ip = lib.url(); в скобках необходимо указать название URL-списка, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Для указания MAC-адресов назначения, например 02:00:00:00:00:00, используйте: dst.ip = 02:00:00:00:00:00.

dst.geoip

Указание GeoIP назначения; необходимо указать код страны (например, dst.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15.

service

Тип сервиса. Можно указать сервис или группу сервисов (подробнее читайте в разделах Настройка сервисов и Настройка групп сервисов).

Чтобы указать сервис: service = "service name"; для указания нескольких сервисов: service = (service-name1, service-name2, ...).

Чтобы указать группу сервисов: service = lib.service(); в скобках необходимо указать название группы сервисов.

user

Пользователи или группы пользователей, для которых применяется правило (локальные или LDAP).

Для добавления LDAP групп и пользователей необходим корректно настроенный LDAP-коннектор (о настройке LDAP-коннектора через CLI читайте в разделе Настройка LDAP-коннектора).

Примеры добавления пользователей в правило:

user = known 
user = "user"
user = "testd.local\\user1"
user = ("user", "testd.local\\user1")

Пример создания и редактирования правила policy-based routing с использованием UPL:

Admin@nodename# create network-policy nat-routing 7 upl-rule OK \
... route \
... gateway("def") \
... name("testpbr1") \
... enabled(true) \
... rule_log(session) \
... 
Admin@nodename# set network-policy nat-routing 7 upl-rule OK \
... service = (HTTPS, HTTP) \
... 
Admin@nodename# set network-policy nat-routing 7 upl-rule OK \
... user = "CN=Users1,DC=LOCAL"
Admin@nodename# show network-policy nat-routing 7 
% ----------------- 7 -----------------
OK \
    user = "CN=Users1,DC=LOCAL" \
    service = (HTTPS, HTTP) \
    gateway(def) \
    direction(input) \
    rule_log(session) \
    enabled(true) \
    id("0585a95f-4707-4c11-840d-44643bc2c799") \
    name(testpbr1)\
    route

Настройка правил типа Network mapping

При настройке правил типа Network mapping необходимо указать следующие параметры:

Параметр

Описание

PASS

OK

Действие для создания правила с помощью UPL.

enabled

Включение/отключение правила:

  • enabled(yes) или enabled(true).

  • enabled(no) или enabled(false).

name

Название правила типа Network mapping.

Например: name("Network mapping rule example").

desc

Описание правила.

Чтобы указать описание правила используется: desc("Network mapping rule example set via CLI").

netmap

Тип правила (указывается в свойствах правила).

rule_log

Запись в журнал информации о трафике при срабатывании правила. Возможны варианты:

  • rule_log(no) или rule_log(false) — отключить журналирование. Если при создании правила rule_log не указано, функция журналирования отключена.

  • rule_log(session) — журналировать начало сессии.

src.zone

Зона источника трафика.

Для указания зоны источника: src.zone = Trusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

src.ip

Добавление списков IP-адресов, MAC-адресов или доменов источника.

Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Для указания MAC-адресов источников, например 02:00:00:00:00:00, используйте: src.ip = 02:00:00:00:00:00.

src.geoip

Указание GeoIP источника; необходимо указать код страны (например, src.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15.

dst.ip

Добавление списков IP-адресов, MAC-адресов или доменов назначения.

Для указания списка IP-адресов: dst.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов назначения: dst.ip = lib.url(); в скобках необходимо указать название URL-списка, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Для указания MAC-адресов назначения, например 02:00:00:00:00:00, используйте: dst.ip = 02:00:00:00:00:00.

dst.geoip

Указание GeoIP назначения; необходимо указать код страны (например, dst.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15.

service

Тип сервиса. Можно указать сервис или группу сервисов (подробнее читайте в разделах Настройка сервисов и Настройка групп сервисов).

Чтобы указать сервис: service = "service name"; для указания нескольких сервисов: service = (service-name1, service-name2, ...).

Чтобы указать группу сервисов: service = lib.service(); в скобках необходимо указать название группы сервисов.

target_ip

Параметр подмены сетей; адрес сети, на которую будет производится замена, например: target_ip("1.1.1.0").

direction

Параметр подмены сетей. Направление:

  • direction(input) — входящий, подменяется IP-сеть назначения. Будут изменены IP-адреса назначения в трафике, попадающем под условия правила. Изменяется адрес сети на сеть, указанную в значении target_ip.

  • direction(output) — исходящий, подменяется IP-сеть источника. Будут изменены IP-адреса источника в трафике, попадающем под условия правила. Изменяется адрес сети на сеть, указанную в значении target_ip.

Пример создания правила network mapping с использованием UPL:

Admin@nodename# create network-policy nat-routing 8 upl-rule OK \
... src.zone = External \
... target_ip("192.168.222.0/24") \
... direction(output) \
... netmap \
... rule_log(session) \
... name(netmap1) \
... 
Admin@nodename# show network-policy nat-routing 8
% ----------------- 8 -----------------
OK \
    src.zone = External \
    target_ip("192.168.222.0/24") \
    direction(output) \
    rule_log(session) \
    enabled(true) \
    id("26cbd3e8-0210-494c-9fd4-57300b47a9fe") \
    name(netmap1)\
    netmap
Настройка балансировки нагрузки

Настройка правил балансировки нагрузки происходит на уровне network-policy load-balancing с испоьзованием языка описания политик UPL. Подробнее о структуре команд читайте в разделе Настройка правил с использованием UPL.

Настройка балансировщиков нагрузки TCP/UDP и reverse-прокси рассмотрена далее.

Для отображения информации о всех балансировщиках используется команда:

Admin@nodename# show network-policy load-balancing

Настройка балансировщика TCP/UDP

Настройка данного раздела производится на уровне network-policy load-balancing tcp-udp.

Структура команды создания балансировщика нагрузки TCP/UDP следующая:

Admin@nodename# create network-policy load-balancing tcp-udp <position> upl-rule

Параметры правил балансировки нагрузки TCP/UDP:

Параметр

Описание

PASS

OK

Действие для создания правила с помощью UPL.

name

Название правила балансировки.

Например: name("TCP_UDP balancer").

enabled

Включение/отключение правила:

  • enabled(yes) или enabled(true).

  • enabled(no) или enabled(false).

desc

Описание правила.

Например: desc("TCP_UDP balancing rule").

src.zone

Зона источника трафика.

Для указания зоны источника, например, Trusted: src.zone = Trusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

src.ip

Добавление списков IP-адресов или доменов источника.

Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

Например: src.ip = lib.network("Test ip-list").

src.geoip

Указание GEO IP в качестве источника.

Например: src.geoip = RU.

url.address

IP-адрес виртуального сервера.

Например: url.address = 10.10.0.20

url.port

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

Например: url.port = 1812.

service

Протокол — TCP или UDP, для которого необходимо производить балансировку нагрузки.

Например: service = udp

scheduler

Методы распределения нагрузки на реальные серверы:

  • rrround robin — каждое новое подключение передается на следующий сервер в списке, равномерно загружая все серверы.

  • wrrweighted round robin — работает аналогично Round robin, но загрузка реальных серверов осуществляется с учетом весовых коэффициентов, что позволяет распределить нагрузку с учетом производительности каждого сервера.

  • lcleast connections — новое подключение передается на сервер, на который в данный момент установлено наименьшее число соединений.

  • wlc — leighted least connections — работает аналогично Least connections, но загрузка реальных серверов осуществляется с учетом весовых коэффициентов, что позволяет распределить нагрузку с учетом производительности каждого сервера.

Например: scheduler(rr).

real_server

Реальные сервера, на которые будет перенаправляться трафик. Для сервера необходимо указать:

  • ipIP-адрес сервера.

  • port — порт сервера, на который будут перенаправлять запросы пользователей.

  • weight — коэффициент, использующийся для неравномерного распределения нагрузки на реальные серверы.

  • mode — режим:

    • gate — режим Шлюз: для перенаправления трафика на виртуальный сервер используется маршрутизация.

    • masq — режим Маскарадинг: для перенаправления трафика на виртуальный сервер используется DNAT.

    • masq-snat — режим Маскарадинг с подменой IP-источника: режим аналогичен режиму Маскарадинг, но UserGate подменяет IP-адрес источника на свой.

Например: real_server(masq, 10.10.0.9:1812, 50).

ipvs_fallback

Настройка аварийного режима:

  • ipIP-адрес сервера.

  • port — порт сервера, на который будут пересылаться запросы пользователей.

  • mode — режим:

    • gate — режим Шлюз: для перенаправления трафика на виртуальный сервер используется маршрутизация.

    • masq — режим Маскарадинг: для перенаправления трафика на виртуальный сервер используется DNAT.

    • masq-snat — режим Маскарадинг с подменой IP-источника: режим аналогичен режиму Маскарадинг, но UserGate подменяет IP-адрес источника на свой.

Например: ipvs_fallback(masq, 10.10.100.100:1812).

monitor

Настройка мониторинга реальных серверов:

  • kind — тип проверки:

    • ping: проверка доступности узла с использованием утилиты ping.

    • connect: проверка работоспособности узла путём установления TCP-соединения на определённый порт.

    • negotiate: проверка работоспособности узла посылкой определенного HTTP- или DNS-запроса и сравнением полученного ответа с ожидаемым ответом.

  • service — необходимо указать (HTTP или DNS) при использовании проверки типа negotiate.

  • request — запрос необходимо указать при использовании проверки типа negotiate.

  • response — ожидаемый ответ; необходимо указать при использовании проверки типа negotiate.

  • interval — интервал времени, через который должна выполняться проверка.

  • timeout — интервал времени ожидания ответа на проверку.

  • max-failures — количество попыток проверки реальных серверов, по истечению которого сервер будет считаться неработоспособным и будет исключен из балансировки.

Например:

    monitor_kind(ping) \
    monitor_interval(60) \
    monitor_timeout(60) \
    monitor_failurecount(10) \

Для редактирования существующего правила балансировки нагрузки используется следующая команда:

Admin@nodename# set network-policy load-balancing tcp-udp <position> upl-rule

Команды для отображения информации о всех правилах балансировки TCP/UDP:

Admin@nodename# show network-policy load-balancing tcp-udp

Для отображения информации об определённом правиле балансировки TCP/UDP:

Admin@nodename# show network-policy load-balancing tcp-udp <position>

Пример создания правила балансировщика нагрузки с использованием UPL:

Admin@nodename# create network-policy load-balancing tcp-udp 1 upl-rule OK \
...src.zone = Trusted \
...url.address = 10.10.0.20 \
...url.port = 1812 \
...service = udp \
...scheduler(rr) \
...real_server((gate, 10.10.0.9, 50), (gate, 10.10.0.8, 50)) \
...name(tcpudp_balancer1) \
...enabled(true)
...
Admin@nodename# show network-policy load-balancing tcp-udp

% ----------------- 1 -----------------
OK \
    src.zone = Trusted \
    url.address = 10.10.0.20 \
    url.port = 1812 \
    service = udp \
    scheduler(rr) \
    real_server((gate, 10.10.0.9, 50), (gate, 10.10.0.8, 50)) \
    monitor_kind(ping) \
    monitor_interval(60) \
    monitor_timeout(60) \
    monitor_failurecount(10) \
    enabled(true) \
    id(cbed6ed7-901e-4641-83a1-a05f82dae177) \
    name(tcpudp_balancer1)

Для удаления существующего балансировщика нагрузки используется следующая команда:

Admin@nodename# delete network-policy load-balancing tcp-udp <position>

Настройка балансировщика reverse-прокси

Настройка правил балансировки reverse-прокси производится на уровне network-policy load-balancing reverse-proxy.

Для создания правила балансировки reverse-прокси:

Admin@nodename# create network-policy load-balancing reverse-proxy <position> upl-rule

Параметры правил балансировки нагрузки reverse-proxy:

Параметр

Описание

PASS

OK

Действие для создания правила с помощью UPL.

enabled

Включение/отключение правила:

  • enabled(yes) или enabled(true).

  • enabled(no) или enabled(false).

name

Название правила балансировки.

Например: name("RP balancer").

desc

Описание правила.

Например: desc("Test reverse-proxy balancing rule").

profile

Указание профилей серверов reverse-proxy, на которые будет распределяться нагрузка. Подробнее о создании и настройке серверов  reverse-proxy с использованием CLI в разделе Настройка серверов reverse-прокси.

Например, profile("Reverse proxy server1", "Reverse proxy server2").

Команда для редактирования параметров правила балансировки reverse-прокси:

Admin@nodename# set network-policy load-balancing reverse-proxy <position> upl-rule

Параметры, доступные для обновления, аналогичны параметрам, доступным при создании правила балансировки серверов reverse-прокси.

Команды для отображения информации о всех правилах балансировки reverse-proxy:

Admin@nodename# show network-policy load-balancing reverse-proxy

Для отображения информации об определённом правиле балансировки reverse-proxy:

Admin@nodename# show network-policy load-balancing reverse-proxy <position>

Пример создания правила балансировщика нагрузки reverse-proxy с использованием UPL:

Admin@nodename# create network-policy load-balancing reverse-proxy 1 upl-rule OK \
...profile("Reverse proxy server1", "Reverse proxy server2") \
...desc("Test reverse proxy balancing rule") \
...name(test_reversep1) \
...enabled(true)
...
Admin@nodename# show network-policy load-balancing reverse-proxy

% ----------------- 1 -----------------
OK \
    profile("Reverse proxy server1", "Reverse proxy server2") \
    desc("Test reverse proxy balancing rule") \
    enabled(true) \
    id("1ed892bb-26ee-4ab1-8a55-2f412ce8b55a") \
    name(test_reversep1)

Для удаления существующего правила балансировки нагрузки reverse-proxy используется следующая команда:

Admin@nodename# delete network-policy load-balancing reverse-proxy <position>
Настройка правил управления пропускной способностью

Настройка правил управления пропускной способностью производится на уровне network-policy traffic-shaping c использованием синтаксиса языка UPL. О структуре команд подробнее читайте в разделе Настройка правил с использованием UPL.

Для создания правила управления пропускной способностью используется следующая команда:

Admin@nodename# create network-policy traffic-shaping <position> upl-rule

Параметры правил управления пропускной способностью:

Параметр

Описание

PASS

OK

Действие для создания правила с помощью UPL.

enabled

Включение/отключение правила:

  • enabled(yes) или enabled(true).

  • enabled(no) или enabled(false).

name

Название правила пропускной способности.

Например: name("Traffic shaping rule example").

desc

Описание правила.

Для задания описания правила: desc("The example of traffic shaping rule configured in CLI").

bandwidth_pool

Полоса пропускания, например, bandwidth_pool("1 Mbps").

Подробнее о создании и настройке полос пропускания читайте в разделе Настройка полос пропускания.

scenario

Сценарий, который должен быть активным для срабатывания правила.

Для указания сценария: scenario = "Example of a scenario".

Подробнее о настройке сценариев смотрите в разделе Настройка сценариев.

rule_log

Запись в журнал информации о трафике при срабатывании правила. Возможны варианты:

  • rule_log(no) или rule_log(false) — отключить журналирование. Если при создании правила rule_log не указано, функция журналирования отключена.

  • rule_log(yes) или rule_log(true) — журналировать все сетевые пакеты без установки лимитов. Для установки лимитов необходимо указать число событий, записываемых в журнал за единицу времени (s — секунда; min — минута; h — час; d — день, нельзя установить лимит журналирования менее 5-ти пакетов в день) и максимальное количество пакетов, журналируемых на событие. Например, rule_log(yes, "3/h", 5) — включение журналирования с установкой лимитов: в журнал записывается 3 события в час; максимальное количество пакетов, журналируемых на событие равно 5.

  • rule_log(session) — журналировать начало сессии.

src.zone

Зона источника трафика.

Для указания зоны источника, например, Trusted: src.zone = Trusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

src.ip

Добавление списков IP-адресов или доменов источника.

Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

src.geoip

Указание GeoIP источника; необходимо указать код страны (например, src.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15.

user

Пользователи и группы пользователей, для которых применяется правило пропускной способности (локальные или LDAP).

Для добавления LDAP групп и пользователей необходим корректно настроенный LDAP-коннектор (о настройке LDAP-коннектора через CLI читайте в разделе Настройка LDAP-коннектора).

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

user = known 
user = "user"
user = "testd.local\\user1"
user = ("user", "testd.local\\user1")

dst.zone

Зона назначения трафика.

Для задания зоны назначения используется: dst.zone = Untrusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

dst.ip

Добавление списков IP-адресов или доменов назначения.

Для указания списка IP-адресов: dst.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов назначения: dst.ip = lib.url(); в скобках необходимо указать название URL-списка, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

dst.geoip

Указание GeoIP назначения; необходимо указать код страны (например, dst.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15.

service

Тип сервиса. Можно указать сервис или группу сервисов (подробнее читайте в разделах Настройка сервисов и Настройка групп сервисов).

Чтобы указать сервис: service = "service name"; для указания нескольких сервисов: service = (service-name1, service-name2, ...).

Чтобы указать группу сервисов: service = lib.service(); в скобках необходимо указать название группы сервисов.

application

Список приложений, для которых применяется данное правило. Доступно указание:

  • всех групп приложений: application = lib.category(All).

  • групп приложений: application = lib.applicationgroup(); в скобках необходимо указать название группы приложений.

  • категорий приложений: application = lib.category(); в скобках необходимо указать название категорий приложений.

time

Настройка расписания работы правила.

Для установки расписания: time = lib.time(); в скобках необходимо указать название группы календарей. Подробнее о настройке календарей читайте в разделе Настройка календарей.

Для редактирования правила управления пропускной способностью используется команда:

Admin@nodename# set network-policy traffic-shaping <position> upl-rule

Для просмотра всех созданных правил управления пропускной способностью используется команда:

Admin@nodename# show network-policy traffic-shaping

Для просмотра определенного правила управления пропускной способностью используется команда:

Admin@nodename# show network-policy traffic-shaping <position>

Пример создания правила управления пропускной способностью с использованием UPL:

Admin@nodename# create network-policy traffic-shaping 1 upl-rule OK \
...user = known \
...src.zone = Trusted \
...dst.zone = Untrusted \
...service = (HTTP, HTTPS) \
...time = lib.time("Working hours") \
...rule_log(session) \
...bandwidth_pool("1 Mbps") \
...name("Test traffic shaping rule") \
...desc("Test traffic shaping rule description") \
...enabled(true)
...
Admin@nodename# show network-policy traffic-shaping 1

% ----------------- 1 -----------------
OK \
    user = known \
    src.zone = Trusted \
    dst.zone = Untrusted \
    service = (HTTP, HTTPS) \
    time = lib.time("Working hours") \
    desc("Test traffic shaping rule description") \
    rule_log(session) \
    bandwidth_pool("1 Mbps") \
    enabled(true) \
    id(e63c34e6-af7f-4a4d-a29d-b51d4070655c) \
    name("Test traffic shaping rule")

Для удаления правила управления пропускной способностью используется команда:

Admin@nodename# delete network-policy traffic-shaping <position>