Docker Container, öffnet Ports nicht nach außen?

2 Antworten

Das ist komisch, der Port sollte offen sein.

Ja, docker macht für dich Firewall rules und teilweise kann das sogar Dinge an einer Firewall vorbei mogeln. Aber wenn du eine Firewall hast könnte die trotzdem verantwortlich sein. Ist der Port den wirklich closed oder filtered.

Du solltest auch sicher stellen, dass dein Compose Setup läuft. Vermutlich wirst du es mit docker-compose up -d starten, was sagt denn docker-compose ps. Das sagt dir auch welche Ports gemapped sind auf welchen Container.

Bei solchen Fehlern musst du erst mal den Fehler soweit wie möglich Fehlerquellen ausschließen.

Woher ich das weiß:Berufserfahrung – Privat und beruflich damit zu tun

barnim  30.03.2022, 08:50
Ja, docker macht für dich Firewall rules

Aber nicht in der INPUT chain. Das muss man selbst tun, wenn die default policy nicht auf ACCEPT steht.

und teilweise kann das sogar Dinge an einer Firewall vorbei mogeln

Wie genau funktioniert das?

BeamerBen  30.03.2022, 13:04
@barnim

Ich weiß das genaue Setup selber nicht mehr. Nutze auch kein iptables aktiv daher keine Ahnung wie es da genau ist aber Docker erstellt dir durchaus Regeln durch die Traffic accepted und geroutet wird.

In dem Fall war ein Problem, dass auf input gefiltert wurde aber Docker traffic eben forward traffic ist und daher nie in die input Regeln rein lief. Da passiert ja auch sowieso nat und das muss man bei seinen Firewall Regeln auch berücksichtigen, der richtige Ansatz ist eben vor nat zu filtern. Bzw. hat Docker eine Docker User chain die man nutzen sollte wenn man gezielt Docker Traffic filtern möchte.

Wenn man eine Firewall schreibt dropt man ja auch meistens eher packets anstatt sie zu rejecten desewegn habe ich auch gefragt ob der Port filtered oder closed ist.

barnim  30.03.2022, 21:07
@BeamerBen
aber Docker erstellt dir durchaus Regeln durch die Traffic accepted und geroutet wird

Nur fuers SDN, nicht fuers Host Netz. Daher meine Frage weil mir bis jetzt zumindest nicht bekannt ist, wie Docker im Underlay Firewall Dinge umgehen kann.

BeamerBen  30.03.2022, 21:50
@barnim

Das Problem ist, dass Leute wie du rules in input chains schreiben, hast du eben ja noch selber geschrieben, aber Docker vorher durch den traffic umleitet. Docker Traffic kommt nie in der Input Chain an. Leute schreiben aber ihre Rules gerne in die Input chain.

Das hat überhaupt nichts mit SDN oder irgendwelchen Underlay whatever zu tun.

Jetzt verstanden?

Soweit ich das verstanden habe, erstellt Docker ja für mich die iptable rules, welche definieren welcher port/adresse zu welchem container gemappt ist.

Der Docker Proxy baut dir die Regeln, damit dein Container im SDN vom Host(!) aus erreichbar ist. Wenn du Port 7777 auf deinem Host nach aussen zu hast, musst du den selbst aufmachen. Docker macht das per Design nicht.