NFQUEUE (Netfilter Queue) — модуль ядра и пользовательского режима, который используется в iptables для управления сетевыми пакетами. www.zenarmor.com
Процесс работы NFQUEUE включает следующие шаги: www.zenarmor.com
- Ядро заканчивает текущую цепочку nft и помещает пакет в связанный список. www.zenarmor.com Затем оно форматирует и отправляет сообщение nfnetlink программе пользовательского режима через сокет. www.zenarmor.com home.regit.org В сообщении содержится идентификатор пакета и любая информация, которую программа настроена получать (данные пакета и/или метаданные). www.zenarmor.com
- Программа пользовательского режима должна вернуть решение, которое сообщает ядру, следует ли принять или отклонить пакет. www.zenarmor.com
- Вердикт удаляет пакет из очереди: «отбросить» отбрасывает его, а «принять» направляет в следующую цепочку. www.zenarmor.com
- Пользовательский режим может также изменять содержимое пакетов или метаданные (например, метку пакета, метку контрека). www.zenarmor.com
NFQUEUE позволяет отправлять пакеты в отдельные и конкретные очереди. www.zenarmor.com
Этот механизм позволяет копировать сетевые пакеты в пользовательское пространство для обработки. habr.com Приложение, которое слушает соответствующую очередь, должно вынести вердикт относительно пакета (пропустить или отбросить). habr.com