logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 20-03-2022 14:31:02

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

[Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Bonjour,

Je tente d'avoir une interface dans mes conteneurs LXC sans succès. Par défaut le conteneur se lance sans interface réseau et si je le configure il me dit que je n'aurais pas dû le faire:

lxc-start: mediawiki: confile.c: set_config_net: 293 lxc.net must not have a value
lxc-start: mediawiki: parse.c: lxc_file_for_each_line_mmap: 131 Failed to parse config file "/var/lib/lxc/mediawiki/config" at line "lxc.network.type = veth "
Failed to load config for mediawiki
lxc-start: mediawiki: tools/lxc_start.c: main: 242 Failed to create lxc_container



Sur l'hôte j'ai bien lxcbr0 mais les conteneurs ne s'en occupent pas.

Dernière modification par Priareos (22-03-2022 23:06:10)

Hors ligne

#2 20-03-2022 15:12:56

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Hello bonjour,

Alors comme ça, plein de questions:
- Quelle est la commande de création utilisée ? Enfin, ses paramètres avec :

lxc-creat -n mediawiki .....


- Quelle distribution dans le container surtout ? Certaines sont tellement minimales qu'il faut y ajouter plein de trucs pour en faire quelque chose...
- Container «privilégié» (en tant que root) ou «non privilégié» (en tant qu’utilisateur) ?
- quelle est la configuration du container :   
  - si container «privilégié», contenu du fichier ''/var/lib/lxc/mediawiki/config''
  - si container «non privilégié», contenu du fichier ''$HOME/.local/share/lxc/mediawiki/config''
- Contenu de ''/etc/lxc/lxc.conf'' (privilégié) ou '' ~/.config/lxc/lxc.conf"" (non-privilégié) ?
- Réseau: contenu de ''/etc/default/lxc-net'' ?
...

Y a plein d’options possibles pour parvenir à diagnostiquer...
As-tu suivi un tuto ou des manip particulières pour installer LXC sur Debian Bullseye ?

@suivre, @+

Dernière modification par Cram28 (20-03-2022 15:13:25)


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#3 20-03-2022 15:42:01

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Oupsss, j'ai lu trop vite:

Failed to parse config file "/var/lib/lxc/mediawiki/config" at line "lxc.network.type = veth "


Donc container "privilégié"...
Sur un des miens, j'ai un truc comme ça:


[ .. ]
]# Network configuration
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
#lxc.net.0.link = br0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:FE:cb:f6:93:fe
[ .. ]
 


Avec la v 4.0.6:



$ lxc-create --version
4.0.6

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:  Debian GNU/Linux 11 (bullseye)
Release:  11
Codename: bullseye

 


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#4 20-03-2022 15:58:42

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Pour installer lxc sur l'hôte j'ai simplement fait #apt install lxc. Il a installé des dépendances. Par la suite j'ai installé ce qui ne l'avait pas été à la main, selon l'un des très nombreux sites que je'ai consulté sur le sujet:

debootstrap
libpam-cgfs
python3-lxc
dnsmasq-base
bridges-utils
lxc-dev





Voici la commande pour créer le conteneur:

#lxc-create -n mediawiki -t debian -- -r bullseye -a amd64



Conteneur bullsyeye privilégié donc. J’obtiens le conteneur mediawiki sans interface autre que la loopback.

Le contenu de /var/lib/lxc/mediawiki/config :

# Template used to create this container: /usr/share/lxc/templates/lxc-debian
# Parameters passed to the template: -r bullseye -a amd64
# For additional config options, please look at lxc.container.conf(5)

# Uncomment the following line to support nesting containers:
#lxc.include = /usr/share/lxc/config/nesting.conf
# (Be aware this has security implications)

lxc.network.type = 
lxc.network.ipv4 =
lxc.network.link =
lxc.rootfs.path = dir:/var/lib/lxc/mediawiki/rootfs

# Common configuration
lxc.include = /usr/share/lxc/config/debian.common.conf

# Container specific configuration
lxc.tty.max = 4
lxc.uts.name = mediawiki
lxc.arch = amd64
lxc.pty.max = 1024



Contenu de /etc/lxc/lxc.conf, il n'existait pas au départ sans que ça pose problème mais au fil de mes recherches j'ai créé un default.conf, que j'ai renommé lxc.conf sans que ça change quoi que ce soit. Il n'est visiblement pas pris en compte.

