Bon à savoir : Docker c’est de la merde. On le savait déjà mais…

Par défaut Docker modifie votre firewall en ajoutant un

-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER

Ça vous shoot **TOUTES** les règles INPUT éventuelles… Dont un gros « INPUT DROP ».
Vos conteneurs deviennent magiquement accessibles de l’extérieur si vous aviez fait un expose ou équivalent…

🤦

Follow

Du coup vous avez beau avoir un « :INPUT DROP » tout en haut, plus bas ça donne un « -A DOCKER ! -i br-xxx -p tcp -m tcp --dport 1025 -j DNAT --to-destination 172.18.0.2:1025
-A DOCKER ! -i br-xxx -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.18.0.3:80 »
Et du coup un telnet <ip-public>:1025 ou telnet <ip-public>:80 passe, malgré l’impression que le « INPUT DROP » va tout interdire…

@aeris Mais quelle enculade. 😂 J'imagine la prise de tête avant de trouver ça.

@aeris
Je me rend compte qu'en plus du :INPUT DROP
On met toujours un -A INPUT -j REJECT
En dernière position de la table filter.

Mais même là, le -A docker fout dedans.

@aeris Ouaip. C'est pour ça que j'ai toujours une machine (à minima un netns) entre un host docker et le reste du réseau pour pouvoir avoir un firewall décent. J'ai jamais trouvé comment faire coexister docker et mes propres rules sans utiliser de netns

Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!