みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

docker は ufw の設定に関係なくポートを開けるので devcontainer を使う

Ubuntu で以下のように ufw を設定しました.

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)

一見完璧に見えますが,この設定のまま,docker はポートを開けることが可能です.

$ docker run -it -p 8080:80 nginx

同じネットワークに接続した別のパソコンのブラウザーでアクセスすると,nginx のテストページが表示されました.

(念の為アドレスバーは隠しています.以下では, docker を実行している PC の IP アドレスを指定しているとお考えください.)

iptables の設定を確認したところ,docker が自動でルールを追加していました.docker も ufw も iptables を設定するため,ufw でデフォルト設定をしたからといって安心できないことがわかりました.

devcontainer ならば,ホストのポートを開くのではなく,localhost に転送してくれるので,比較的安全だと思われます.

devcontainer を起動して,ポート 6080 で noVNC を使用可能な状態にしました.

これは localhost に転送されるため,http://localhost:6080 でアクセスができます.

しかし,IP アドレスを直接指定してアクセスしても,ポートは閉じているのでアクセスできません.