Qual é a melhor maneira de obter o nome de domínio PRECISE do endereço IP logado no log do iptables

1

Em iptables eu estou registrando certos endereços IP públicos ... digamos de sites visitados de diferentes estações de trabalho, dependendo do número da porta de destino ... Tudo isso não é realmente relevante para a pergunta, mas estou apenas afirmando aqui para que minhas metas tornar-se claro.

Agora eu quero analisar os dados ... Eu só tenho os endereços IP ... Qual é a melhor maneira de obter o nome de domínio. OK, eu sei que você pode usar o nslookup e dig, mas o nome do domínio exibido é possivelmente o registro A nos dados do DNS, que geralmente não é o nome de domínio que se está procurando ...

Eu sou um pouco confuso sobre os detalhes ... mas o que eu preciso é, por exemplo, alguém visita cnbc.com, eu olho para os endereços IP registrados e recebo todos os tipos de domínios de serviços da web da Amazon para o Facebook .com. O domínio mais próximo para o qual um IP é registrado foi nbcuni.com ...

Existe algum "serviço", API, software, solução de terceiros disponível para obter o nome de domínio reconhecível "mais próximo" de um determinado IP?

EDIT: Existe outro problema ... Os sistemas de monitoramento aparecem para lidar com eles. Os sistemas de proxy (conforme recomendado abaixo) não podem distinguir entre o URL especificado e o URL do conteúdo na página visitada. Ou eles podem? Qualquer URL visitada, expressamente conforme especificado no navegador ou indiretamente, qualquer URL cujo conteúdo seja exibido na página será exibido como URL visitado. Existe uma maneira de distinguir? Através de logs de proxy ou de outra forma?

    
por Sunny 27.04.2015 / 20:03

3 respostas

7

Não tenho certeza se tenho toda a idéia, mas como você está escrevendo sobre sites, acho que está usando uma ferramenta que não é exatamente adequada para a tarefa.

você está procurando por essa informação (o nome de domínio visitado) no nível errado: você deve ter um proxy e analisar seus registros para coletar essa informação.

Um proxy está "próximo" do cliente e tem as informações exatas e precisas que você está procurando.

Um proxy transparente seria capaz de reunir essas informações sem qualquer alteração na configuração do cliente.

    
por 27.04.2015 / 22:42
5

Você não pode determinar facilmente o que o usuário digitou na barra de URL do navegador usando apenas um log de endereço IP: não é possível saber se alguém que acessou 104.16.13.13 digitou aviation.stackexchange.com ou tex.stackexchange.com (o melhor que você pode determinar é que é um endereço IP CloudFlare).

Para obter as informações que você procura, você precisa fazer referência cruzada com as consultas em seu servidor DNS ao mesmo tempo ou capturar todo o pacote e procurar algo nos dados do protocolo (como uma solicitação HTTP) que divulga o nome do host. O último é trivial: basta acessar sites por meio de https ou algum outro transporte criptografado.

Dado um endereço IP, o melhor que você pode fazer é obter o registro de PTR de DNS reverso ( dig -x ou equivalente) ou o & netblock & informações do proprietário do netblock (via whois ), que você já rejeitou como inadequadas às suas necessidades.

    
por 27.04.2015 / 20:15
5

Você está lidando com esse problema na camada errada. Literalmente, camada 4 quando você deve usar a camada 7.

Não registre conexões TCP no iptables. Em vez disso, capture o tráfego HTTP e inspecione o cabeçalho do host nas solicitações que os clientes estão fazendo.

    
por 28.04.2015 / 03:06