Como faço para limitar o tráfego em uma base por porta (Ubuntu Server)?

1

Eu quero configurar um sistema de datacap para um servidor no qual estou executando um proxy.

Não estou interessado em limitar a largura de banda.

Eu só quero limitar a porta para x GB por mês / semana / dia, etc. Todo o meu googling retornou dados sobre o afogamento.

O servidor é uma máquina Ubuntu. Apenas uma caixa normal.

Os clientes se conectam a ele por meio de um aplicativo sobre o qual não tenho controle. O servidor é um servidor proxy.

O servidor aceita conexões nas portas 2000, 3000, 4000 etc. Cada porta está vinculada a uma conta de usuário.

Eu quero parar de aceitar conexões por porta quando o limite de dados for atingido.

PS: Quando digo porta, quero dizer o número da porta (0-65535)

Obrigado.

    
por Olufon 15.03.2017 / 16:34

1 resposta

0

Existem várias formas alternativas de implementar um sistema de quotas de tráfego.

Acho que todos envolvem pelo menos algum desenvolvimento de script / software. É muito fora do escopo para ajudá-lo com isso aqui. No entanto, podemos apontar você na direção geral.

No termo geral, isso envolve a contabilização de alguma forma do tráfego usado, e após o tráfego x, modificando a configuração do squid rapidamente ou aplicando regras de firewall nos IPs de origem dos clientes. Entretanto, esteja ciente de que o bloqueio pode criar problemas no nível aplicacional , pelo menos, se você bloqueá-los completamente .

Existem várias maneiras de fazer essa contabilidade.

No lado do linux, você também pode:

  • analisa logs do squid para o tráfego usado por usuário;

  • crie regras de firewall nas portas que o cliente chega e contabilize o tráfego usado (provavelmente mais fácil). consulte Estatísticas de tráfego por porta de rede . Apenas esteja ciente de que uma reinicialização do servidor redefine as estatísticas do iptable, portanto, seria melhor salvá-las em um banco de dados SQL. (em uma reinicialização controlada talvez o iptables salva as estatísticas de tráfego, no entanto você pode ter uma falha ou queda de energia).

No lado da infra-estrutura, você também pode capturar fluxos de rede em um roteador pelo qual eles passam se o seu equipamento o suportar . Existem soluções de código aberto para usar fluxos de rede, mas, novamente, envolve algum desenvolvimento de script / software. A solução será mais profissional, mas também mais difícil de implementar.

Novamente no lado da infra-estrutura, uma das outras maneiras de fazer isso é capturar o tráfego de dados SNMP de uma porta de switch do seu lado para onde eles passam.

Escusado será dizer que, se estiver a fazê-lo com netflows ou SNMP, num futuro remoto, se utilizar apenas redes, e não utilizadores como fonte de tráfego, provavelmente poderá ficar sem o proxy e apenas bloquear o switch portas quando a cota mensal é usada.

Aviso:

  • Eu costumava administrar um ISP em Moçambique;
  • Eu usei dados de fluxo de rede dos meus roteadores de borda que estavam conectados à Internet;
  • quando o cliente excede a cota mensal, o modem foi bloqueado pelo meu software de provisionamento;
  • hoje em dia eu trabalho em outro lugar, ainda usando netflows + Linux.

Algumas pistas sobre o neflows: Como coletar estatísticas completas de uso de rede em um roteador freebsd?

    
por 16.03.2017 / 10:02