Como posso registrar o conteúdo do pacote OpenVPN?

2

Estou projetando uma ferramenta de desenvolvedor que analise e depure conexões de rede arbitrárias, mas quero fornecê-la como um serviço em vez de software para ser instalado localmente.

Idealmente, gostaria de salvar todos os pacotes de entrada e saída por usuário em um banco de dados.

Por exemplo:

  1. O desenvolvedor conecta a máquina que está executando seu software à VPN.
  2. O desenvolvedor então executa seu software, que pode se conectar a hosts arbitrários.
  3. O tráfego é roteado pela VPN, onde é registrado.
  4. O desenvolvedor pode acessar os registros dessa sessão.

Estou com dificuldade em descobrir como abordar o terceiro passo.

Eu li o manual, procurei na web e procurei o Server Fault, mas suspeito que estou perdendo um pedaço do quebra-cabeça em algum lugar. Preciso de uma ferramenta adicional para farejar a interface virtual ou o OpenVPN pode lidar com isso de alguma forma?

    
por Jim 05.04.2013 / 19:02

3 respostas

2

O OpenVPN por si só não fareja nada, mas você pode usar ferramentas de busca padrão.

Se você configurar o OpenVPN para operar em modo de túnel, a conexão entre o host do aplicativo e seu servidor aparecerá em uma interface virtual (com um nome como tun0 em hosts semelhantes a unix) com seu próprio endereço IP em cada lado. Do ponto de vista do aplicativo, seu servidor aparecerá como se estivesse fisicamente na mesma rede do host do aplicativo e agindo como um roteador, portanto, qualquer ferramenta de detecção que funcione na interface de rede normal para obter os dados de que você precisa vai fazer.

Eu faria mais ou menos algo da seguinte forma

  • O usuário deve se conectar à VPN (é claro que o OpenVPN precisa ser configurado para rotear todo o tráfego através do servidor VPN).
  • No lado do servidor, configure um gancho que registre o horário da conexão, o usuário e o endereço IP que ele está usando
  • (opcionalmente) no lado do servidor, configure outro gancho na desconexão que registre o evento.

Enquanto isso, tenha um programa sniffing em execução no dispositivo virtual VPN que capture continuamente um pacote da interface, examine o endereço remoto, combine-o com a lista atual de usuários e salve-o no banco de dados. Provavelmente será uma combinação de uma ferramenta padrão de sniffing para extrair o pacote da interface de rede e uma ferramenta personalizada que analisa o pacote, extrai as informações de que você precisa e as salva em algum lugar.

    
por 14.04.2013 / 02:06
1

Você precisará farejar o tráfego quando ele sair da interface do OpenVPN TUN ou TAP no computador que está atuando como o ponto de extremidade da VPN. Não há mágica aqui (ou pelo menos nada que eu possa pensar). Uma interface, é uma interface, é uma interface.

O OpenVPN não oferece funcionalidade nativa para o sniffing de pacotes, mas existem muitas ferramentas criadas para esse propósito, como o tcpdump ou o tshark / wireshark.

    
por 10.04.2013 / 22:22
0

Como o OpenVPN se encaixa na foto, realmente?

Eu tenho uma vaga sensação de que você lê em algum lugar que o Linux suporta interfaces de rede "virtuais", cujos tipos são chamados de "TUN" e "TAP" (para interfaces de estilo IP de túnel e Ethernet, respectivamente), então você pesquisei e a pesquisa apareceu no OpenVPN, que por acaso nomeia os tipos de suas interfaces da mesma maneira (porque eu acredito que ele usa o mesmo maquinário de kernel no Linux).

Acredito que, na verdade, você está cuidando da manipulação direta dessas interfaces virtuais que permite criar suas próprias interfaces de rede, que passam efetivamente todo o tráfego que passa por elas através de seu aplicativo de espaço do usuário.

    
por 05.04.2013 / 20:42