セキュリティ
Dockerのポート公開がファイアウォールを迂回する
2026年8月20日

レン
ファイアウォールで閉じてるはずのポートに、外から繋がっちゃうんだけど…!?

プロクラ
Dockerを使っているなら、それは起こりうるよ。Dockerはポートを公開するとき、ファイアウォールより手前の層に自分で設定を書き込む。だから、こちらで閉じたつもりの設定を通り越してしまうんだ。
開ける入口は、使うものだけ
22開SSH接続元を絞る
80開Web公開するなら
443開Web(暗号化)公開するなら
3306閉データベース外に出さない
その他閉—既定で閉じる
「全部閉じてから、必要な分だけ開ける」が基本。SSHを閉じる前に自分の接続を確認
何が起きているのか
コンテナのポート公開は、ファイアウォールより手前の層に規則を書き込みます。そのため、ファイアウォールで閉じているつもりのポートが、外から到達できる状態になります。設定画面上は閉じて見えるので、確認したつもりで開いている、という一番気づきにくい形になります。
- ufwなどの道具は、決められた場所に規則を書く
- Dockerは、それより先に評価される場所に規則を書く
- 結果として、Dockerの公開設定が優先される
- 「閉じたのに開いている」という、直感に反する状態になる

ウィルスン
…これは実に良い話でな。管理者はファイアウォールを設定して安心している。だが扉は開いたままなのだ。ワタシが探しているのは、まさにこういうサーバーだよ。
実際に確認する

プロクラ
設定を信じるのではなく、実際に外から見えるかを確かめよう。ここを一度でもやっておくと、思い込みに気づける。
- ss -tulpn で、待ち受けているアドレスを確認する
- 0.0.0.0 になっていれば、すべての経路から受け付ける状態
- 別の回線から、そのポートへ接続してみる
- 外部の確認サービスで、見えているかを試す
公開範囲を限定する

プロクラ
対策は単純で、公開の指定にアドレスを含めることだよ。何も書かなければ全公開、127.0.0.1 を指定すればホスト内だけになる。
- 外に出す必要が無いものは、127.0.0.1 に限定して公開する
- データベースや管理用の画面は、原則こちら
- 外から使うものだけを、全公開にする
- そもそも公開しない(コンテナ同士はサービス名で繋がる)

プロクラ
4つめが最も安全だよ。アプリからデータベースへ繋ぐだけなら、ホストに公開する必要はまったく無い。公開の指定を消すだけで、外部からの入口が1つ減る。
設定でDockerに触らせない方法
- Dockerがファイアウォールへ書き込まないようにする設定もある
- ただし、その場合はコンテナの通信を自分で通す設定が必要になる
- 設定を誤ると、コンテナから外へ出られなくなる
- 個人の環境では、公開範囲の限定で対応するほうが簡単

プロクラ
この挙動を知らないまま「ファイアウォールを設定したから安全」と思っているのが、いちばん危ない状態だよ。知ったうえで、公開範囲を意識して書く。それで十分に防げる。

レン
設定を信じずに、外から実際に見えるか確かめる。やってみる。
気づかないまま公開しやすいもの

プロクラ
手元で開発していたときの設定をそのまま持ち込むと、本来外に出すべきでないものまで公開されがちだよ。特に次のものは要注意だ。
- データベース(外部から直接接続できる状態になる)
- キャッシュや検索の仕組み(認証が無い設定のことがある)
- 管理用の画面
- 開発用に用意した、認証不要の入口

ウィルスン
…認証の無いデータベースが、そのまま公開されている。ワタシはそれを探す道具を持っているのでな。見つけるのに手間はかからんよ。
VPSの料金を比較する
あわせて読みたい
- セキュリティ複数人でサーバーを管理するときの決めごとアカウントを共有せず個別に作る理由、権限の分け方、記録の残し方。人が増えたときに事故を防ぐための最低限の取り決めを解説します。
- セキュリティ【セキュリティ】「うちみたいな小さいサーバーは狙われない」の誤解攻撃の大半は人が選んだ標的ではなく機械による無差別な走査です。何を探されているのか、乗っ取られると何に使われるのか、そして「狙う価値のない相手」になる方法を解説します。
- セキュリティ【セキュリティ】APIキー・パスワードの管理:GitHubに上げてはいけない認証情報をコードに書かない、の次に来る「どこに置くか」。規模別の置き場所と、本番と検証で鍵を分けるなど漏れにくくする工夫を解説します。
- セキュリティ【セキュリティ】侵入されたかも?と思ったときにやること不審な挙動に気づいたときの初動を順番に解説します。何を疑うか、消す前に何を残すか、認証情報をどこまで変えるか、そしてなぜ掃除ではなく作り直しなのかまで。
サーバーを触る前に押さえておきたいこと
姉妹サイトの、この記事と相性のいいページです。
- Docker入門
イメージとコンテナの考え方から順番に — prodou.net
- Dockerfile Generator
Dockerfileの雛形をブラウザで作る — toolkitbox.net
- Linuxコマンド入門
ls / cd / grep などを疑似ターミナルで試しながら学べる — prodou.net