как динамически изменять фильтр в tcpdump

Я изменяю tcpdump для динамического изменения фильтра, который он использует для получения вывода.

в настоящее время tcpdump использует pcap_set_filter для фактической подготовки фильтра для входящих пакетов или исходящих пакетов, в которых заинтересован пользователь (делает ли это pcap_compile? я не уверен в этом), возможно ли из tcpdump динамически менять фильтр? в том смысле, что я хотел фильтровать пакеты на моем MAC-адресе, и я динамически меняю Mac по некоторым причинам, и теперь мой Mac изменился, в свою очередь, я должен сообщить tcpdump, чтобы изменить фильтр на новом Mac, как я могу это сделать?


person John    schedule 02.04.2013    source источник


Ответы (1)


можно ли из tcpdump динамически менять фильтр?

Да, он может вызвать pcap_setfilter() с новым фильтром (составленным из выражения фильтра pcap_compile()) на открытом им pcap_t, чтобы установить фильтр на новое значение.

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

в том смысле, что я хотел фильтровать пакеты на моем MAC-адресе, и я динамически меняю Mac по некоторым причинам, и теперь мой Mac изменился, в свою очередь, я должен сообщить tcpdump, чтобы изменить фильтр на новом Mac, как я могу это сделать?

Вам нужно будет не только изменить tcpdump для вызова pcap_compile() и pcap_setfilter() во время захвата трафика, вам также придется изменить его для получения сообщений из какого-либо источника, чтобы сообщить ему об изменении фильтра и указать, каким должен быть новый фильтр, и организовать чтобы это сообщение было отправлено ему при изменении MAC-адреса.

person Community    schedule 02.04.2013
comment
Спасибо, это сработало, я протестировал некоторые основные изменения, да, во второй части я собираюсь изменить pcap_loop, чтобы он принимал обработчик, который регистрируется из tcpdump и вызывается, когда приходит какое-либо уведомление от другого, который вызывает изменение mac-адреса! как насчет этого? или у тебя есть лучше? - person John; 02.04.2013
comment
@John, тебе удалось внедрить это расширение в TcpDump? :) Я столкнулся с той же проблемой сейчас и был бы благодарен за любую поддержку! - person Paweł Skorupiński; 11.10.2016