nterceptando / redirecionando pacotes TCP SYN para o programa C ++ no lin

Estou tentando encontrar a maneira mais fácil de interceptar pacotes TCP SYN enviados pelo meu computador em um programa c ++. Existem algumas opções que eu conheço. Um seria monitorar todo o tráfego e apenas trabalhar seletivamente com os pacotes SYN sem fazer nada com o resto. Outra opção que me deparei foi usar um utilitário de filtragem de pacotes que encaminhará os pacotes SYN para o meu programa. Alguém me sugeriu usar netfilter para o mesmo

Eu queria saber se existem outras opções ou devo investigar o netfilter. Além disso, qualquer indicação sobre como fazer isso com o netfilter seria úti

EDIT: desejo interceptar o pacote SYN e talvez seja necessário modificá-lo (redirecionar para outro destino, alterar a porta de destino etc.) antes de reiniciá-lo na rede

Edit: eu era capaz de fazer isso usando uma combinação de iptables e libnetfilter_queue. Eu usei o ipfilter para redirecionar todos os pacotes TCP SYN para uma fila específica (isso estava usando um comando simples)
Em um programa em C, pude usar a API libnetfilter_queue para acessar os pacotes na fila, analisá-los e reiniciá-los de volta à red

questionAnswers(2)

yourAnswerToTheQuestion