私の目標は、Dockerコンテナへのアクセスを少数のパブリックIPアドレスに制限することです。目標を達成するためのシンプルで繰り返し可能なプロセスはありますか?Dockerのデフォルトオプションを使用しながら、iptablesの基本のみを理解すると、非常に難しいことがわかります。
コンテナを実行し、パブリックインターネットから見えるようにしますが、選択したホストからの接続のみを許可します。REJECTのデフォルトのINPUTポリシーを設定し、ホストからの接続のみを許可する予定です。しかし、DockerのNATルールとチェーンは邪魔になり、私のINPUTルールは無視されます。
以下の仮定を前提として、誰かが私の目標を達成する方法の例を提供できますか?
- eth0でホストパブリックIP 80.80.80.80
- eth1でホストプライベートIP 192.168.1.10
docker run -d -p 3306:3306 mysql
- ホスト4.4.4.4および8.8.8.8を除く、ホスト/コンテナ3306へのすべての接続をブロックする
コンテナをローカルIPアドレスのみにバインドできてうれしいですが、ドッカープロセスとホストの再起動に耐えるiptables転送ルールを適切に設定する方法についての指示が必要です。
ありがとう!
--ctdir
ますか?私が使用する-m conntrack --ctstate NEW --ctorigdstport 3306 --ctdir ORIGINAL