• STATISTIQUES
  • Il y a eu un total de 1 membres et 26356 visiteurs sur le site dans les dernières 24h pour un total de 26 357 personnes!


    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] This is legal
    Basic: 10, Realistic: 5, Programming: 1, Bonus: 11, SQL: 2, Encryption: 6, Application: 4, User Contributed: 3
    Challenges
    [EN] Bright Shadows
    JavaScript: 13, Exploit: 27, Crypto: 69, CrackIt: 52, Stegano: 67, Flash: 3, Programming: 16, Java-Applet: 10, Logic: 20...
    Challenges
    [FR] Microcontest
    Cryptographie: 7, Mathématiques: 8, Image Son Vidéo: 5, Intelligence artificielle: 3, Réseau: 2, Divers: 7, Phy...
    Challenges
    [EN] Rosecode
    Programming: 36, Math: 29, Probability: 5, Sequence: 7, Crypto: 4, Brainf**k: 13, TimeRace: 4, Hack: 9
    Challenges
    [FR] Cyber-Hacker
    CH - Cyber Hacker est un jeu par navigateur de simulation de hack, programmez et envoyez vos virus et piratez les aut...
    Hacking
    [EN] Defcon
    Lancé en 1992 par Dark Tangent, DEFCON est la plus ancienne et la plus grande conférence underground de...
    Hacking
    [EN] Packet Storm
    Packet Storm est un site qui combine nouvelles de la sécurité informatique, téléchargemen...
    Vulnérabilités

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Monter un container LXC
03-01-2015, 13h50 (Modification du message : 16-01-2015, 20h05 par supersnail.)
Message : #1
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,609
Sujets : 71
Points: 465
Inscription : Jan 2012
Monter un container LXC
Bonjour à tous et bonne année !

Depuis quelques temps je fais joujou avec la virtualisation sur notre gnou/manchot préféré, et je profite de cette section "Administration système" flambant neuve pour faire un petit guide de la galaxie LXC pour les débutants.

I - LXC, kézako et à quoi ça va me servir ?

Tout d'abord, LXC est un projet (heureusement bien avancé) permettant de faire de la "virtualisation légère", c'est-à-dire de créer des machines virtuelles GNU/Linux qui utilisent le noyau de l'hôte. De plus, la virtualisation repose sur les fonctionnalité d'un noyau Linux récent "standard", ainsi contrairement à OpenVZ, pas besoin d'un noyau patché pour s'adonner au plaisirs de la virtualisation ! Big Grin. LXC s'apparente donc aux "jails" de FreeBSD ou encore aux "zones" de Solaris.

Venons-en à la deuxième question qui est "à quoi ça va me servir ?" (je supposerai ici que vous n'êtes pas un un sysadmin vétéran, cc Snorky :þ). Je pourrais répondre que cela peut permettre de tester de nouveaux logiciels sans craindre de péter sa distribution principale, isoler des programmes privateurs (qui a dit Oracle ?) ou qui essaient d'espionner l'utilisateur (qui a dit Skype ? >:]), ou tout simplement séparer environnement de dev/machine de tous les jours (la mise en place/migration d'une VM de production peut même se faire assez facilement grâce à Docker, qui s'appuie justement sur LXC, bien que Docker semble supporter d'autres technos). Cependant je ne recommande pas LXC pour faire des VM de CTF ou pour débugguer des malwares/rootkits, justement à cause du fait que le container et l'hôte partagent le même noyau (un exploit kernel et PAF le système :'))

II - Comment ça s'installe / comment on s'en sert ?

Tout d'abord il va falloir nous munir d'un compte root (étant donné que nous aurons plusieurs commandes à taper, je recommande un "su" et un "sudo -s" pour les ubunteros). Il nous faudra installer le paquet "lxc" de la distribution (via apt-get sur debian/ubuntu/mint, yum pour fedora et pacman pour archlinux).
Pour ceux qui ont une partition "/" assez petite, étant donner que les machines virtuelles vont se placer dans /var/lib/lxc, je vous recommande de symlinker ce répertoire vers une partition plus grande (de toute façon, seul root pourra accéder aux VM Wink).

