staging.inyokaproject.org

UFW blockt und dann doch nichts?

Status: Gelöst | Ubuntu-Version: Server 22.04 (Jammy Jellyfish)
Antworten |

Dark_Wolf

Avatar von Dark_Wolf

Anmeldungsdatum:
12. August 2006

Beiträge: 2561

Hallo Leute,

hab die letzten Tage mich durch das Docker Buch gefressen und einen 22.04 Server mit aktuellem Docker von der Website installiert. Der Zeit laufen da drauf 2x Docker mit Docker Compose und Nginx auf der lokalen Maschine als Reverse Proxy inkl. HTTP auf HTTPS geforcte Umleitung.

So, nun wollte ich sämtlich Ports von den Docker Containern die ja auf einem anderen Port laufen und unverschlüsselt kommunizieren dicht machen. Ich dachte mir ich löse das mit UFW (war heute die erste Berührung damit). Gesagt getan.

Status: Aktiv
Protokollierung: on (low)
Voreinstellung: deny (eingehend), allow (abgehend), deny (gesendet)
Neue Profile: skip

Zu                         Aktion      Von
--                         ------      ---
22/tcp (OpenSSH)           ALLOW IN    Anywhere                  
6556/tcp (checkmk agent)   ALLOW IN    Anywhere                  

Bist dahin funktioniert das ganze. Es ist kein anderes Port offen. Nun schalte ich den Nginx dazu:

80,443/tcp (Nginx Full)    ALLOW IN    Anywhere

Und schon sind auch lokalen Ports aller Docker Container offen. Ich habs auch mit den Ports direkt versucht und auch die Dockerports gesperrt. Gleiches Ergebnis.

Status: Aktiv
Protokollierung: on (low)
Voreinstellung: deny (eingehend), allow (abgehend), deny (gesendet)
Neue Profile: skip

Zu                         Aktion      Von
--                         ------      ---
22/tcp (OpenSSH)           ALLOW IN    Anywhere                  
6556/tcp (checkmk agent)   ALLOW IN    Anywhere                  
80,443/tcp (Nginx Full)    ALLOW IN    Anywhere                  
5800/tcp                   DENY IN     Anywhere                  
40050/tcp                  DENY IN     Anywhere                  

Versteht das jemand? Ich nämlich nicht. Hab auch diesen Artikel gefunden. Wo man erklärt das UFW für Server nicht geeignet ist. Server und Client, beides sind Systeme. Wenns am Server nicht tut wird's am Client auch nicht brauchbar sein.

Ich würde das ganze sehr gerne verstehen und nach Möglichkeit auch lösen. Immerhin ist UFW ja ein Canonical supportetes Paket.

Vielen lieben Dank

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17277

Docker kümmert sich selbst um seine iptables/Firewall regeln, es ist Docker vollkommen egal was du dir in ufw zusammen baust.

Warum fixt du nicht einfach dein Compose File, und exportierst Dienste nur z.B. an 127.0.0.1 statt diese extern bereitzustellen?

Dark_Wolf

(Themenstarter)
Avatar von Dark_Wolf

Anmeldungsdatum:
12. August 2006

Beiträge: 2561

Danke für die Antwort. Mittlerweile habe ich die Proxmox Firewall aktiviert... Ich beschäftige mich erst seit ca. einer Woche intensiv mit Docker. Hab hier ein fettest Buch liegen. Dachte mir das würde dann so passen?

...
ports:
      - 127.0.0.1:5800:5800
...

Oder verstehe ich da was falsch?

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17277

...
ports:
      - "127.0.0.1:5800:5800"
...

Wenn man es genau nimmt, aber zeig doch mal den output von docker container ls, ich vermute du hast eh nichts das du per Firewall schützen müsstest, zumindest nicht von Docker.

Dark_Wolf

(Themenstarter)
Avatar von Dark_Wolf

Anmeldungsdatum:
12. August 2006

Beiträge: 2561

CONTAINER ID   IMAGE                               COMMAND                  CREATED        STATUS                  PORTS                                               NAMES
fc9545eed51d   nginx:mainline-alpine               "/docker-entrypoint.…"   18 hours ago   Up 18 hours             0.0.0.0:8080->80/tcp, :::8080->80/tcp               tandoor-rezepte-nginx_recipes-1
ee81632c7deb   vabene1111/recipes                  "/opt/recipes/boot.sh"   18 hours ago   Up 18 hours             8080/tcp                                            tandoor-rezepte-web_recipes-1
7e4432effaca   postgres:11-alpine                  "docker-entrypoint.s…"   18 hours ago   Up 18 hours             5432/tcp                                            tandoor-rezepte-db_recipes-1
31db17341e71   netboxcommunity/netbox:v3.5-2.6.1   "/usr/bin/tini -- /o…"   18 hours ago   Up 18 hours (healthy)                                                       netbox-netbox-housekeeping-1
c25bb1f6d936   netboxcommunity/netbox:v3.5-2.6.1   "/usr/bin/tini -- /o…"   18 hours ago   Up 18 hours (healthy)                                                       netbox-netbox-worker-1
372e3f9ae402   netboxcommunity/netbox:v3.5-2.6.1   "/usr/bin/tini -- /o…"   18 hours ago   Up 18 hours (healthy)   0.0.0.0:8001->8080/tcp, :::8001->8080/tcp           netbox-netbox-1
ff0c2d31ae36   redis:7-alpine                      "docker-entrypoint.s…"   18 hours ago   Up 18 hours             6379/tcp                                            netbox-redis-cache-1
1b857178ad21   postgres:15-alpine                  "docker-entrypoint.s…"   18 hours ago   Up 18 hours             5432/tcp                                            netbox-postgres-1
2998899cd762   redis:7-alpine                      "docker-entrypoint.s…"   18 hours ago   Up 18 hours             6379/tcp                                            netbox-redis-1
0093a1c74f51   jlesage/jdownloader-2               "/init"                  18 hours ago   Up 18 hours             3129/tcp, 5900/tcp, 127.0.0.1:5800->5800/tcp        jdownloader-2
3cb2d84972d5   ghcr.io/dani-garcia/vaultwarden     "/start.sh"              2 days ago     Up 18 hours (healthy)   3012/tcp, 0.0.0.0:40050->80/tcp, :::40050->80/tcp   vaultwarden

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17277

