Problème de connexion yunohost 12 Bookworm sur le réseau local uniquement

Hello,

J’ai ajouté avec docker des services web que j’arrive à atteindre de l’extérieur et qui fonctionnent bien via des redirect yunohost. Je dispose de mon propre nom de domaine.

Cependant, pour faire des actions particulières, je souhaite y accéder via une url en local de type http://192.168.1.101:2342
Ma machine est dans le même serveur local.

J’ai arrêté les services suivant pour être certain que le problème ne vient pas d’eux:

systemctl stop apparmor
systemctl stop nginx
systemctl stop fail2ban

Le problème persiste.
Je ne suis pas un spécialiste réseau, en général je trouve la solution sur le net, mais là je ne suis pas tombé sur de solution.
Avez-vous des idées ? Qu’est-ce que je devrais contrôler ?

Merci pour votre aide.

Dans la webadmin >tools >firewall, tu ajoutes les règles des ports dont tu as besoin. Tu pourras par la suite joindre le service via l’adresse locale et le port défini.

Bonsoir @Fred1

…mais -logiquement- après cela, tu ne devrais plus pouvoir redémarrer ton conteneur sans relancer au préalable docker (et rebelote en cas de rechargement du pare-feu).

Il est fort possible que tu aies pu accéder à ton conteneur à son ip:port pendant un temps et que ce soit devenu impossible à un moment, non ?

=> Utile à savoir: quand docker est démarré, des règles sont ajoutées à iptables sans toucher à celles de Yunohost. Mais quand le pare-feu de Yunohost est redémarré, il efface les règles de docker dans iptables (à vérifier avec :

iptables -L -n
systemctl restart docker
iptables -L -n
yunohost firewall reload
iptables -L -n

En somme, le jour 1, on crée des conteneurs et les redirections respectives sur yunohost et tout est fonctionnel: les conteneurs sont accessibles à leur nom de domaine et leur ip:port.
Puis, disons par exemple le jour 10, on s’aperçoit que les conteneurs sont toujours accessibles à leur nom de domaine mais plus à leur ip:port… Il y a fort à parier que dans l’intervalle le pare-feu YNH ait été rechargé (= toute la conf docker effacée dans iptables = ports mappés inaccessibles de l’extérieur).

Cela peut vite devenir contraignant: si le pare-feu YNH a été rechargé, il faut penser à redémarrer docker dès que l’on veut créer/redémarrer/modifier un conteneur… ou le rendre de nouveau disponible à son ip:port (par exemple, après avoir ouvert un port dans le PF de YNH, ouverture qui est suivie d’un reload…).
Penser à redémarrer docker est, disons, la solution 1.

La solution 2 est d’empêcher docker de créer des règles iptables en modifiant ou créant le fichier /etc/docker/daemon.json avec le paramètre suivant (voir ici):

{
  "iptables": false
}

suivi d’un sudo systemctl restart docker

Evidemment on perd quelques fonctionnalités au passage.

…et solution 3 à partir de ce post:

ajouter un simple script qui va redémarrer docker à chaque rechargement du pare-feu de yunohost:

mkdir -p /etc/yunohost/hooks.d/post_iptable_rules
cd /etc/yunohost/hooks.d/post_iptable_rules
echo -e '#!/bin/bash\nsystemctl restart docker' > restart_docker

Merci pour vos retours, je n’avais pas conscience de ces règles mises par docker et non gérées par yunohost.

Je comprends mieux merci.
C’est ok au niveau de docker.

Tu arrives donc bien à te connecter à ton conteneur via son ip, c’est bon ?

Oui, tout à fait, j’arrive bien à me connecter via son adresse ip locale.