AFAIK, a NIC recebe todos os pacotes do fio em uma rede local, mas rejeita os pacotes cujo endereço de destino não é igual ao seu ip.
Quero desenvolver um aplicativo que monitore o uso da Internet pelos usuários. Cada usuário possui um endereço IP fixo.
Eu e algumas outras pessoas estamos conectados a umDES-108 Switch de desktop não gerenciado Fast Ethernet de 8 portas
Como dito anteriormente, quero capturar todos os tráfegos de todos os usuários, não apenas os pacotes que pertencem a mim.
Como devo forçar minha NIC ou outros componentes a receber todos os pacotes?
Responder1
AFAIK, a NIC recebe todos os pacotes do fio em uma rede local, mas rejeita os pacotes cujo endereço de destino não é igual ao seu ip.
Correção: rejeita aqueles pacotes cujo destinoMACendereço não é igual ao seuEndereço MAC(ou multicast ou quaisquer endereços adicionais em seu filtro.
Os utilitários de captura de pacotes podem colocar trivialmente o dispositivo de rede em modo promíscuo, o que significa que a verificação acima é ignorada e o dispositivo aceita tudo o que recebe. Na verdade, este é geralmente o padrão: com tcpdump
, você deve especificar a -p
opção paranãofaça isso.
A questão mais importante é se os pacotes que você está interessado estão sendo transportados pela rede até sua porta de detecção. Como você está usando um switch Ethernet não gerenciado, é quase certo que eles não estejam. O switch está decidindo remover pacotes que não pertencem a você da sua porta antes que seu dispositivo de rede possa vê-los.
Você precisa se conectar a uma porta de espelhamento ou monitoramento especialmente configurada em um switch Ethernet gerenciado para fazer isso.
Responder2
No início dos hubs Ethernet (não dos switches), os pacotes enviados estão disponíveis para todos os hosts na sub-rede, mas os hosts que não são o destinatário pretendido devem ignorá-los.
Obviamente, não demorou muito para as sub-redes saturarem, então a tecnologia de switch nasceu para resolver os problemas, e uma das coisas que eles fizeram foi fazer com que o switch de rede roteasse apenas os pacotes destinados àquele host para aquela porta (mais o tráfego de transmissão de Andy). ).
Isso complica o monitoramento/detecção de rede porque você só pode detectar pacotes que são para o seu host. Isso foi considerado bom do ponto de vista de segurança, mas do ponto de vista de monitoramento de rede não tão bom. Para fazer o monitoramento de rede funcionar, os fornecedores implementam um recurso chamado espelhamento de porta. Isso deve ser configurado no switch de rede, e o link abaixo deve apontar a direção certa para produtos D-link. Você o encontrará em algum lugar do software de gerenciamento de switches ou da interface de administração da web. Se você não encontrar esses recursos, a funcionalidade poderá não ser fornecida nesse dispositivo específico.
Responder3
Primeiro você precisa mudar sua NIC para o modo promíscuo. Vamos supor que sua interface NIC seja eth0.
root@linux#ifconfig eth0 promesc
Se você estiver em uma rede de switch, seu sniffing será reduzido ao domínio de colisão conectado à porta do switch. Você pode executar macof
para sobrecarregar a tabela de encaminhamento do switch.
root@linux#macof -i eth0
Então você pode usar wireshark
ou tcpdump
para capturar todo o tráfego.
root@linux#tcpdump -i eth0 -w outputfile
Se você não estiver em uma rede comutada, basta ativar o modo promíscuo e usar o tcpdump
.
Responder4
Você está reinventando a roda.
Supondo que você tenha uma rede simples com clientes conectados a switches, com um gateway padrão para a Internet, você só precisará monitorar nesse dispositivo de gateway padrão. Este será um ponto de estrangulamento para mostrar todo o tráfego entre um cliente LAN e a Internet.
Presumo que o tráfego de cliente LAN para cliente LAN não seja de interesse, porque com todos os endereços IP dentro da mesma sub-rede IP, o tráfego local não atinge o gateway padrão.
Se você realmente deseja ver todo o tráfego, cada usuário precisa estar em sua própria rede IP e o tráfego para as outras redes é feito através do gateway padrão. Você pode alocar um /28 para cada pessoa e elas podem ter 14 IPs para si.
Seu roteador doméstico comum não aguenta muito disso, você precisará explorar uma distribuição de firewall dedicada. Pessoalmente, o pfsense seria minha preferência, mas há muitas opções.