Ferramentas não administrativas relacionadas à rede

2

Eu sei que existem ferramentas para inspecionar pacotes (por exemplo, wireshark) ou para simular latência / perda de pacotes (por exemplo, netem), mas todos parecem exigir permissões administrativas para inspecionar / modificar pacotes.

Estou procurando algo que possa interceptar pacotes para um único aplicativo e ser utilizável por um usuário padrão (não raiz).

Eu gostaria de algum tipo de ferramenta valgrind para rede, onde você a usa para envolver seu aplicativo e intercepta solicitações de rede para inspecioná-las / modificá-las.

Meu principal caso de uso é permitir que os alunos usem essas ferramentas nos computadores das universidades de maneira simples (ou seja, sem a necessidade de máquinas virtuais ou suporte dos administradores).

Essas ferramentas existem? Caso contrário, o que os impede de realmente existir em primeiro lugar?

Nota: ferramentas como setcap , que precisam ser configuradas pelos administradores do sistema e podem conceder muitos poderes aos usuários (por exemplo, inspecionar todos os pacotes, e não apenas aqueles gerados por seus aplicativos) não são adequadas.

Editar : OK, depois de algumas pesquisas, descobri o truque LD_PRELOAD , que pode ser usado como invólucro de um homem pobre para interceptar funções específicas da biblioteca (por exemplo, connect , sendto , etc.) e contar / modificar pacotes. Aparentemente, a razão pela qual não há tantas ferramentas não-raiz com base nisso é porque:

  • não é útil para fins de segurança (pode ser facilmente contornado) e
  • a maioria das pessoas durante atividades úteis com a rede já precisa de acesso à raiz, portanto, fora de aplicativos muito específicos e adaptados para o aprendizado, não há demanda real.

Mas isso é tecnicamente viável, no caso de qualquer aluno curioso estar disposto a desenvolver essas aplicações.

Outra técnica seria codificar um plug-in valgrind para lidar com isso e usar o valgrind para executar o programa. Mas parece muito exagerado, então nenhuma pessoa sã fez isso.

Alguém mais experiente do que eu pode confirmar se minhas declarações anteriores estão corretas?

    
por anol 02.05.2014 / 20:04

1 resposta

0

Supondo que você esteja querendo ver os pacotes TCP / IP, a resposta curta é que você precisa ter acesso root para inspecionar os pacotes, porque os pacotes reais são gerados pelo kernel, não pelo aplicativo.

    
por 02.05.2014 / 21:57