lxc.network.type = veth
lxc.network.ipv4 = 10.10.10.1/24
lxc.network.link = lxcbr0



Contenu de /etc/default/lxc-net:

USE_LXC_BRIDGE="true"

# Honor system's dnsmasq configuration
#LXC_DHCP_CONFILE=/etc/dnsmasq.conf

lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up

Hors ligne

#5 20-03-2022 18:27:51

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Hello,

Alors je n'ai pas tout à fait tout ça...

- Installation on est bon:

# apt-get install lxc debootstrap libpam-cgfs uidmap python3-lxc dnsmasq-base bridge-utils lxc-dev



- Fichier de config des chemins ''/etc/lxc/lxc.conf''. A priori peut rester vide chez toi, car chez moi j'ai des chemins  particuliers (OS sur clé USB - pas de place - et avec des volumes logiques LVM possibles) ce qui donne:

$ cat /etc/lxc/lxc.conf
# SI NON LVM : Chemin par défaut des containers "privilégiés"
lxc.lxcpath = /mnt/env-lxc/lxc
# SI LVM: Virtual Group (VG) par défaut des containers "privilégiés"
lxc.bdev.lvm.vg = VGVirtu
 



- Fichier de config par défaut des containers (il est utilisé pour enrichir la config de chaque container dans ''/var/lib/lxc/<container>/config'' lors de leur création):

 $ cat /etc/lxc/default.conf
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
#lxc.net.0.link = br0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:FF:xx:xx:xx:xx

lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1
 

Les deux dernières lignes peuvent être omises à mon sens...

- le fichier "réseau" qui exploite bridge et dnsmasq:

$ cat /etc/default/lxc-net
# Laissez USE_LXC_BRIDGE à "true" si vous voulez utiliser lxcbr0 pour vos containers LXC
# Définissez sur "false" si vous utiliserez virbr0 ou un autre logiciel existant bridge,
# ou Mavlan, sur l'interface réseau de votre hôte.
USE_LXC_BRIDGE="true"

# Honor system's dnsmasq configuration
# Dé-commentez la ligne suivante si vous voulez utiliser un fichier de configuration
# du dnsmasq pour lxcbr0
# Par exemple, vous pouvez utiliser 'dhcp-host=mail1,10.0.3.100' pour avoir
# le container 'mail1' qui obtient toujours l'adresse IP 10.0.3.100.
LXC_DHCP_CONFILE=/etc/lxc/dnsmasq.conf

# Dé-commentez la ligne suivante si vous voulez que le dnsmasq de lxcbr0 résolve le
# domaine en ".lxc". Vous pouvez alors ajouter 'server=/lxc/10.0.3.1' à /etc/dnsmasq.conf
# après quoi'container1.lxc' sera résolu sur votre host.
LXC_DOMAIN="lxc"
 



-  Et du coup, pour la route, je te donne aussi mon fichier de config dnsmasq des adresses de mes containers, pointé ci-dessus. Attention: plage d'adresses en 10.0.3.x:

$ cat /etc/lxc/dnsmasq.conf
server=/lxc/10.0.3.1
 
# ===> N'ajoutez pas nécessairement les lignes ci-dessous: on pourra le faire au fur et à mesure des besoins
# Fixer toujours la même adresse à un container en fonction de son nom
# cid  2 ->  49: containers term
dhcp-host=lxc-mariadb,10.0.3.10
dhcp-host=lxc-term01,10.0.3.11
dhcp-host=lxc-term02,10.0.3.12
dhcp-host=lxc-term03,10.0.3.13
 
# cid  50 -> 99: containers web
dhcp-host=lxc-proxy,10.0.3.50
dhcp-host=lxc-web,10.0.3.51
dhcp-host=lxc-gitea,10.0.3.52
dhcp-host=lxc-wikis,10.0.3.53
dhcp-host=lxc-web01,10.0.3.54
 
# cid 100 -> 149; containers gui
dhcp-host=lxc-gui01,10.0.3.101
dhcp-host=lxc-gui02,10.0.3.102
dhcp-host=lxc-gui03,10.0.3.103
 
# cid 150 -> 199; containers divers
dhcp-host=lxc-guacamole,10.0.3.151
dhcp-host=lxc-gitea,10.0.3.152
dhcp-host=lxc-docker,10.0.3.153
dhcp-host=lxc-kodi, 10.0.3.154

