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 28/07/2018, 10:50] beaver |
lxc [Le 19/12/2018, 06:35] 193.107.85.62 [Iptables (utilisation basique) et bridge] |
||
---|---|---|---|
Ligne 379: | Ligne 379: | ||
Ou bien : | Ou bien : | ||
- | <code bash>cd /home/$USER/.local/lxc/nom_de_votre_container/</code> | + | <code bash>sudo -i && cd /home/$USER/.local/lxc/nom_de_votre_container/</code> |
Ensuite, nous utilisons la commande [[tar|tar]] avec son option **--numeric-owner**, qui est ici très importante. Elle va permettre de garder les **uid/gid** intactes lors de l'extraction. Nous utilisons aussi l'outil [[apt>gzip|gzip]] et son option **-9((--best-compression.))**, qui vous offrira, une compression maximale. | Ensuite, nous utilisons la commande [[tar|tar]] avec son option **--numeric-owner**, qui est ici très importante. Elle va permettre de garder les **uid/gid** intactes lors de l'extraction. Nous utilisons aussi l'outil [[apt>gzip|gzip]] et son option **-9((--best-compression.))**, qui vous offrira, une compression maximale. | ||
- | <code bash>export GZIP=-9 tar --numeric-owner -czvf mon_container.tar.gz ./*</code> | + | <code bash>GZIP=-9 tar --numeric-owner -czvf mon_container.tar.gz ./*</code> |
Vous voilà maintenant en possession d'un backup de votre container, passons maintenant à sa restauration. | Vous voilà maintenant en possession d'un backup de votre container, passons maintenant à sa restauration. | ||
Ligne 486: | Ligne 486: | ||
<code bash>sudo((container unprivileged ou non?)) lxc-snapshot -r snapX -n nom_de_mon_container</code> | <code bash>sudo((container unprivileged ou non?)) lxc-snapshot -r snapX -n nom_de_mon_container</code> | ||
+ | |||
+ | ===== Iptables (utilisation basique) et bridge ===== | ||
+ | |||
+ | Vous trouverez ici, une esquisse d'un script [[:iptables]], pour faire fonctionner votre container LXC. Il est bien entendu à ajouter aux règles que **vous avez déjà**, et à exécuter depuis votre [[wpfr>Hôte_(informatique)|machine hôte]] !. Cette esquisse est surtout utile si vous avez **un firewall d'actif**, sinon, vous devez juste activer le port forwarding((echo 1 > /proc/sys/net/ipv4/ip_forward)), et **configurer le fichier lxc-net comme ci-bas**. Nous noterons aussi, que nous pouvons encore être plus restrictif, mais cette configuration semble adéquate pour un [[wpfr>Luser|profane]]((Et c'est pas péjoratif ce script est qu'une ébauche.)). | ||
+ | |||
+ | Nous devons aussi, absolument [[:installation_logiciel|installer le package]] [[apt>dnsmasq-base]], qui est, logiquement déjà installé sur votre machine. Et ensuite configurer LXC pour qu'il utilise la technologie [[apt>lxc-net|bridge]]. | ||
+ | |||
+ | Veuillez [[:tutoriel:comment_modifier_un_fichier|éditer le fichier]] **/etc/default/lxc-net**, pour avoir comme résultat final : | ||
+ | |||
+ | <code> | ||
+ | USE_LXC_BRIDGE="true" | ||
+ | </code> | ||
+ | |||
+ | Nous devons ensuite redémarrer notre service **lxc-net** : | ||
+ | |||
+ | <code>sudo systemctl restart lxc-net</code> | ||
+ | |||
+ | Pour vérifier que tout est ok : | ||
+ | |||
+ | <code>ip -4 -o a show lxcbr0</code> | ||
+ | Retournera par exemple : | ||
+ | <code> | ||
+ | 3: lxcbr0 inet 10.0.3.1/24 scope global lxcbr0\ valid_lft forever preferred_lft forever | ||
+ | </code> | ||
+ | |||
+ | Et voici le script [[:iptables]] : | ||
+ | |||
+ | <file bash iptables_lxc> | ||
+ | #!/bin/bash | ||
+ | ## Créé par BeAvEr, modifié par -> ?. | ||
+ | ### Merci d'utiliser FIXME au sein du dokuwiki francophone Ubuntu au besoin, | ||
+ | ### ou d'apporter votre contribution sur ce script, ici même. | ||
+ | #### Merci de garder un aspect "humain" au script. | ||
+ | ##### Le tout étant d'avoir juste les règles basiques, pour qu'un Luser/Profane/Néophyte, puisse utiliser LXC | ||
+ | ##### de manière **"relativement"** sécurisé. (Pouvoir ping, apt-update, et cetera, et dans cet ordre là, depuis son container, pas plus). | ||
+ | |||
+ | # Nous activons le port forwarding, pour pouvoir communiquer à l'intérieur de notre container. | ||
+ | |||
+ | echo 1 > /proc/sys/net/ipv4/ip_forward | ||
+ | |||
+ | ## Règles iptables | ||
+ | iptables-restore < /etc/iptables.test.rules | ||
+ | iptables -F | ||
+ | iptables -X | ||
+ | iptables -t nat -F | ||
+ | iptables -t nat -X | ||
+ | iptables -t mangle -F | ||
+ | iptables -t mangle -X | ||
+ | iptables -I INPUT -s 10.8.0.0/24 -i lxcbr0 -p udp --dport 67 -j ACCEPT | ||
+ | iptables -I INPUT -s 10.8.0.0/24 -i lxcbr0 -p tcp --dport 67 -j ACCEPT | ||
+ | iptables -I INPUT -s 10.8.0.0/24 -i lxcbr0 -p udp --dport 53 -j ACCEPT | ||
+ | iptables -I INPUT -s 10.8.0.0/24 -i lxcbr0 -p tcp --dport 53 -j ACCEPT | ||
+ | iptables -I FORWARD -s 10.8.0.0/24 -i lxcbr0 -j ACCEPT | ||
+ | iptables -I FORWARD -s 10.8.0.0/24 -o lxcbr0 -j ACCEPT | ||
+ | iptables -t nat -A POSTROUTING -s 10.0.3.1/24 ! -d 10.0.3.1/24 -j MASQUERADE | ||
+ | iptables -t mangle -A POSTROUTING -o lxcbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill | ||
+ | |||
+ | exit 0 | ||
+ | </file> | ||
+ | |||
---- | ---- | ||
Ligne 492: | Ligne 552: | ||
* [[https://www.youtube.com/watch?v=caXHwYC3tq8|3 premières minutes de cette vidéo explique ce qu'est lxc]] | * [[https://www.youtube.com/watch?v=caXHwYC3tq8|3 premières minutes de cette vidéo explique ce qu'est lxc]] | ||
* [[:LXD]] pour gérer les containers. [[:Docker]] décrit dans la vidéo citée précédemment n'utilise plus lxc. | * [[:LXD]] pour gérer les containers. [[:Docker]] décrit dans la vidéo citée précédemment n'utilise plus lxc. | ||
- | |||
---- | ---- | ||
Contributeur(s): [[:utilisateurs:beaver|BeAvEr]]. | Contributeur(s): [[:utilisateurs:beaver|BeAvEr]]. |