Программирование libnetfilter_queue, как я могу узнать, какая программа отправляет пакет? - PullRequest
0 голосов
/ 03 января 2012

Я пытаюсь сделать брандмауэр прикладного уровня для Linux, но пока я могу только говорить такие вещи, как IP-адрес, номер порта.

Можно ли узнать, какая программа отправляет пакет?Если мне не нужно размещать модуль ядра.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 января 2012

Я думаю, что возможно использовать метку сетевого фильтра на пакете (в правиле, которое выполняется до NFQUEUE) и получить его с помощью nfq_get_nfmark.Я не пробовал и не знаю, сработает ли это.

0 голосов
/ 03 января 2012

Не сейчас.Три случая:

  • input paath: Поиск сокета еще не был выполнен к тому времени, когда xtables запускает
  • forward path: очевидно, что локального сокета
  • нет(локальный) выходной путь: ни информация о процессе, ни информация о сокете не передаются в nf_queue, хотя был предложен патч , но он не получил особого внимания.
...