Warum blockiert UFW nicht die Ports, die mit Docker verfügbar gemacht wurden?

8

Ich habe einige Regeln für mein UFO eingerichtet, aber ich denke, es blockiert einfach nichts. Dies ist der aktuelle Status:

~# ufw status verbose

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

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere
80                         ALLOW IN    Anywhere
27015:27115/udp            ALLOW IN    Anywhere
27015:27115/tcp            ALLOW IN    Anywhere
22 (v6)                    ALLOW IN    Anywhere (v6)
80 (v6)                    ALLOW IN    Anywhere (v6)
27015:27115/udp (v6)       ALLOW IN    Anywhere (v6)
27015:27115/tcp (v6)       ALLOW IN    Anywhere (v6)

Wie Sie sehen, werden eingehende Verbindungen standardmäßig abgelehnt und nur bestimmte Ports zugelassen. Trotzdem habe ich gerade einen neuen Dienst an Port 8083 eingerichtet und kann von außen darauf zugreifen. Wieso ist es so?

Ich habe einen Docker-Container verwendet, um diesen neuen Dienst auszuführen, falls es darauf ankommt.

Ivan
quelle
Können Sie die UFW neu laden? Haben Sie versucht, den Server neu zu starten? Gibt es Regeln in iptables? Bitte hinzufügeniptables -L
Christopher Perrin
Vielen Dank, als ich mir die Ausgabe von iptables -L ansah, stellte ich fest, dass Docker die iptables direkt bearbeitet. Ich kann dies überschreiben, indem ich die Docker-Konfiguration ändere
Ivan

Antworten:

6

Es sieht aus wie

Docker manipuliert direkt mit IPTables

. Sie können dieses Verhalten überschreiben, indem Sie dem Docker-Daemon --iptables = false hinzufügen.

Die Datei / etc / default / Docker und uncomment die DOCKER_OPTS Zeile:

DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --iptables=false"

Der Autor kam zu folgendem Schluss:

  • UFW sagt Ihnen nicht den wahren Zustand von iptables (nicht schockierend, aber immer noch).
  • Verwenden Sie niemals die Option -p (oder -P) in Docker für etwas, das Sie nicht öffentlich machen möchten.
  • Binden Sie nur entweder an die Loopback-Schnittstelle oder an eine interne IP.
Ivan
quelle