Eu suspeito que a melhor maneira de fazer isso em todo o sistema é usar um proxy HTTP. Você poderia então configurá-lo como um Proxy Transparente para forçar todas as conexões a usá-lo, mas é mais fácil ( e tem menos limitações) para configurar seus navegadores manualmente.
O principal motivo para fazer isso com um proxy, em vez de com o iptables, é para que ele não ofusque seu navegador. Usando o -j DROP, como sugerido em outra resposta, você está essencialmente descartando a conexão TCP por completo - o que significa que seu navegador provavelmente ficará lá esperando por uma resposta, até que ela expire, então finalmente mostrará a você página carregada, com janelas quebradas, faltando CSS, etc.
Ao usar um proxy, as solicitações pendentes não são descartadas. Elas são apenas enfileiradas até que haja espaço para continuar.
Provavelmente, a configuração mais simples e leve (que encontrei até agora) seria instalar o Tinyproxy e definir os MaxClients valor para o número máximo de conexões de saída desejadas.
Se você quiser usar o squid - talvez porque você goste de um exagero, ou talvez goste de seu cache ou outra fantasia Recursos impressionantes, o único limite de conexão de saída que vejo é em uma base per-peer. Mas isso ainda pode funcionar. Configure dois proxies - um como squid, um como qualquer outra coisa (talvez Tinyproxy, hehe) e configure o Tinyproxy como o único ponto do squid com a configuração max-conn configurada para o seu número máximo de conexões. Em seguida, diga ao squid para encaminhar todas as requisições através desse peer, definindo a opção never_direct.