web-dev-qa-db-ja.com

ホスト内のDockerルーティングを台無しにすることなく、ホストの外部からファイアウォールでDockerマップポートをブロックするにはどうすればよいですか?

ホスト上で実行されているDockerコンテナーがあり、一部のポートがホスト上のポートにマップされています。

docker run -d -p 9009:9009 someserver

80、443、22を除いて、このマシンをインターネットからファイアウォールで保護したいと思います。

しかし、ホスト内のプロセスが9009に接続できるようにしたいのです。

Dockerがパケットをドロップするためのファイアウォールルールを完全に回避しているように見えることに少しショックを受けました。

firewalldiptablesの両方を使用してcentos 7を試して、 80、443、および22。どういうわけか、ホストの外部からdockerポートマップコンテナ(ポート9009)にアクセスできました。私が見つけたいくつかの解決策は、Dockerのルーティングを完全に台無しにしているようです-Dockerコンテナがインターネットにアクセスできないようにするなどです。

私のシナリオは可能ですか?

これは同じ質問をしているようです: https://security.stackexchange.com/questions/66136/docker-port-forwarding-exposure

6
adapt-dev

公開されたコンテナポートをローカルホストにのみバインドできるようです。

docker run -d -p 127.0.0.1:9009:9009 someserver

7
adapt-dev