Como construir um dispositivo de conexão de rede? [fechadas]

2

Gostaria de criar um dispositivo de toque de rede para interceptar o tráfego entre o meu PC e o roteador. Imagine o pi raspberry ou dispositivo similar, rodando linux, tendo duas portas ethernet. Conecto-o entre o roteador e o computador, agindo como um simples "switch", transmitindo tráfego entre o roteador e o PC. Gostaria de interceptar esse tráfego, ou seja, monitorá-lo e registrar alguns dados quando os padrões forem correspondidos.

De preferência, seria ótimo se eu pudesse também modificar pacotes. Também, de preferência, seria ótimo se o meu dispositivo pudesse ser "invisível" na rede, ou seja, não fosse detectado como um dispositivo de rede entre o roteador e o PC. Mas se isso não for possível, tudo bem se for identificado como um switch de rede.

Eu entendo que este provavelmente seria um projeto não trivial, então não estou esperando receitas completas aqui. Estou procurando alguma orientação sobre por onde começar, quais possibilidades existem, etc.

A última vez que verifiquei se o Windows era tão restritivo em termos de rede que provavelmente seria impossível construir com o dispositivo Windows (independentemente de quantas portas Ethernet ele tivesse). O Linux, por outro lado, é mais capaz, mas algumas pessoas que eu perguntei disseram que isso poderia não ser possível sem uma programação muito séria do sistema (bagunçando o kernel, etc.). Minhas habilidades de codificação com o Linux são limitadas com programação Python de propósito geral (ou seja, não em nível de sistema).

Então ... como (se é que alguma) isso poderia ser feito? Qual arquitetura você pode propor para tal dispositivo? O que eu tenho que aprender em termos de programação de rede Linux para construir um projeto desse tipo? Em resumo ... com o que eu começo?

Sobre mim: Sou engenheiro de software sênior (.Net / Web Dev), com conhecimento em nível de desenvolvedor (ou seja, intermediário) de rede, alguma experiência com o Wireshark e ferramentas similares e experiência muito limitada com o Linux. / p>     

por Titan 15.02.2017 / 11:07

0 respostas