Tentar encontrar o ofensor observando o volume de tráfego ao longo do tempo provavelmente será tarde demais. Lembre-se de que um usuário espera respostas da web em segundos. Limitar um usuário analisando o fluxo de tráfego provavelmente também será aplicado o limite por muito tempo após o usuário de navegação ter desistido.
Há algumas coisas que você pode fazer com o iptables (ver, por exemplo, hashlimit), mas seus usuários provavelmente perceberão a lentidão de qualquer maneira. Se você quiser garantir que todos recebam um compartilhamento, é preciso jogar priorizando o tráfego. Veja o comando tc. Por um tempo mais fácil, eu recomendo tcng. Independentemente do método usado, você precisará de alguns critérios para diferenciar o tráfego "ruim" do tráfego "bom" (além da quantidade).
No entanto, minha experiência é que roteadores bem-comportados (sejam eles linux boxen ou roteadores de nível corporativo) quase sempre fazem um trabalho razoável de priorizar o tráfego de tal forma que você não consegue um detalhamento total como o OP descreve. Antes de tentar fazer coisas extravagantes, eu tentava ver se havia algum hardware mal configurado ou projetado na rede. Minha presunção de culpa recai sobre roteadores ADSL, roteadores Cisco PIX antigos e switches baratos.