En tant qu'ingénieur logiciel et professionnel de la cybersécurité, j'ai parfois vraiment besoin de monter de nombreuses machines en même temps dans mon ordinateur.
L'un faisant semblant d'être une victime, une autre faisant semblant d'être l'attaquant, une autre faisant semblant d'être autre chose ...
Il est très difficile de créer ce tas de machines à la main à l'aide de Docker ou même de machines virtuelles.
J'ai créé un script bash simple qui reconnaît un dossier en tant que machine directory .
Un machine directory est tout répertoire qui contient un fichier machine.config valide.
Ce pourrait être votre référentiel Git, un dossier aléatoire, votre dossier de projet, ne mettera pas!
Si vous avez ce fichier machine.config , ce répertoire sera considéré comme un machine directory .
Donc, pour avoir un tas de machines, vous pouvez simplement créer un tas de fichiers de configuration et c'est tout , pour changer les machines, vous pouvez simplement entrer dans le répertoire de machine spécifique que vous souhaitez et exécuter os_connect , et un shell sera ouvert à vous avec un état persistant .
Pour voir plus d'informations sur la machine, exécutez simplement os_info .
Et vous aurez une sortie comme ceci:
OS INFO
ID: d442817e2db23ed43084cd812c3ae1cddd02d7185c70ffe83d0ddf0cac281cc6
IMAGE: alpile:latest
STORAGE LOCATION: /tmp/d442817e2db23ed43084cd812c3ae1cddd02d7185c70ffe83d0ddf0cac281cc6/data
Maintenant, si vous souhaitez vous connecter à la machine, il suffit d'exécuter: os_connect et un shell vous sera ouvert.
N'ayez pas peur de quitter votre machine, vos données seront persistées dans l' emplacement de stockage , vous devez vous rappeler que ce code passe sur les conteneurs Docker.
Mais, et si je veux retirer la machine? Exécutez simplement os_remove .
Vous ne croyez pas à quel point c'est facile.
name=alpine-os
image=alpine:latest
storage=/data
Ouais, juste ces trois lignes!
Le name de clé est un nom arbitraire de votre machine, je vous recommande le modèle <os-system>-os . L' image clé est le nom d'image du système de Docker Hub. Le storage clé est le chemin du volume de la machine pour le rendre persistant.
Les configurations ci-dessus sont les configurations nécessaires pour exécuter un système alpine .
Il suffit de courir ./install.sh
Cela copiera le .machinesrc dans votre répertoire domestique et ajoutera la ligne suivante à votre .bashrc :
source $HOME /.machinesrc