# Ajout des sous domaines / dns
# Les sites web/virtualHost : *.lxc-web01 (wiki, adminer, links...
address=/.lxc-web/10.0.3.51
address=/.lxc-web01/10.0.3.54
 



- Pour prendre en compte les éventuelles modifs que tu feras:

# systemctl restart lxc-net.service



- Je me suis fait un bridge (qui me permet de choisir une adresse sur le réseau privé des container en 10.3.0.x ou sur le LAN / DHCP de la box). j'ai modifié le fichier suivant selon:

 $ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# Modif cram - 2021.12.05 - Montage du bridge br0
# The primary network interface
#allow-hotplug enp3s0
#iface enp3s0 inet dhcp
auto br0
iface br0 inet dhcp
        bridge_ports enp3s0
        bridge_fd 0
        bridge_maxwait 0
 



- Si modif., prise en compte avec:

# systemctl restart networking.service



- Enfin, je préfère aller chercher les images sur le référentiel linuxcontainer a priori plus «fraîches», avec le template ''download'' :

# lxc-create -t download -n lxc-mon-ct -- -d debian -r bullseye -a amd64




J'ai gratté un truc dans ce wiki - Dans un autre contexte, ne pas tout prendre les yeux fermés, il date un peu, en particulier il ne marche plus pour les containers non privilégiés (à date commandes dédiées ajoutées avec la v 4.0.6, faut que le l'actualise...).

Bonnes manip., @+


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#6 20-03-2022 20:55:55

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

J'ai copié ta config sur mon système, les conteneurs ne se lancent plus:

lxc-start: mediawiki: parse.c: lxc_file_for_each_line_mmap: 131 Failed to parse config file "/var/lib/lxc/mediawiki/config" at line "lxc.net.O.link = lxcbr0"
Failed to load config for mediawiki
lxc-start: mediawiki: tools/lxc_start.c: main: 242 Failed to create lxc_container



Il faut dire que lxcbr0 reste DOWN quoi qu'il arrive chez moi.

Hors ligne

#7 20-03-2022 21:13:01

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Bonsoir,

"lxc.net.O.link = lxcbr0"


Bizarre, c'est sensé être «zero».link

"lxc.net.0.link = lxcbr0"

.

Que retournent:
- Les adresses:

 $ ip addr


- Le service lxc-net:

 $ systemctl status lxc-net


- Le petit serveur dns :

 $ ps -aux | grep dnsmasq



@+


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#8 20-03-2022 21:46:54

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Bonsoir,

Entre-temps j'ai tout désinstallé hormis le template de bullseye. J'ai ensuite réinstallé et... ça fonctionne. Je me disais aussi que Debian étant une distib sérieuse ce comportement aberrant ne pouvait pas être normal. En plus je ne sais pas bien recopier smile

Déjà je constate que /var/lib/lxc/mediawiki/config  est très différent de celui que je t'ai donné cet après-midi. Il est identique au tien, je n'ai plus

lxc.network.type =
lxc.network.ipv4 =
lxc.network.link =



Je n'ai plus de /etc/lxc/lxc.conf, comme avant mais visiblement il n'est pas utile, en tout cas par défaut. De même dans /etc/default/lxc-net je n'ai plus que la première ligne, le reste étant ce que j'avais ajouté il me semble.

En tout cas merci à toi de m'avoir aidé. Si tu sais comment avoir une connexion par pont ça m’intéresse aussi smile

Hors ligne

#9 20-03-2022 22:47:24

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Hello,

Super ! Une installation «foireuse» donc... roll

- Si tu n'as pas de fichier '/etc/lxc/lxc.conf', c'est normal sur une installation initiale: ce fichier permet de surcharger des variables de configuration, les valeurs par défaut sont appropriées dans la plupart des cas d'utilisation (j'indiquais plus haut qu'il pouvait être vide chez toi: absent, c'est mieux encore ! wink).

- '/etc/default/lxc-net' permet de configurer le serveur DNS/DHCP 'dnsmasq': la première ligne l'active, et là encore les valeurs par défaut suffisent pour démarrer.

- Et c'est lui qui te «construit» le bridge 'lxcbr0': du coup, je ne comprends bien ta question : «une connexion par pont ça m’intéresse aussi».

Le schéma ici dans le wiki me semble bien rendre compte de son action. Il permet de «sortir» via ton réseau. Mais peut-être tu te demandes comment «rentrer» dedans et accèder ainsi aux services que le container héberge ?

