web-dev-qa-db-ja.com

UFWが着信トラフィックをブロックしない

UFWを実行しているDebian 9サーバーがあり、ポート2122(SSH)と80/443(HTTP(s)の場合)を除くすべての着信要求をブロックしたいと思います。

次のコマンドを実行しました。

ufw reset
ufw default deny incoming
ufw default allow outgoing
ufw allow incoming 2122/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

これは次のようにコンパイルされます。

ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
2122/tcp                   ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
2122/tcp (v6)              ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)

少なくとも私にとっては、すべてが問題ないようです。しかし、ポート2424(または実際には他の任意のポート)でdockerコンテナーを実行すると、ファイアウォールにも関わらず http://domain.tld:2424 にアクセスできます。

私は再起動、iptablesの再起動を試みました...サイコロはありません。なにか提案を ?どうもありがとう !

3
Rogue

Dockerは、実行中のコンテナーによってEXPOSEされたすべてのポートについて、ファイアウォール自体のポートを開きます。これらはufw出力には表示されませんが、iptablesでは表示できます。

あなたがすべき:

  • インターネットにアクセスできるようにする必要があるポートのみがEXPOSEされていることを確認します。
  • Docker-composeを使用して、複数の関連するコンテナーの作成と実行を調整します。ポートを公開することなく、互いに通信できます。
4
Michael Hampton