Счётчик межсетевого экрана увеличивается, когда пакет совпадает с правилом, и делает это, не сохраняя пакет. Этого достаточно, чтобы ответить на первый вопрос в большинстве расследований отбрасывания: дошёл ли поток до этого правила вообще. Запись полезной нагрузки отвечает на другой вопрос и собирает всё остальное, что пересекает интерфейс, пока она работает. Начните со счётчика и переходите к журналированию метаданных только тогда, когда счётчик неоднозначен.

Счётчики отвечают на первый вопрос

У каждого правила, которое может совпасть, есть счётчик, и его чтение до и после теста говорит, дошёл ли трафик. Это сравнение двух чисел, а не архив, и оно ничего не стоит в хранении или раскрытии.

Читайте счётчики инструментом, которому принадлежат правила:

iptables -L FORWARD -v -n --line-numbers
nft list ruleset

Дельта — это доказательство. Правило, счётчик которого не двигается, никогда не видело поток, что указывает на более раннюю границу: неправильный интерфейс, неправильная таблица или маршрут, который никогда не отправлял пакет туда. Правило, счётчик которого двигается и которое всё равно отбрасывает, говорит, что политика делает то, для чего была написана.

Чего счётчик не может сказать

Счётчик даёт число, а не причину. Он не может отличить пакет, совпавший по адресу, от пакета, совпавшего по порту, и не может сказать, какое из двух похожих правил поймало поток. Он также не может сказать, был ли пакет отброшен, отклонён или принят и затем потерян, если вы не прочитаете правило, которому принадлежит счётчик.

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

Журналирование полезной нагрузки отвечает на другой вопрос и отвечает на него обо всех на интерфейсе.

Журналирование метаданных с узким охватом

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

Избегайте включать журналирование полезной нагрузки или неограниченное журналирование пакетов только потому, что такая функция существует. Урезанный захват тоже не свободен от нагрузки автоматически, поскольку размеры заголовков и раскладка пакетов различаются, поэтому внешне малая длина снимка всё ещё может нести байты приложения.

Если нужно захватывать, захватите один поток, на ограниченное время, с наименьшей длиной снимка, которая отвечает на ваш вопрос.

Сопоставьте один свежий запрос

Создайте безвредный трафик, следующий реальному маршруту клиента, затем сравните соответствующие счётчики до и после. Локальный тест на шлюзе может полностью пропустить правило пересылки, потому что пакет никогда не идёт путём пересылки. Установленная сессия тоже может соответствовать другой обработке состояния, чем новое соединение, поэтому долгоживущий поток не заменяет свежий.

Ограничьте окно по времени и запишите его. Между двумя указанными минутами, с этого адреса клиента, к этому назначению по этому протоколу — это диагноз. Где-то сегодня утром — это поиск.

Один поток, одно окно, одна граница — единица прогресса здесь.

Уберите за собой и сохраните только выдержку

Удалите временное диагностическое правило через владеющую конфигурацию, как только расследование закончится. Узкое правило журналирования, оставленное на месте, становится непреднамеренной системой записи, и через полгода никто не помнит, зачем оно существует.

Храните исходные записи приватно, когда этого требует политика, и делитесь проверенной минимальной выдержкой вместо всего захвата. Адреса, идентификаторы учётных записей и внутренняя топология чувствительны даже при отсутствии нагрузки. Относитесь к выдержке как к документу с владельцем. Скрывайте всё, что не нужно диагнозу.

Цель — конкретная отказавшая граница для конкретного запроса. Всё, что создаёт полный архив всех, кто пользуется VPN, вышло за пределы диагностики и начало другой проект. Прежде чем что-то добавлять, посмотрите в документации платформы по журналированию, что она записывает по умолчанию.

Похожие статьи