Si c'est le cas, le moyen le plus direct est de «NATer»: Revient à définir ici que si ton host est sollicité sur tel port, alors il faut envoyer le flux vers tel container (son adresse IP 'dnsmasq') sur tel port à l'écoute dans le container.

Je vois que tu nommes ton container 'mediawiki', qui va sans doute héberger le service du même nom ? C'est un service web qui va a priori être à l'écoute sur le port 80 à l'intérieur du container ?

La commande pour «NATer» utilise 'iptable' et de la forme:

 # iptables -t nat -A PREROUTING -p tcp -i <interface> --dport <portHost> -j DNAT --to-destination <@IP:Port Destination>



Supposons que ton container ait l'adresse 10.0.3.47 sur le réseau des containers, attribuée par la partie DCHP de 'dnsmasq'; tu retrouves cette adresse avec deux commandes possibles:
- ou la liste des containers qui affiche les adresses attribuées:

# lxc-ls -f


- ou plus précisémment pour ton container nommé:

# lxc-info -n mediawiki -i
IP:             10.0.3.47



Supposons que ton hôte de containers s'appelle 'nom-host' et que tu veuilles atteindre 'mediawiki' avec 'http://nom-host:60080' depuis une tablette en wifi par exemple.
Alors pour «NATer» tu utiliseras:

 # iptables -t nat -A PREROUTING -p tcp -i br0 --dport 60080 -j DNAT --to-destination 10.0.3.47:80


(interface du host 'br0' ou 'ensp030' ou l'interface wifi selon ta config....)

L'utilisation de l'url 'http://nom-host:60080' dans ton navigateur préféré te donneras accès à ton service !

et hop... smile

(évidemment au préalable, tu te seras «attaché» au container pour installer tout ce qu'il faut dedans:

# lxc-attach -n mediawiki

)

@+


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#10 20-03-2022 23:04:04

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Oui je compte bien installer mediawiki sur ce conteneur. Mon idée était de faire en sorte que le conteneur ait une ip 192.168.1.x au lieu de 10.0.3.60 actuellement pour pouvoir y accéder par le navigateur de l'hôte ou de toute autre machine de mon réseau. Je vais essayer avec iptables.

Dernière modification par Priareos (20-03-2022 23:05:37)

Hors ligne

#11 20-03-2022 23:45:10

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Ah pardon, j'avais pas compris.

Ça correspond à ce que j'indiquais plus haut avec la modification du fichier '/etc/network/interfaces' et la définition du bridge 'br0'.
Puis l'ajout dans le fichier de configuration du container '/var/lib/lxc/mediawiki/config' avec deux lignes:


lxc.net.0.link = lxcbr0
#lxc.net.0.link = br0
 


- Si tu commentes 'lxcbr0' et dé-commentes 'br0', tu arrêtes et relances le container et il va chercher son adresse sur la BOX de ton LAN en 192.168.1.x.
- Tu re-commentes / dé-commentes à l'inverse, tu  arrêtes et relances le container et il va chercher son adresse sur DHCP 'dnsmasq' en 10.0.3.x.

Perso, j'utilise cela pour la mise au point, mais pas en «cible» / «prod»...

En effet, l'inconvénient majeur des containers dits «privilégiés» est qu'ils sont créés depuis le compte 'root'. Cela signifie qu'un malin qui parviendrait à l'atteindre et à en sortir se retrouverait 'root' sur l'hôte. Pas bon ! Et moins encore si ce container est exposé directement sur le LAN, voire sur internet...

Non seulement je n'utilise que du container «non privilégié» (le propriétaire du container est un utilisateur «banalisé» sur l'hôte, le pirate n'aura jamais sur l'hôte que les droits de cet utilisateur-là), mais en plus je le «planque» à un double niveau: j'ai un container 'reverse proxy' pour les services web, pas branché à la box mais seul «NATé» sur l'hôte, et qui peut atteindre «derrière» tous les autres containers qui sont sur son réseau interne et jamais exposés, eux...

Mais bon, pour démarrer et voir comment ça marche, c'est bien de garder cette ligne droite plus simple !

@+


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#12 21-03-2022 13:08:03

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