Dark_Wolf schrieb:

CONTAINER ID   IMAGE                               COMMAND                  CREATED        STATUS                  PORTS                                               NAMES
fc9545eed51d   nginx:mainline-alpine               "/docker-entrypoint.…"   18 hours ago   Up 18 hours             0.0.0.0:8080->80/tcp, :::8080->80/tcp               tandoor-rezepte-nginx_recipes-1
372e3f9ae402   netboxcommunity/netbox:v3.5-2.6.1   "/usr/bin/tini -- /o…"   18 hours ago   Up 18 hours (healthy)   0.0.0.0:8001->8080/tcp, :::8001->8080/tcp           netbox-netbox-1
3cb2d84972d5   ghcr.io/dani-garcia/vaultwarden     "/start.sh"              2 days ago     Up 18 hours (healthy)   3012/tcp, 0.0.0.0:40050->80/tcp, :::40050->80/tcp   vaultwarden

Wenn ich nicht blind bin, sind das die Dienste die zu Bereitstellst, alles andere ist nur auf den Docker Networks verfügbar. Wenn du jetzt all diese gegen 127.0.0.1 bindest, dann davor z.B. caddy oder nginx schaltest zwecks SSL/Loadbalancing dann bist du safe und hast nach außen nur noch 80 und 443 von diesem Loadbalancer offen.

Die Firewall kann dir dann, aus Docker Perspektive, egal sein.

Dark_Wolf

(Themenstarter)
Avatar von Dark_Wolf

Anmeldungsdatum:
12. August 2006

Beiträge: 2561

Ahhh, eh so einfach. Wenn man weis wie...

CONTAINER ID   IMAGE                               COMMAND                  CREATED              STATUS                        PORTS                                          NAMES
ff4ff026a48e   nginx:mainline-alpine               "/docker-entrypoint.…"   15 seconds ago       Up 13 seconds                 127.0.0.1:8080->80/tcp                         tandoor-rezepte-nginx_recipes-1
541f3dfa852e   vabene1111/recipes                  "/opt/recipes/boot.sh"   15 seconds ago       Up 13 seconds                 8080/tcp                                       tandoor-rezepte-web_recipes-1
7f78a337f376   postgres:11-alpine                  "docker-entrypoint.s…"   15 seconds ago       Up 13 seconds                 5432/tcp                                       tandoor-rezepte-db_recipes-1
cf72866b2de0   netboxcommunity/netbox:v3.5-2.6.1   "/usr/bin/tini -- /o…"   About a minute ago   Up 24 seconds (healthy)                                                      netbox-netbox-worker-1
777c5a3a07d3   netboxcommunity/netbox:v3.5-2.6.1   "/usr/bin/tini -- /o…"   About a minute ago   Up 24 seconds (healthy)                                                      netbox-netbox-housekeeping-1
d890c1e030ed   netboxcommunity/netbox:v3.5-2.6.1   "/usr/bin/tini -- /o…"   About a minute ago   Up About a minute (healthy)   127.0.0.1:8001->8080/tcp                       netbox-netbox-1
62fcdf637744   redis:7-alpine                      "docker-entrypoint.s…"   About a minute ago   Up About a minute             6379/tcp                                       netbox-redis-1
15d765fa0c69   redis:7-alpine                      "docker-entrypoint.s…"   About a minute ago   Up About a minute             6379/tcp                                       netbox-redis-cache-1
8bbce97f3538   postgres:15-alpine                  "docker-entrypoint.s…"   About a minute ago   Up About a minute             5432/tcp                                       netbox-postgres-1
4fdfa336902c   ghcr.io/dani-garcia/vaultwarden     "/start.sh"              3 minutes ago        Up 3 minutes (healthy)        3012/tcp, 127.0.0.1:40050->80/tcp              vaultwarden
b5c01d3945e8   jlesage/jdownloader-2               "/init"                  4 minutes ago        Up 4 minutes                  3129/tcp, 5900/tcp, 127.0.0.1:5800->5800/tcp   jdownloader-2

Somit braucht man, wie du schon richtig angedeutet hast, auch keine Firewall mehr.

Vielen Dank für die tolle Hilfe, hab wieder was gelernt. lg

Antworten |