Вопрос

у меня настроено правило для отбрасывания пакетов udp/tcp с совпадающими строками.однако моя программа, которая захватывает пакет с помощью libpcap, все еще может видеть этот пакет.

Почему это/, какие должны быть правила iptable, чтобы отбрасывать пакеты до того, как их увидит libpcap?

Есть ли способ, помимо правил iptables, отбросить этот пакет до того, как его увидит libpcap/tcpdump?

Это было полезно?

Решение

Да, libpcap видит все пакеты. . Они захватываются перед обработкой сетевым фильтром.

Другие советы

Вы пытались изменить приоритет используемого вами перехватчика netfilter?если вы попытаетесь перехватить входящие пакеты с наивысшим приоритетом, он получит пакет раньше кода ядра сокета пакета, и это тот способ, который libpcap использует для захвата пакетов.

*Я предполагаю, что вы используете Linux*

РЕДАКТИРОВАТЬ:Libpcap использует разные способы захвата пакетов — в зависимости от операционной системы.в Linux он использует пакетный сокет, который реализован в коде ядра с использованием структуры netfilter.

У libpcap нет возможности видеть пакеты до netfilter, netfilter — это модуль ядра, который обрабатывает все пакеты до того, как они попадут в пользовательский режим, он может даже видеть пакеты до того, как их увидит ядро.Не могли бы вы объяснить дальше, объяснить?Возможно, libpcap также устанавливает перехватчики для netfilter, которые перезаписывают тот, что в iptables.Реальная проблема заключается в том, что поиск и определение того, какие перехваты установлены в netfilter, далеко не тривиален и может быть выполнен только в режиме ядра.Выясните, как libpcap получает пакеты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top