Não faça isso com o Squid: você precisa de controle para tudo, não apenas para HTTP na porta 80.
A resposta requer o iptables com a opção '--quota', que implementa cotas de rede diminuindo um contador de bytes com cada pacote. O argumento de "--quota" é um valor em bytes.
Deve haver uma cadeia para cada usuário. Primeira regra da cadeia conta uma cota de 13 GB para pacotes de 192.168.0.2 e aceita o pacote se estiver abaixo da cota:
iptables -A INPUT -p tcp -s 192.168.0.2 -m quota --quota 13958643712 -j ACCEPT
Segunda regra da cadeia classifica os pacotes com mais de uma cota em uma classe tc de sua escolha:
iptables -A INPUT -p tcp -j CLASSIFY --set-class 1:12
Em seguida, é a forma clássica de tráfego: link
É claro que você precisa usar a alocação de IP estático ou garantir que o DHCP aloque endereços fixados pelo endereço MAC do dispositivo - e você precisa bloquear todos os endereços, exceto os identificados dos dispositivos pertencentes a um dos três usuários.
A propósito, você menciona que "quando 2 pessoas navegam na Internet, devem obter 1 Mbps cada, e quando 3 pessoas acessam, elas devem obter 2Mbps divididas por 3", mas você pode fazer melhor do que isso quando configura seu hierarquia de classes de tráfego: sua exigência deve ser "quando duas pessoas navegam na internet não devem ter menos de 1 Mbps cada, e quando três pessoas acessam, elas não devem ter menos que 2 Mbps dividido por 3" para que cada uma possa obter mais se as outras pessoas usarem menos do que o rendimento garantido ... E tc deixa você fazer isso!
Como o seu roteador é suportado pelo openwrt e pelo dd-wrt, você tem todas as ferramentas que precisa!