Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
lxc [Le 27/07/2018, 17:28] beaver |
lxc [Le 26/08/2018, 16:45] beaver Tant pis, pas si utile |
||
---|---|---|---|
Ligne 17: | Ligne 17: | ||
===== Création de notre premier container LXC (root) ===== | ===== Création de notre premier container LXC (root) ===== | ||
- | <note warning>Attention, bien que vos processus soient isolés de votre [[wpfr>Hôte_(informatique)|machine hôte]], via ce procédé, votre container LXC nécessitera d'utiliser [[:sudo|sudo]] pour être fonctionnel. Si vous avez une faille de sécurité dans votre container, une [[wp>Privilege_escalation|escalade des privilèges]] peut être intenté sur votre container, pour accéder à votre [[wpfr>Hôte_(informatique)|machine hôte]]. L'utilisation de [[:sudo|sudo]] pourrait donc compromettre votre [[wpfr>Hôte_(informatique)|système hôte]] !.</note> | + | <note warning>Attention, bien que vos processus soient isolés de votre [[wpfr>Hôte_(informatique)|machine hôte]], via ce procédé, votre container [[apt>lxc|LXC]] nécessitera d'utiliser [[:sudo|sudo]] pour être fonctionnel. Si vous avez une faille de sécurité dans votre container, une [[wp>Privilege_escalation|escalade des privilèges]] peut être intenté sur votre container, pour accéder à votre [[wpfr>Hôte_(informatique)|machine hôte]]. L'utilisation de [[:sudo|sudo]] pourrait donc compromettre votre [[wpfr>Hôte_(informatique)|système hôte]] !.</note> |
Pour créer un container avec pour nom((Option -n.)) **container_xenial**, pour la distribution((Option -d.)) **Ubuntu**, sous la release((Option -r.)) **Xenial**, ayant une architecture((Option -a.)) **amd64**, nous utiliserons cette commande : | Pour créer un container avec pour nom((Option -n.)) **container_xenial**, pour la distribution((Option -d.)) **Ubuntu**, sous la release((Option -r.)) **Xenial**, ayant une architecture((Option -a.)) **amd64**, nous utiliserons cette commande : | ||
Ligne 118: | Ligne 118: | ||
Deux solutions s'offrent maintenant à nous pour accéder à notre container, nous pouvons utiliser la commande [[ssh|ssh]], ou bien, nous pouvons utiliser la commande **lxc-console** : | Deux solutions s'offrent maintenant à nous pour accéder à notre container, nous pouvons utiliser la commande [[ssh|ssh]], ou bien, nous pouvons utiliser la commande **lxc-console** : | ||
- | |||
- | |||
<code bash>## | <code bash>## | ||
Ligne 144: | Ligne 142: | ||
---- | ---- | ||
- | <note>**__//Conclusion//__** : Vous voilà maintenant en possession d'un container LXC **Ubuntu 16.04** ayant pour nom **container_xenial** !.</note> | + | <note>**__//Conclusion//__** : Vous voilà maintenant en possession d'un container [[apt>lxc|LXC]] **Ubuntu 16.04** ayant pour nom **container_xenial** !.</note> |
- | Le chemin absolu de votre container **container_xenial** se trouve dans : | + | Le [[wpfr>Chemin_d%27accès|chemin absolu]] de votre container **container_xenial** se trouve dans : |
<code bash>/var/lib/lxc/container_xenial/rootfs</code> | <code bash>/var/lib/lxc/container_xenial/rootfs</code> | ||
La configuration de votre container **container_xenial** se trouve dans : | La configuration de votre container **container_xenial** se trouve dans : | ||
Ligne 169: | Ligne 167: | ||
===== Configuration de LXC pour une utilisation unprivileged ===== | ===== Configuration de LXC pour une utilisation unprivileged ===== | ||
- | Pour pouvoir utiliser LXC sans [[sudo|sudo]], et donc par conséquent, minimiser le risque qu'un attaquant arrive à avoir accès à votre [[wpfr>Hôte_(informatique)|hôte système]] à cause de l'utilisation de [[sudo|sudo]], nous allons déjà récupérer le **subgid** ainsi que le **subguid** de notre utilisateur courant : | + | Pour pouvoir utiliser [[apt>lxc|LXC]] sans [[sudo|sudo]], et donc par conséquent, minimiser le risque qu'un attaquant arrive à avoir accès à votre [[wpfr>Hôte_(informatique)|hôte système]] à cause de l'utilisation de [[sudo|sudo]], nous allons déjà récupérer le **subgid** ainsi que le **subguid** de notre utilisateur courant : |
<code bash> | <code bash> | ||
cat /etc/sub{g,u}id | grep $USER | cat /etc/sub{g,u}id | grep $USER | ||
Ligne 296: | Ligne 294: | ||
À ce stade, vous allez pouvoir utiliser la commande **passwd ubuntu** et ainsi, définir le mot de passe que vous voulez à votre utilisateur **ubuntu** ! ;-). | À ce stade, vous allez pouvoir utiliser la commande **passwd ubuntu** et ainsi, définir le mot de passe que vous voulez à votre utilisateur **ubuntu** ! ;-). | ||
- | Le chemin absolu de votre container **container_unprivileged** se trouve dans : | + | Le [[wpfr>Chemin_d%27accès|chemin absolu]] de votre container **container_unprivileged** se trouve dans : |
<code bash>/home/$USER/.local/lxc/container_unprivileged/rootfs</code> | <code bash>/home/$USER/.local/lxc/container_unprivileged/rootfs</code> | ||
Ligne 308: | Ligne 306: | ||
<code bash>/var/lib/lxc/container_name/config</code> | <code bash>/var/lib/lxc/container_name/config</code> | ||
- | La configuration de votre LXC **unprivileged** se trouve dans : | + | La configuration de votre [[apt>lxc|LXC]] **unprivileged** se trouve dans : |
<code bash> | <code bash> | ||
Ligne 349: | Ligne 347: | ||
---- | ---- | ||
- | <note>**__//Conclusion//__** : Vous voilà maintenant en possession d'un container LXC **Ubuntu 16.04**, le tout en "mode" **unprivileged**, ayant pour nom **container_unprivileged** !. Pour le reste, la syntaxe reste la même, veillez surtout à ne plus utiliser : <code bash>sudo lxc-trucmuche</code> mais juste : <code bash>lxc-trucmuche</code>.</note> | + | <note>**__//Conclusion//__** : Vous voilà maintenant en possession d'un container [[apt>lxc|LXC]] **Ubuntu 16.04**, le tout en "mode" **unprivileged**, ayant pour nom **container_unprivileged** !. Pour le reste, la syntaxe reste la même, veillez surtout à ne plus utiliser : <code bash>sudo lxc-trucmuche</code> mais juste : <code bash>lxc-trucmuche</code>.</note> |
Ligne 371: | Ligne 369: | ||
Il est relativement aisé, de backup un container LXC, pour se faire, veuillez ouvrir un [[:terminal|terminal]]. | Il est relativement aisé, de backup un container LXC, pour se faire, veuillez ouvrir un [[:terminal|terminal]]. | ||
- | Ensuite nous devons déjà stopper notre container LXC : | + | Ensuite nous devons déjà stopper notre container [[apt>lxc|LXC]] : |
<code bash>sudo((Container unprivileged ou non ?)) lxc-stop -n nom_de_mon_container</code> | <code bash>sudo((Container unprivileged ou non ?)) lxc-stop -n nom_de_mon_container</code> | ||
Ligne 426: | Ligne 424: | ||
<note tip>Nous aborderons ici, que la restauration de votre backup précédemment créé. | <note tip>Nous aborderons ici, que la restauration de votre backup précédemment créé. | ||
- | Pour la configuration d'un container LXC **unprivileged**, merci de suivre le chapitre [[lxc#configuration_de_lxc_pour_une_utilisation_unprivileged|configuration de lxc pour une utilisation unprivileged]]. | + | Pour la configuration d'un container [[apt>lxc|LXC]] **unprivileged**, merci de suivre le chapitre [[lxc#configuration_de_lxc_pour_une_utilisation_unprivileged|configuration de lxc pour une utilisation unprivileged]]. |
</note> | </note> | ||
Ligne 461: | Ligne 459: | ||
==== Méthode lxc-snapshot ==== | ==== Méthode lxc-snapshot ==== | ||
- | <note>En cours de rédaction.--- //[[:utilisateurs:beaver|beaver]] Le 27/07/2018, 12:08//</note> | + | Il existe un outil dédié à [[apt>lxc|LXC]] pour backup votre container, il se prénomme [[apt>lxc-snapshot|lxc-snapshot]]. |
+ | |||
+ | Il faut tout d'abord, éteindre notre container : | ||
+ | |||
+ | <code bash>sudo((container unprivileged ou non ?)) lxc-stop -n nom_de_mon_container</code> | ||
+ | |||
+ | Ensuite nous utilisons [[apt>lxc-snapshot|lxc-snapshot]] : | ||
+ | |||
+ | <code bash>sudo((container unprivileged ou non ?)) lxc-snapshot -n nom_de_mon_container</code> | ||
+ | |||
+ | <code bash>beaver@home:~$ sudo lxc-snapshot -n container_xenial | ||
+ | lxc-snapshot: lxccontainer.c: do_lxcapi_snapshot: 3405 Snapshot of directory-backed container requested. | ||
+ | lxc-snapshot: lxccontainer.c: do_lxcapi_snapshot: 3406 Making a copy-clone. If you do want snapshots, then | ||
+ | lxc-snapshot: lxccontainer.c: do_lxcapi_snapshot: 3407 please create an aufs or overlayfs clone first, snapshot that | ||
+ | lxc-snapshot: lxccontainer.c: do_lxcapi_snapshot: 3408 and keep the original container pristine. | ||
+ | </code> | ||
+ | |||
+ | Pour connaitre le [[wpfr>Chemin_d%27accès|chemin absolu]] de votre snapshot, vous utiliserez : | ||
+ | |||
+ | <code bash>sudo((container unprivileged ou non?)) lxc-snapshot -L -n nom_de_mon_container</code> | ||
+ | <code bash>beaver@home:~$ sudo lxc-snapshot -L -n container_xenial | ||
+ | snap0 (/var/lib/lxc/container_xenial/snaps) 2018:07:28 10:25:48 | ||
+ | </code> | ||
+ | |||
+ | Pour restaurer un container depuis votre snapshot vous utiliserez : | ||
+ | |||
+ | <code bash>sudo((container unprivileged ou non?)) lxc-snapshot -r snapX -n nom_de_mon_container</code> | ||
---- | ---- |