iptables は Docker コンテナへのインバウンド接続を制限します。

iptables は Docker コンテナへのインバウンド接続を制限します。

Dockerエンジン(最新バージョン1.12.1)を使用してUbuntu 16.04サーバーとUbuntu 16.04ベースのDockerイメージ/コンテナを実行します。

(TCP を使用する特定のポートで)以下を制限する必要があります。

  1. 1秒あたりの接続数(10と仮定)
  2. 同時接続数

ロード時にこれに対するiptables設定を処理するDockerコンテナ内にエントリポイントスクリプトを作成できる場合は完璧です。しかし、これが不可能な場合は、ホスト(Dockerコンテナの外部)でどのように設定しますか?

現在、ホストコンピュータには次のものがあります。

$ 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

DOCKERターゲットポートがportの場合、上記の2つのルールをチェーンにどのように追加しますか5671

ベストアンサー1

これが私がする方法です:

iptables -A INPUT -p tcp --syn --dport 5671-m connlimit \
         --connlimit-above 10 --connlimit-mask 32 \
         -j REJECT --reject-with tcp-reset  

おすすめ記事