Linux: Detecta conexão TCP em qualquer porta e executa algum código

1

Eu tive uma ideia para um projeto na noite passada e agora estou tentando encontrar soluções para implementá-lo.

Eu preciso de uma maneira de detectar um TCP / IP conectado a qualquer porta em uma máquina, e se uma conexão for detectada eu preciso executar algum código (de preferência um shell script) que obtém algumas informações como host remoto e porta conectada .

Além disso, quero redirecionar todos os pacotes de entrada para outra máquina exatamente como o NAT - mas com o script protegendo as conexões.

Eu acho que isso pode ser feito com algum firewall de magia negra. Infelizmente, eu não sou um wizzard neste tópico, então estou pedindo ajuda e / ou dicas de como conseguir algo assim.

    
por Malax 22.12.2011 / 10:34

2 respostas

1

Se você precisa apenas rastrear conexões TCP (não UDP), seu programa pode executar uma cópia de 'tcpdump' com um filtro para monitorar apenas pacotes com o conjunto de sinalizadores SYN.

Isso tornaria o seu shell script um monitor mais passivo, e não no caminho crítico dessas conexões. Em outras palavras, nenhuma funcionalidade de rede normal seria interrompida se seu programa parasse ou estivesse sobrecarregado de conexões.

    
por 22.12.2011 / 19:11
1

Eu não acho que seja permitido ou sábio executar um script de shell quando um pacote é comparado com uma regra de firewall.

No entanto, você pode ver os destinos iptables QUEUE e NFQUEUE . Eles podem passar um pacote para o espaço do usuário. Em seguida, você pode escrever seu próprio aplicativo para manipular esses pacotes da maneira que desejar. Claro, você tem que escrever as regras necessárias para passar apenas os pacotes interessantes para o seu aplicativo de espaço do usuário.

    
por 22.12.2011 / 11:22

Tags