16 октября 2026
ID 316389
Как приложение перехватывает трафик
Приложение может использовать в своей работе один из двух режимов перехвата сетевого трафика: eBPF или iptables. Режим iptables выбран по умолчанию.
Параметр неприменим для устройств с процессором Эльбрус.
О перехвате сетевого трафика eBPF
В режиме eBPF приложение создает свое отдельное сетевое пространство имен (network linux namespace), куда перенаправляет сетевые пакеты с помощью eBPF-программ, привязанных к очередям tc (linux traffic control) локальных сетевых интерфейсов. Далее перенаправленный сетевой трафик проходит анализ в соответствии с активными сетевыми задачами и после этого возвращается на исходный сетевой интерфейс.
Для обмена данных между сетевыми пространствами имен используются пары виртуальных сетевых интерфейсов veth (каждый конец пары находится в своем сетевом пространстве имен):
- Пара
kesl_in – kesl_worm_inпередает сетевой трафик входящих соединений. - Пара
kesl_out – kesl_worm_outпередает сетевой трафик исходящих соединений.
Через эти пары интерфейсов сетевой трафик передается на проверку из пространства имен по умолчанию в пространство имен, созданное приложением, и через них же возвращается обратно после анализа.
Сетевой трафик попадает на эти интерфейсы с других сетевых интерфейсов в системе, только если приложение запущено и включен сетевой перехват. Они не могут использоваться для передачи данных по сети между удаленными устройствами.
О перехвате сетевого трафика iptables
В режиме iptables перехват осуществляется с помощью механизма ядра tproxy.
В цепочке PREROUTING таблицы mangle создаются соответствующие правила, которые перенаправляют трафик на специальный порт, открытый приложением. Приложение также добавляет дополнительные правила в различные таблицы сетевого экрана операционной системы, предназначенные для перенаправления пакетов в tproxy. Сетевой перехватчик приложения встраивается между клиентом и сервером, устанавливая с каждым из них отдельное соединение, проверяет и передает трафик между ними.
Перехватываемые входящие и исходящие соединения маркируются отдельными метками, которые вы можете изменять в конфигурационном файле kesl.ini.
Для исходящих соединений вводятся дополнительные правила маршрутизации, которые перенаправляют исходящий трафик для перехватываемых портов на интерфейс loopback в tproxy.
Выбор режима перехвата сетевого трафика
Как выбрать режим перехвата сетевого трафика в Web Console
Как выбрать режим перехвата сетевого трафика в командной строке
Особенности и ограничения
- Для изменения режима перехвата трафика требуется перезапустить приложение. Во время перезапуска происходит разрыв установленных сетевых соединений.
- Если приложение не смогло использовать режим eBPF для перехвата сетевого трафика, будет использован режим iptables.
, сохраните внесенные изменения.