En fait le nat fonctionne par défaut, l'hôte peut donc se connecter au conteneur sans problème. Au pire passe l'hôte en routeur pour le reste du lan. Merci à toi pour ton aide. Étrange tout de même cette première installation qui m'aura fait perdre beaucoup de temps faute d'avoir su par expérience que le résultat n'était pas normal il qu'il fallait simplement réinstaller.


J'ai tout de même tenter de mettre le conteneur sur le lan en suivant la doc officielle: https://wiki.debian.org/LXC/SimpleBridge. Résultat: plus de conteneur ni de connexion à internet pour l'hôte. Heureusement que j'avais juste commenté ce qui marchait.

Il n'est pas non plus possible de lancer debian bullseye dans un conteneur non privilégié:

$ lxc-create -n mediawiki -t debian -- -r bullseye -a amd64
This template can't be used for unprivileged containers.

Dernière modification par Priareos (21-03-2022 17:13:39)

Hors ligne

#13 21-03-2022 21:01:17

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Hello bonsoir,

Pour moi, «NATer» ne sert pas a atteindre un container depuis son hôte: ça c'est natif en effet, via des commandes comme 'lxc-console' ou 'lxc-attach'.
Il permet d'atteindre le ou les services proposé(s) par un container depuis le réseau (on y parle bien d'adresses et de ports).

Pour ce qui concerne debian livré avec 'lxc-template', le script associé ('/usr/share/lxc/templates/lxc-debian') est explicite: "This template can't be used for unprivileged containers."
Et il ajoute même : "You may want to try the \"download\" template instead." (d'où ma suggestion plus haut d'utiliser '-t download').
Donc, pas de surprise à vrai dire wink

Quant au wiki officiel auquel tu fais référence, celà dépend sans doute de quelle partie/option tu as essayé ? Ce que je propose plus haut correspond à l'une d'entre elles.
Laquelle tentes-tu ?

@+

Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#14 21-03-2022 21:44:59

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Hello,

Cet après-midi j'ai tenté la partie Host device as bridge, ça ne m'a pas trop bien réussi.
Je vais tenter avec la version download mais pourquoi le faire en root alors qu'un simple utilisateur doit pouvoir le créer?

Dernière modification par Priareos (21-03-2022 21:52:11)

Hors ligne

#15 22-03-2022 04:50:33

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Bonjour,

'root' ou 'user', c'est la différence entre des containers dits «privilégiés» et les containers «non privilégiés».
Manipuler ces derniers nécessite une configuration de l'outil:
- cf. ici: infos «natives», couvre davantage Ubuntu a priori.
- Je proposais quelque chose pour debian stretch à l'époque... (peut-être plus tout à fait à jour / valide donc)

Debian bullseye a introduit des commandes dédiées aux containers «non privilégiés» comme '/usr/bin/lxc-unpriv-attach' et '/usr/bin/lxc-unpriv-start': c'est un peu plus ... «velu» à mon sens du coup...

@+

Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#16 22-03-2022 10:51:05

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Bonjour,

Effectivement ton tuto ne marche pas bien avec Bullseyes. Maintenant même root ne peut plus créer de conteneur. Les acl je suppose car

# lxc-create -n mediawiki -t debian -- -r bullseye -a amd64


donne maintenant:

lxc 20220322094732.531 ERROR    conf - ../lxc/conf.c:lxc_map_ids:2865 - newuidmap failed to write mapping "": newuidmap 4065 0 10000 65536 65536 0 1
Failed to write id mapping for child process
lxc 20220322094732.532 ERROR    utils - ../lxc/utils.c:lxc_setgroups:1417 - Operation not permitted - Failed to setgroups()
lxc 20220322094732.532 ERROR    utils - ../lxc/utils.c:lxc_switch_uid_gid:1395 - Invalid argument - Failed to switch to gid 0
lxc-create: mediawiki: lxccontainer.c: create_run_template: 1616 Failed to create container from template
lxc-create: mediawiki: tools/lxc_create.c: main: 319 Failed to create container mediawiki

Dernière modification par Priareos (22-03-2022 10:52:28)

Hors ligne

#17 22-03-2022 11:49:18

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Bonjour,

Je crains que ton fichier '/etc/lxc/default.conf' contienne des mapping {u,g]id: En root, il ne doit pas y en avoir (container "privilégié").
Il faut virer les 'lxc.idmap = u ...' et 'lxc.idmap = g ... ' de ce fichier.

Les idmap ne sont valables que pour les containers "non privilégiés" dans le $HOME de l'utilisateur '~/.config/lxc/default.conf', pas dans '/etc/lxc/default.conf'

Ensuite, pour moi la création des "non privilégiés" devrait encore fonctionner: il faut juste utiliser:
- pour démarrer: 'lxc-unpriv-start -n ...' à la place de 'lxc-start -n ...'
- pour s'attacher: 'lxc-unpriv-attach -n ...' à la place de 'lxc-attach -n ...'

En principe...

@voir, @+

Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#18 22-03-2022 18:44:24

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Ah la la, heureusement que tu es là. les idmap ne sont plus là et root peut de nouveau créer des containers. Par contre l'utilisateur standard toujours pas. Dans un premier temps lxc a râlé à propos de la config du conteneur introuvable. J'ai donc copier ce fichier de config:

# cp /var/lib/lxc/mediawiki/config /home/priareos/.local/share/lxc/mediawiki



J'ai donnée la propriété du fichier à mon utilisateur standard et du coup il ne râle plus à ce propos mais a trouvé encore une autre raison:

$ lxc-unpriv-start -n mediawiki
Running scope as unit: run-r2b3a92b9ad1c475f81d82dcae8afc31a.scope
lxc-start: mediawiki: lxccontainer.c: wait_on_daemonized_start: 851 No such file or directory - Failed to receive the container state
lxc-start: mediawiki: tools/lxc_start.c: main: 308 The container failed to start
lxc-start: mediawiki: tools/lxc_start.c: main: 311 To get more details, run the container in foreground mode
lxc-start: mediawiki: tools/lxc_start.c: main: 313 Additional information can be obtained by setting the --logfile and --logpriority options
 

Dernière modification par Priareos (22-03-2022 18:46:11)

Hors ligne

#19 22-03-2022 20:29:33

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Hello bonsoir,

é bé je crois que tu vas devoir continuer à dire "Ah la la"... wink lol

Tu ne peux pas transformer aussi simplement que ça un container créé avec 'root' (privilégié) en un container 'user' (non privilégié) avec «juste» des copies de fichiers. C'est sans doute possible, mais c'est pas aussi «trivial», avec des histoires de droits et aussi de répertoires notamment.

Reprenons...

arrow.gif Si tu veux faire du 'container user' (non privilégié), il faut:

- créer des répertoires sur le $HOME de ton utilisateur:

$ mkdir -p ~/.local/share/lxc ~/.cache/lxc ~/.config/lxc  


- définir les éléments de config. valables pour toutes les créations de containers non privilégiés à venir dans '~/.config/lxc/default.conf'. C'est un truc du genre:


$ nano ~/.config/lxc/default.conf
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0     # Pour réseau LXC privé en 10.0.3.x
#lxc.net.0.link = br0       # Pour LAN/BOX DHCP en 192.168.1.x
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:xx:xx:xx
 
# Ajout {g,u}id pour containers "unprivileged" ==> METTRE LES {u,g}id de ton utilisateur $USER issus d'un $ cat /etc/s*id | grep ^$USER
lxc.idmap = u 0 100000 65536
lxc.idmap = g 0 100000 65536
 


- Si ton utilisateur est 'priareos', définir ce fichier/contenu pour lui donner des droits de création/utilisation des interfaces réseau (en nombre d'occurrences, nbre de containers quoi):


$ sudo nano /etc/lxc/lxc-usernet
priareos veth lxcbr0  5
priareos veth br0     5
 

(pour autant que tu ais bien défini le bridge 'br0', sinon pas de ligne 'br0')

- A partir de là, tu crées ton container:

$ lxc-create -n mediawiki -t download -- -d debian -r bullseye -a amd64


- et tu le lances avec:

$ lxc-unpriv-start -n mediawiki


- et tu t'y attaches (tu vas dedans pour y installer «tes petites affaires» / tes services) avec:

$ lxc-unpriv-attach -n mediawiki



Et pis c tout smile... «normalement», si je m'aie pas gouré cake-part... scratchhead.gif

@+

Dernière modification par Cram28 (22-03-2022 20:30:23)


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#20 22-03-2022 21:16:34

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Bonsoir,

Je crois que les ah la la vont malheureusement attendre encore un peu:

$ lxc-create -n mediawiki -t download -- -d debian -r bullseye -a amd64
Setting up the GPG keyring
ERROR: Unable to fetch GPG key from keyserver
lxc-create: mediawiki: lxccontainer.c: create_run_template: 1616 Failed to create container from template
lxc-create: mediawiki: tools/lxc_create.c: main: 319 Failed to create container mediawiki



A moins qu'il y ait un problème sur le serveur avec ses clés GPG mais j'en doute.

Hors ligne

#21 22-03-2022 21:24:55

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Zuteuuu !
C'est bien un problème de clé, j'ai oublié ce «détail», et aussi la manip que j'ai faite...

Peux-tu me donner, dans le fichier '/usr/share/lxc/templates/lxc-download', la valeur de 'DOWNLOAD_KEYSERVER', (vers la ligne 59)
J'ai:

DOWNLOAD_KEYSERVER="hkp://keyserver.ubuntu.com"



...


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#22 22-03-2022 21:32:03

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Je crois que c'est çà...

Contournement:

 $ lxc-create -n mediawiki -t download -- -d debian -r bullseye -a amd64 --keyserver hkp://keyserver.ubuntu.com



Ca l ' fait ou bien ?


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#23 22-03-2022 21:47:11

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

Bien, donc pas bien scratchhead.gif

Je te laisse juger:

$ lxc-create -n mediawiki -t download -- -d debian -r bullseye -a amd64 --keyserver hkp://keyserver.ubuntu.com
Setting up the GPG keyring
Downloading the image index
Downloading the rootfs
Downloading the metadata
The image cache is now ready
Unpacking the rootfs

---
You just created a Debian bullseye amd64 (20220322_05:25) container.

To enable SSH, run: apt install openssh-server
No default root or user password are set by LXC.



Là je me dis que c'est enfin bon mais c'est oublier que lxc m'en veux terriblement:

$ lxc-unpriv-start -n mediawiki
Running scope as unit: run-r53ff9c0395ba4258a22be3f0c2ba3ac8.scope
lxc-start: mediawiki: lxccontainer.c: wait_on_daemonized_start: 859 Received container state "ABORTING" instead of "RUNNING"
lxc-start: mediawiki: tools/lxc_start.c: main: 308 The container failed to start
lxc-start: mediawiki: tools/lxc_start.c: main: 311 To get more details, run the container in foreground mode
lxc-start: mediawiki: tools/lxc_start.c: main: 313 Additional information can be obtained by setting the --logfile and --logpriority options

Hors ligne

#24 22-03-2022 21:56:41

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Debian GNU/Linux 12 (bookworm)
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

hum...

Un lancement avec  :

$ lxc-unpriv-start -n mediawiki --logfile=mediawiki.log


Il va nous faire un fichier de log, plus «riche» peut-être...

Qu'y a t'il dedans:

$ cat mediawiki.log

?

(on avance quand même... roll)


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#25 22-03-2022 22:10:16

Priareos
Membre
Distrib. : Debian 11 Mate et 12 Gnome
Inscription : 25-07-2021

Re : [Résolu]Pas de réseau depuis conteneur LXC + conteneur non privilégié

On avance oui, mais va-t-on y arriver? Quel suspense.

$ cat mediawiki.log
lxc-start mediawiki 20220322210627.836 ERROR    start - start.c:print_top_failing_dir:98 - Permission denied - Could not access /home/priareos/.local. Please grant it x access, or add an ACL for the container root
lxc-start mediawiki 20220322210627.836 ERROR    sync - sync.c:__sync_wait:36 - An error occurred in another process (expected sequence number 3)
lxc-start mediawiki 20220322210627.836 ERROR    start - start.c:__lxc_start:1999 - Failed to spawn container "mediawiki"
lxc-start mediawiki 20220322210627.837 ERROR    lxccontainer - lxccontainer.c:wait_on_daemonized_start:859 - Received container state "ABORTING" instead of "RUNNING"
lxc-start mediawiki 20220322210627.837 ERROR    lxc_start - tools/lxc_start.c:main:308 - The container failed to start
lxc-start mediawiki 20220322210627.837 ERROR    lxc_start - tools/lxc_start.c:main:311 - To get more details, run the container in foreground mode
lxc-start mediawiki 20220322210627.837 ERROR    lxc_start - tools/lxc_start.c:main:313 - Additional information can be obtained by setting the --logfile and --logpriority options



Sinon le .local auquel il se plaint de ne pas avoir accès:

drwx------   3 priareos priareos       4096 Nov  3  2019  .local

Hors ligne

Pied de page des forums