Vient ensuite le grand moment de notre vie, l'installation de notre container \o/. Il suffit de taper la commande magique:
Code :
# lxc-create -n <nom_de_votre_vm> -t download
Ici, le "-t download" indique qu'on utilise le template "download", qui comme son nom l'indique va télécharger une image système depuis linuxcontainers.org afin de permettre un déploiment rapide (si vous êtes paranos, vous pouvez toujours installer les outils nécessaires pour construire une image vous-même et utiliser un template listé dans /usr/share/lxc/templates).
Vous devrez ensuite sélectionner la distribution, sa version ainsi que l'architecture (i386 pour du 32 bits et amd64 pour du 64bits), puis après un temps plus ou moins long, le temps de télécharger l'image du système, vous vous retrouvez face à votre container lxc tout brillant Big Grin.

Cependant, avant de lancer la VM, il vous faudra définir un mot de passe root, celui-ci n'ayant pas été défini dans les images de VM téléchargées. Vous pouvez pour le faire soit chrooter directement dans le dossier du container, soit la méthode plus "classe" qui est de démarrer le container (via un
Code :
lxc-start -n <le_nom_du_template>
) puis dans un autre terminal, obtenir un shell via un
Code :
lxc-attach -n <le_nom_du_template>
, puis lancer un "passwd".

Normalement, vous devriez avoir un container fonctionnel, mais sans accès au réseau cependant, ce que nous allons corriger dans la section suivante.

III - Configuration du réseau

Nous allons ici créer un réseau de type "veth" pour LXC (que l'on pourra aussi réutiliser pour des VM Qemu/KVM et ainsi avoir un joli LAN de machines virtuelles Big Grin) à l'aide d'un bridge.

Pour les ubunteros, le bridge est déjà préconfiguré (l'installation de lxc a créé un périphérique "lxcbr0" directement disponible). Sinon, je vous laisse vous référer à la documentation de votre distribution pour la création d'un bridge car je suis flemmard et j'ai pas envie de traiter la configuration du bridge pour chaque distribution existante. Dans ce tutoriel, on ne se limite qu'à la création d'un réseau privé virtuel, que vous pourrez éventuellement NATer. Dans la suite du tutoriel, je considèrerai que tout le monde a défini l'adresse IP de br0 (ou lxcbr0) à 10.0.1.1/24 (sans passerelle par défaut).

Une fois votre bridge créé, il suffit de modifier la configuration de la VM (dans /var/lib/lxc/<nom_de_la_vm>/config) et y rajouter/remplacer ceci:

Code :
lxc.network.type = veth
lxc.network.link = br0 # à remplacer par lxcbr0 pour les ubunteros ;)
lxc.network.ipv4 = 10.0.1.xx/24
lxc.network.ipv4.gateway = 10.0.1.1

Du côté de l'hyperviseur, un petit
Code :
iptables -t nat -F POSTROUTING -s 10.0.1.0/24 -j MASQUERADE
vous permettera de NATer en toute tranquilité Wink
Vous pouvez arrêtez le container, si vous l'avez déjà lancé via un petit "lxc-stop -n <nom_de_la_VM>". Au prochain démarrage vous devriez avoir un réseau fonctionnel ! (modulo le DNS à rajouter dans /etc/resolv.conf).

Ce sera tout ici, si vous avez des questions/difficultés de configuration n'hésitez pas à les poser Wink
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (7) -1 (0) Répondre


Messages dans ce sujet
Monter un container LXC - par supersnail - 03-01-2015, 13h50
RE: Monter un container LXC - par Atlas - 04-01-2015, 22h41
RE: Monter un container LXC - par supersnail - 04-01-2015, 23h01
RE: Monter un container LXC - par otherflow - 07-01-2015, 01h07
RE: Monter un container LXC - par 0pc0deFR - 08-01-2015, 20h13
RE: Monter un container LXC - par supersnail - 08-01-2015, 20h21
RE: Monter un container LXC - par T1loc - 28-01-2015, 18h06
RE: Monter un container LXC - par Xpl0ze - 03-09-2015, 18h45
RE: Monter un container LXC - par supersnail - 03-09-2015, 19h05

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut