Filtrando o tráfego de rede com um aplicativo

1

Estou tentando criar um sistema para filtrar determinados tipos de tráfego da Internet em uma rede. Basicamente, eu gostaria de poder inspecionar os pacotes que são destinados à internet e escolher entre deixá-los passar ou simplesmente descartá-los (pense em pacotes UDP).

As regras para decidir são bastante complexas e não podem ser escritas como simples regras de firewall. Eu gostaria de escrever um programa para fazer essa determinação.

Eu construí um sistema Linux e estou usando arpspoof para garantir que todo o tráfego da rede flua através deste sistema. Eu sei que eu posso definir / proc / sys / net / ipv4 / ip_forward para 0 ou 1 para bloquear todo o tráfego seja encaminhado ou permitindo que tudo passe. Eu também posso escrever regras de firewall para fazer coisas simples.

Como obtenho todo o tráfego para passar por um programa que escrevi para decidir se os dados devem ser encaminhados ou descartados? Que tipos de ferramentas ou sistemas devo estar olhando?

    
por Sander Smith 31.10.2017 / 16:30

1 resposta

1

# iptables -A PREROUTING -t nat -j NFQUEUE --queue-num 0

Em seguida, escreva seu próprio programa de espaço do usuário. link

Mas acho que o netfilter já tem todos os recursos que você deseja; você pode escrever regras muito complexas com iptables / nftables .

    
por 31.10.2017 / 16:47