iptables limita as conexões de entrada ao contêiner do Docker

1

Executando um servidor Ubuntu 16.04 com Docker Engine (última versão 1.12.1) e uma imagem / container Docker baseada no Ubuntu 16.04 também.

Eu preciso limitar (em uma porta específica usando TCP) ambos:

  1. o número de conexões por segundo (digamos 10) e
  2. o número de conexões simultâneas

Seria perfeito se fosse possível criar um script de ponto de entrada dentro do contêiner do Docker que, quando carregado, lida com a configuração do iptables, mas se isso não for possível, como configurá-lo no host (contêiner externo do Docker) ?

Atualmente, tenho isso no host:

$ iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    DOCKER-ISOLATION  all  --  anywhere             anywhere
2    DOCKER     all  --  anywhere             anywhere
3    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
4    ACCEPT     all  --  anywhere             anywhere
5    ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain DOCKER (1 references)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  anywhere             172.17.0.2           tcp dpt:15672

Chain DOCKER-ISOLATION (1 references)
num  target     prot opt source               destination
1    RETURN     all  --  anywhere             anywhere

Como posso adicionar as duas regras acima à cadeia DOCKER se a porta de destino for, digamos, porta 5671 ?

    
por KimHansen 12.09.2016 / 16:45

1 resposta

0

É assim que eu faria:

iptables -A INPUT -p tcp --syn --dport 5671-m connlimit \
         --connlimit-above 10 --connlimit-mask 32 \
         -j REJECT --reject-with tcp-reset  
    
por 13.09.2016 / 15:44