Служба отслеживания соединений
Служба отслеживания соединений «Conntrack» в ARMA Стена предназначена для отслеживания сетевых соединений и используется для работы межсетевого экрана, NAT и других сетевых функций, требующих информации о состоянии соединений.
Служба отслеживания соединений, как и вся система Netfilter, функционирует в ядре операционной системы. В контролируемой ядром области оперативной памяти хранится актуальная информация о соединениях. Ядро не обеспечивает резервирование, но предоставляет возможности для загрузки и выгрузки информации о соединениях в режиме реального времени.
Conntrack ведёт таблицу состояний соединений, содержащую информацию о каждом активном соединении, включая IP-адреса, порты, протоколы и состояние сессии.
ARMA Стена имеет возможность синхронизации отслеживаемых соединений между системами кластера. За эту работу отвечает служба «conntrackd», которая работает вне ядра. В конфигурации ARMA Стена эта служба доступна как «conntrack-sync» (см. раздел «Синхронизация отслеживаемых соединений»).
Основные возможности:
отслеживание TCP, UDP, ICMP и других протоколов;
хранение состояния соединений;
управление временем жизни соединений;
масштабирование таблицы соединений;
настройка поведения для различных протоколов;
интеграция с firewall и NAT.
Служба отслеживания соединений «Conntrack» в ARMA Стена включена по умолчанию.
Основные настройки
Для настройки параметров отслеживания соединений используются следующие команды конфигурационного режима:
Указать размер таблицы ожидаемых соединений:
set system conntrack expect-table-size <exp-size>где <exp-size> – размер таблицы ожидаемых соединений. Возможно указать значение в диапазоне от «1» до «50000000». По умолчанию используется значение «2048».
Включить учёт трафика по соединениям:
set system conntrack flow-accounting
Задать размер хеш-таблицы отслеживаемых соединений:
set system conntrack hash-size <hash-size>где <hash-size> – размер хэш-таблицы отслеживаемых соединений. Возможно указать значение в диапазоне от «1024» до «50000000». По умолчанию используется значение «524288».
Создать правило для исключения определённого трафика из механизма отслеживания соединений:
set system conntrack ignore <ipv4 | ipv6> rule <rules-number> <filter-params>где:
<ipv4 | ipv6> – для какого стека действует правило.
<rules-number> – уникальный номер правила. Возможно указать значение в диапазоне от «1» до «999999».
<filter-params> – параметры, исходя из которых будет выполняться исключение из отслеживания.
Для автоматического дополнения вводимых команд и параметров применяется клавиша «Tab». При частичном вводе команды и нажатии «Tab» система предлагает возможные варианты завершения.
admin@ngfwos# set system conntrack ignore ipv4 rule 100 Possible completions: description Description > destination Destination parameters inbound-interface Interface to ignore connections tracking on protocol Protocol > source Source parameters > tcp TCP options to match
Задать параметры логирования событий для механизма отслеживания соединений:
set system conntrack log <logging-params> <value>где:
<logging-params> – параметр логирования;
<value> – значение параметра.
Возможно указать следующие параметры логирования:
«event» – задаёт, какие события conntrack логируются. Возможно указать следующие типы событий:
«new» – создание нового соединения;
«update» – изменение состояния соединения;
«destroy» – удаление соединения.
Для каждого из событий возможно дополнительно указать протокол:
«tcp»;
«udp»;
«icmp»;
«other».
«log-level» – уровень логирования. Возможно указать следующие уровни:
«info»;
«debug».
«queue-size» – размер внутренней очереди сообщений. Возможно указать значение в диапазоне от «100» до «999999».
«timestamp» – включить временные метки, основанные на потоке данных.
Включить модуль для отслеживания соединений определенного протокола:
set system conntrack modules <protocol>где <protocol> – протокол для отслеживания. Возможно указать следующие протоколы:
«ftp»;
«h323»;
«log»;
«nfs»;
«pptp»;
«sip»;
«sqlnet»;
«tftp».
Примечание
Модули используются для корректной обработки сложных протоколов, открывающих дополнительные соединения, и включены в системе ARMA Стена по умолчанию. В отдельных случаях, при использовании conntrack, SIP-телефония может работать некорректно из-за особенностей обработки отдельных потоков (SIP/RTP). Если в работе SIP-телефонии наблюдаются проблемы, отключите SIP-модуль с помощью следующей команды конфигурационного режима:
delete system conntrack modules sipВ случае, если отключение SIP-модуля не привело к устранению проблем с SIP, необходимо отключить отслеживание состояний сетевых соединений с помощью следующей команды конфигурационного режима:
delete system conntrackЕсли в системе ARMA Стена настроена и используется СОВ, для корректной работы SIP рекомендуется использовать режим pass-flow для глобальной конфигурации действий с пакетами и потоками (см. раздел «Команды настройки Suricata»).
Задать размер таблицы отслеживания соединений:
set system conntrack table-size <table-size>где <table-size> – размер таблицы. Возможно указать значение в диапазоне от «1» до «50000000». По умолчанию используется значение «4194304».
Задать параметры отслеживания TCP-соединений:
set system conntrack tcp <tcp-track-params> <value>где <tcp-track-params> – параметры отслеживания. Возможно настроить следующие параметры:
«half-open-connections» – максимальное количество полуоткрытых TCP-соединений (состояние SYN_SENT / SYN_RECV). Возможно указать значение в диапазоне от «1» до «2147483647». По умолчанию используется значение «512».
«loose» – включить режим «гибкого» отслеживания TCP-соединений. Возможно указать значения «enable» и «disable». По умолчанию используется значение «enable».
«max-retrans» – максимальное количество ретрансляций TCP-пакетов без ACK, прежде чем conntrack посчитает соединение некорректным. Возможно указать значение в диапазоне от «1» до «255». По умолчанию используется значение «3».
Задать время жизни записей в таблице отслеживаемых соединений:
set system conntrack timeout <timeout-params> <value>где <timeout-params> – параметры тайм-аута для записей в таблице. Возможно настроить следующие параметры:
«custom» – задать пользовательское правило для тайм-аута.
Для автоматического дополнения вводимых команд и параметров применяется клавиша «Tab». При частичном вводе команды и нажатии «Tab» система предлагает возможные варианты завершения:
admin@ngfwos# set system conntrack timeout custom ipv4 rule 10 Possible completions: description Description > destination Destination parameters inbound-interface Interface to apply custom connection timers on protocol Customize protocol specific timers, one protocol configuration per rule > source Source parameters«icmp» – ICMP тайм-аут в секундах. Возможно указать значение в диапазоне от «1» до «21474836». По умолчанию используется значение «10».
«other» – общее время ожидания соединения в секундах. Возможно указать значение в диапазоне от «1» до «21474836». По умолчанию используется значение «60».
«tcp» – тайм-аут для различных стадий TCP-соединений. Возможно указать значение в диапазоне от «1» до «2147483647» для следующих стадий:
«close» – закрытие соединения (по умолчанию 10 секунд);
«close-wait» – ожидание закрытия со стороны приложения (по умолчанию 20 секунд);
«established» – активное соединение (по умолчанию 600 секунд);
«fin-wait» – соединение закрывается, FIN отправлен (по умолчанию 30 секунд);
«last-ack» – последний ACK перед закрытием (по умолчанию 30 секунд);
«syn-recv» – сервер получил SYN и ответил (по умолчанию 30 секунд);
«syn-sent» – клиент отправил SYN, начало соединения (по умолчанию 60 секунд);
«time-wait» – ожидание перед окончательным закрытием (по умолчанию 60 секунд).
«udp» – тайм-аут для UDP-соединений. Возможно указать значение в диапазоне от «1» до «2147483647» для следующих параметров UPD-соединений:
«other» – общий тайм-аут UDP в секундах (по умолчанию 30 секунд);
«stream» – время ожидания для «потокового» UDP-соединения в секундах (по умолчанию 60 секунд).
Мониторинг состояния
Показать статистику работы системы отслеживания соединений:
show conntrack statistics
Вывести таблицу службы отслеживания состояния для протокола IP:
show conntrack table ipv4|ipv6
В случае отсутствия записей об активных соединениях в таблице и появления предупреждения, это указывает на то, что служба отслеживания состояния не активирована. Для её активации необходимо создать правило трансляции NAT или правило МЭ.