mb-ware.de
(Themenstarter)
Anmeldungsdatum: 8. September 2024
Beiträge: 38
|
encbladexp schrieb: Ich will ehrlich sein: Ich habe nicht die vorherigen 4 Seite gelesen. Aber: Kann es sein das du einen Dienst per Docker auf 8080 laufen hast, und diesen nun für z.B. das Internet verstecken willst, z.b. weil man eh nur per Loadbalancer (nginx?) dran soll? Falls ja hast du 2 Optionen:
DOCKER-USER Chain, welche man dir schon geraten hat. Den Service nicht auf 0.0.0.0 zu exposen, sondern nur auf 127.0.0.1, spart dir auch das Spiel mit iptables.
Wie Docker seine regeln anlegt ist klar definiert, da gibt es nicht viel Überraschungen, meist exposen die Leute aber einfach zu viel. Hilfreich wäre der output von:
docker container ls --all Und eventuell kannst du mir beantworten von wo aus der Dienst erreichbar sein soll. Aktuell scheint es mir wollt ihr Port 8080 einfach von außen zumachen, was man sich wie erwähnt meist sparen kann.
Danke - dass Du Dich meldest! Es geht nicht um Port 8080 - sondern um 8000 - der bietet Zugriff auf die Admin-Oberfläche von COOLIFY! Dieser Port muss in irgendeinem docker-config-file geöffnet werden - und das möchte ich verhindern! Hier die Ausgabe zu Deinem Befehl:
1
2
3
4
5
6
7
8
9
10
11
12 | root@v220240911850328xxxx:~# docker container ls --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
42f6b68011ef ghcr.io/coollabsio/coolify:4.0.0-beta.335 "/init" 45 hours ago Up 5 minutes (healthy) 443/tcp, 8000/tcp, 9000/tcp, 0.0.0.0:8000->80/tcp, :::8000->80/tcp coolify
6e2e14923e82 redis:alpine "docker-entrypoint.s…" 45 hours ago Up 5 minutes (healthy) 6379/tcp coolify-redis
07927db5d9f2 postgres:15-alpine "docker-entrypoint.s…" 45 hours ago Up 5 minutes (healthy) 5432/tcp coolify-db
c4f3586b4fb6 quay.io/soketi/soketi:1.6-16-alpine "node /app/bin/serve…" 45 hours ago Up 5 minutes (healthy) 0.0.0.0:6001->6001/tcp, :::6001->6001/tcp coolify-realtime
b5c15a4c6d9b nginx:stable-alpine "/docker-entrypoint.…" 45 hours ago Up 5 minutes (healthy) 80/tcp, 0.0.0.0:8001->8001/tcp, :::8001->8001/tcp sowskckk40swcocw8ko80840-proxy
1115e5c83de6 postgres:16-alpine "docker-entrypoint.s…" 45 hours ago Up 5 minutes (healthy) 5432/tcp sowskckk40swcocw8ko80840
ad85f44c7640 d9989ec0433e "/docker-entrypoint.…" 7 days ago Up 5 minutes (healthy) 80/tcp, 0.0.0.0:6432->6432/tcp, :::6432->6432/tcp csk4008cs4w0ogk8sc00c4kw-proxy
7e2208636218 15a7c2c4d159 "docker-entrypoint.s…" 7 days ago Up 5 minutes (healthy) 5432/tcp csk4008cs4w0ogk8sc00c4kw
1da27d080b7a traefik:v3.1 "/entrypoint.sh --pi…" 7 days ago Up 5 minutes (healthy) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp coolify-proxy
root@v220240911850328xxxx:~#
|
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 14176
|
mb-ware.de schrieb: Nach einem reboot und Deinem Befehl oben sieht es so aus:
| Last login: Sat Sep 14 11:26:38 2024 from 178.202.yy.yyy
root@v220240911850328xxxx:~# iptables -nvx -L DOCKER-INPUT
iptables: No chain/target/match by that name.
|
D. h. diese chain gibt es nicht. Versuch mal (ohne reboot):
iptables -A INPUT -j FILTERS
iptables -A DOCKER-USER -i eth0 -j FILTERS
iptables -I FILTERS 1 -j REJECT
und danach Zugriff aus dem Internet, auf den TCP-Port 8000.
|
mb-ware.de
(Themenstarter)
Anmeldungsdatum: 8. September 2024
Beiträge: 38
|
lubux schrieb: mb-ware.de schrieb: Nach einem reboot und Deinem Befehl oben sieht es so aus:
| Last login: Sat Sep 14 11:26:38 2024 from 178.202.yy.yyy
root@v220240911850328xxxx:~# iptables -nvx -L DOCKER-INPUT
iptables: No chain/target/match by that name.
|
D. h. diese chain gibt es nicht. Versuch mal (ohne reboot):
iptables -A INPUT -j FILTERS
iptables -A DOCKER-USER -i eth0 -j FILTERS
iptables -I FILTERS 1 -j REJECT
und danach Zugriff aus dem Internet, auf den TCP-Port 8000.
| Die Befehle nimmt er nicht ...
root@v220240911850328xxxx:~# iptables -A INPUT -j FILTERS
iptables v1.8.10 (nf_tables): Chain 'FILTERS' does not exist
Try `iptables -h' or 'iptables --help' for more information.
root@v220240911850328xxxx:~# iptables -A DOCKER-USER -i eth0 -j FILTERS
iptables v1.8.10 (nf_tables): Chain 'FILTERS' does not exist
Try `iptables -h' or 'iptables --help' for more information.
root@v220240911850328xxxx:~# iptables -I FILTERS 1 -j REJECT
iptables: No chain/target/match by that name.
root@v220240911850328xxxx:~#
|
|
encbladexp
Ehemaliger
Anmeldungsdatum: 16. Februar 2007
Beiträge: 17518
|
mb-ware.de schrieb: Es geht nicht um Port 8080 - sondern um 8000 - der bietet Zugriff auf die Admin-Oberfläche von COOLIFY!
Wie startest du die Container, z.b. per Docker Compose? Ich gehe mal davon aus du hast diesen curl | bash Quatsch mitgemacht, das erstellt dir hier die notwendigen Compose Dateien:
curl -fsSL $CDN/docker-compose.yml -o /data/coolify/source/docker-compose.yml
curl -fsSL $CDN/docker-compose.prod.yml -o /data/coolify/source/docker-compose.prod.yml Du kannst prüfen ob das der Fall ist:
docker compose ls Falls ja: Einfach eine / die genannte der beiden Dateien bearbeiten, dort gibt es eine Ports Sektion die so aussehen wird:
service:
bla:
ports:
- "8000:8000" Du musst da nur das hier draus machen:
service:
bla:
ports:
- "127.0.0.1:8000:8000" Im Anschluss in den Ordner gehen, und da dann halt docker compose up -d , im Anschluss ist der Dienst nur noch auf Port 8000 über localhost/127.0.0.1 erreichbar, nicht mehr aber direkt von außen. Das ist der fachlich korrekte weg, du kannst aber auch weitere X Seiten die notwendigen Firewall regeln per iptables schreiben.
|
mb-ware.de
(Themenstarter)
Anmeldungsdatum: 8. September 2024
Beiträge: 38
|
encbladexp schrieb: mb-ware.de schrieb: Es geht nicht um Port 8080 - sondern um 8000 - der bietet Zugriff auf die Admin-Oberfläche von COOLIFY!
Wie startest du die Container, z.b. per Docker Compose? Ich gehe mal davon aus du hast diesen curl | bash Quatsch mitgemacht, das erstellt dir hier die notwendigen Compose Dateien:
curl -fsSL $CDN/docker-compose.prod.yml -o /data/coolify/source/docker-compose.prod.yml
In der Datei oben sind folgende Zeilen drin:
| ...
- STRIPE_EXCLUDED_PLANS
ports:
- "${APP_PORT:-8000}:80"
expose:
- "${APP_PORT:-8000}"
healthcheck:
...
|
Wie genau muss ich diese ersetzen? Der Befehl "docker compose up -d" startet dann den Container neu - oder? BG MB
|
encbladexp
Ehemaliger
Anmeldungsdatum: 16. Februar 2007
Beiträge: 17518
|
mb-ware.de schrieb: Der Befehl "docker compose up -d" startet dann den Container neu - oder?
Das erstellt die Container neu und startet diese, genau. ...
- STRIPE_EXCLUDED_PLANS
ports:
- "127.0.0.1:${APP_PORT:-8000}:80"
expose:
- "${APP_PORT:-8000}" So sollte das dann aussehen, expose ist nur für die Dokumentation und nicht relevant. Der compose Befehl muss im Ordner dieser Datei passieren. Du musst also in /data/coolify/source sein. Da die Datei abweichend benannt wurde: docker compose -f docker-compose.prod.yml up -d
|
mb-ware.de
(Themenstarter)
Anmeldungsdatum: 8. September 2024
Beiträge: 38
|
encbladexp schrieb: mb-ware.de schrieb: Der Befehl "docker compose up -d" startet dann den Container neu - oder?
Das erstellt die Container neu und startet diese, genau. ...
- STRIPE_EXCLUDED_PLANS
ports:
- "127.0.0.1:${APP_PORT:-8000}:80"
expose:
- "${APP_PORT:-8000}" So sollte das dann aussehen, expose ist nur für die Dokumentation und nicht relevant. Der compose Befehl muss im Ordner dieser Datei passieren. Du musst also in /data/coolify/source sein. Da die Datei abweichend benannt wurde: docker compose -f docker-compose.prod.yml up -d
DU bist absolut der BESTE - danke! Dein Befehl ergab zwar leider einen Fehler und hat leider nichts NEU gestartet - siehe unten! Ich habe aber dann den "Neu-Kreierungs-Befehl" aus "upgrade.sh" genommen - dann lief alles optimal durch und Port 8000 ist nicht mehr über das Internet zugänglich!!! Das hier ist der Befehl - der alles korrekt NEU erzeugt hat:
| docker run -v /data/coolify/source:/data/coolify/source -v /var/run/docker.sock:/var/run/docker.sock --rm ghcr.io/coollabsio/coolify-helper:${LATEST_HELPER_VERSION:-latest} bash -c "LATEST_IMAGE=${1:-} docker compose --env-file /data/coolify/source/.env -f /data/coolify/source/docker-compose.yml -f /data/coolify/source/docker-compose.prod.yml up -d --remove-orphans --force-recreate --wait --wait-timeout 60"
|
Das war der gesamte OUTPUT:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 | root@v220240911850328xxxx:~# cd /data/coolify/source
root@v220240911850328xxxx:/data/coolify/source# docker compose -f docker-compose.prod.yml up -d
service "postgres" has neither an image nor a build context specified: invalid compose project
root@v220240911850328xxxx:/data/coolify/source# docker run -v /data/coolify/source:/data/coolify/source -v /var/run/docker.sock:/var/run/docker.sock --rm ghcr.io/coollabsio/coolify-helper:${LATEST_HELPER_VERSION:-latest} bash -c "LATEST_IMAGE=${1:-} docker compose --env-file /data/coolify/source/.env -f /data/coolify/source/docker-compose.yml -f /data/coolify/source/docker-compose.prod.yml up -d --remove-orphans --force-recreate --wait --wait-timeout 60"
Container coolify-db Recreate
Container coolify-realtime Recreate
Container coolify-redis Recreate
Container coolify-db Recreated
Container coolify-redis Recreated
Container coolify-realtime Recreated
Container coolify Recreate
Container coolify Recreated
Container coolify-realtime Starting
Container coolify-redis Starting
Container coolify-db Starting
Container coolify-realtime Started
Container coolify-db Started
Container coolify-redis Started
Container coolify-db Waiting
Container coolify-redis Waiting
Container coolify-realtime Waiting
Container coolify-db Healthy
Container coolify-realtime Healthy
Container coolify-redis Healthy
Container coolify Starting
Container coolify Started
Container coolify-db Waiting
Container coolify-redis Waiting
Container coolify-realtime Waiting
Container coolify Waiting
Container coolify-realtime Healthy
Container coolify-redis Healthy
Container coolify-db Healthy
Container coolify Healthy
root@v220240911850328xxxx:/data/coolify/source# docker container ls --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c032daef62e9 ghcr.io/coollabsio/coolify:latest "/init" 26 seconds ago Up 13 seconds (healthy) 443/tcp, 8000/tcp, 9000/tcp, 127.0.0.1:8000->80/tcp coolify
076dfd5a8c84 postgres:15-alpine "docker-entrypoint.s…" 29 seconds ago Up 19 seconds (healthy) 5432/tcp coolify-db
536e4537e349 quay.io/soketi/soketi:1.6-16-alpine "node /app/bin/serve…" 29 seconds ago Up 19 seconds (healthy) 0.0.0.0:6001->6001/tcp, :::6001->6001/tcp coolify-realtime
0bc5cec5b4f3 redis:alpine "docker-entrypoint.s…" 29 seconds ago Up 19 seconds (healthy) 6379/tcp coolify-redis
b5c15a4c6d9b nginx:stable-alpine "/docker-entrypoint.…" 2 days ago Up 3 minutes (healthy) 80/tcp, 0.0.0.0:8001->8001/tcp, :::8001->8001/tcp sowskckk40swcocw8ko80840-proxy
1115e5c83de6 postgres:16-alpine "docker-entrypoint.s…" 2 days ago Up 3 minutes (healthy) 5432/tcp sowskckk40swcocw8ko80840
ad85f44c7640 d9989ec0433e "/docker-entrypoint.…" 8 days ago Up 3 minutes (healthy) 80/tcp, 0.0.0.0:6432->6432/tcp, :::6432->6432/tcp csk4008cs4w0ogk8sc00c4kw-proxy
7e2208636218 15a7c2c4d159 "docker-entrypoint.s…" 8 days ago Up 3 minutes (healthy) 5432/tcp csk4008cs4w0ogk8sc00c4kw
1da27d080b7a traefik:v3.1 "/entrypoint.sh --pi…" 9 days ago Up 3 minutes (healthy) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp coolify-proxy
root@v220240911850328xxxx:/data/coolify/source#
|
|
mb-ware.de
(Themenstarter)
Anmeldungsdatum: 8. September 2024
Beiträge: 38
|
lubux schrieb: mb-ware.de schrieb: Nach einem reboot und Deinem Befehl oben sieht es so aus:
| Last login: Sat Sep 14 11:26:38 2024 from 178.202.yy.yyy
root@v220240911850328xxxx:~# iptables -nvx -L DOCKER-INPUT
iptables: No chain/target/match by that name.
|
D. h. diese chain gibt es nicht. Versuch mal (ohne reboot):
iptables -A INPUT -j FILTERS
iptables -A DOCKER-USER -i eth0 -j FILTERS
iptables -I FILTERS 1 -j REJECT
und danach Zugriff aus dem Internet, auf den TCP-Port 8000.
Vielen lieben Dank auch Dir - lubux - Du hast mir sehr geholfen - nicht aufzugeben!
|
mb-ware.de
(Themenstarter)
Anmeldungsdatum: 8. September 2024
Beiträge: 38
|
tomtomtom schrieb: Sofern das hier nicht nur ein schlechter Spam-Versuch sein sollte (der Benutzername ist die Homepage eines - vermutlich - IT-Dienstleisters, der allerdings laut seiner Homepage noch nicht weiß, was er anbietet, aber immerhin "No1 in WrapBootstrap" ist), stellt sich ja schon die Frage, wie bei diesem KnowHow solche Fragen kommen können. #NurMalSo
Nur mal so ... Lieber tomtomtom - hast Du das alles gewusst - oder hast Du jetzt auch noch was dazugelernt?
|
encbladexp
Ehemaliger
Anmeldungsdatum: 16. Februar 2007
Beiträge: 17518
|
Entwickler sollten mit dem curl | bash und upgrade.sh Mist echt mal aufhören. Aber schön das es dir trotzdem geholfen hat.
|
tomtomtom
Supporter
Anmeldungsdatum: 22. August 2008
Beiträge: 54972
Wohnort: Berlin
|
mb-ware.de schrieb: Lieber tomtomtom - hast Du das alles gewusst - oder hast Du jetzt auch noch was dazugelernt?
Du willst doch jetzt hoffentlich nicht behaupten, dass die Homepage, unter deren Namen du dich angemeldet hast, auch nur irgendwie ansatzweise vertrauenswürdig erscheint... Also natürlich ausgenommen Helga Müller, die ja offensichtlich für viele Seiten gleichzeitig "arbeitet" (bzw. eben gerade nicht). Wäre hier nicht der erste Spamaccount gewesen.
|
mb-ware.de
(Themenstarter)
Anmeldungsdatum: 8. September 2024
Beiträge: 38
|
tomtomtom schrieb: mb-ware.de schrieb: Lieber tomtomtom - hast Du das alles gewusst - oder hast Du jetzt auch noch was dazugelernt?
Du willst doch jetzt hoffentlich nicht behaupten, dass die Homepage, unter deren Namen du dich angemeldet hast, auch nur irgendwie ansatzweise vertrauenswürdig erscheint... Also natürlich ausgenommen Helga Müller, die ja offensichtlich für viele Seiten gleichzeitig "arbeitet" (bzw. eben gerade nicht). Wäre hier nicht der erste Spamaccount gewesen.
Die Seite "mb-ware.de" ist leider noch nicht fertig - stimmt! Aber ich habe auch niemanden dazu verleitet - auf meine Seite zu gehen - ich habe hier nur eine Frage gestellt! BG und angenehmes Arbeiten! MB
|
mb-ware.de
(Themenstarter)
Anmeldungsdatum: 8. September 2024
Beiträge: 38
|
encbladexp schrieb: Entwickler sollten mit dem curl | bash und upgrade.sh Mist echt mal aufhören. Aber schön das es dir trotzdem geholfen hat.
Das ist leider zu hoch für mich: "curl | bash"- und "upgrade.sh"-Mist ... aber danke nochmal sehr für die sehr nützlichen Hinweise von Dir! BG MB
|
D3M
Anmeldungsdatum: 28. Juni 2011
Beiträge: 29
|
Also... Ohne persönlichen Angriff. Allerdings finde ich es grob fährlässig, sowas ins Internet zu hängen, wenn man davon offensichtlich keine Ahnung hat. 1. Ja, dein Mgmt Interface ist exposed und kann angegriffen werden. Ich kenne weder diese Applikation, noch die Vertrauenswürdigkeit des Devs, als auch nicht den Code selbst. 2. Docker im Internet selbst einzusetzen ist sportlich. Mal drüber nachdenken 3. So etwas testet man in VAL oder von mir aus in INT, also definitiv NON-PROD und sicherlich nicht exposed im Internet. Dafür gibt es Virtualisierungsmöglichkeiten 4. Beim überfliegen habe ich kein mangle und kein nat gesehen. Was mich interessieren würde | iptables -vnL
iptables -vnL -t nat
iptables -vnL -t mangle
ip6tables -vnL
ip6tables -vnL -t nat
ip6tables -vnL -t mangle
nmap -sSV -p 8000 -v9 <dest.ip> # von einem externen server
nmap -sUV -p 8000 -v9 <dest.ip> # von einem externen server
|
dazu ein tcpdump des kompletten traffics, wenn du auf port 8000 zugreifst. Hint: https://www.rsquare.org/wp-content/uploads/2013/01/Netfilter-packet-flow1.png Am besten noch einen logging rule am anfang und am ende. dazu dann die logs. EDIT: War ja schon gelöst... anyway...
|
encbladexp
Ehemaliger
Anmeldungsdatum: 16. Februar 2007
Beiträge: 17518
|
D3M schrieb: 2. Docker im Internet selbst einzusetzen ist sportlich. Mal drüber nachdenken
Warum? Millionen oder vermutlich Millarden Container laufen auf dem Planeten, das Problem sind veraltete Images, die Software drin, falsche Konfiguration, aber nicht ob das Ding durch Podman, die Docker Engine oder k8s gehostet wird.
|