Simuler la Disponibilité du Service et la Surveillance de Base
Dans cette étape, vous explorerez le principe de l'Disponibilité, le troisième composant de la triade de sécurité CIA. La disponibilité garantit que les systèmes et les services sont opérationnels et accessibles lorsque nécessaire. Vous simulerez un service web simple, apprendrez à vérifier s'il est en cours d'exécution, simulerez une défaillance de service, puis rédigerez un script de surveillance de base pour automatiser la vérification de la disponibilité.
Tout d'abord, assurez-vous d'être dans le répertoire ~/project.
Nous utiliserons le serveur web intégré de Python pour simuler un service en cours d'exécution. Cette commande démarrera un serveur web sur le port 8000 et servira les fichiers du répertoire courant. Le & à la fin exécute le processus en arrière-plan, vous permettant de continuer à utiliser votre terminal.
python3 -m http.server 8000 &
Vous verrez un message indiquant que le processus a démarré, ainsi que son identifiant de processus (PID).
[1] 12345
Appuyez sur Entrée pour continuer.
Votre service est maintenant en cours d'exécution. Une manière basique de vérifier si un service est en cours d'exécution est de voir si son processus existe. Nous pouvons utiliser la commande pgrep pour trouver le PID d'un processus par son nom.
pgrep -f http.server
Cela devrait renvoyer le PID du processus serveur, confirmant qu'il est en mémoire.
12345
Cependant, un processus en cours d'exécution ne garantit pas que le service fonctionne correctement. Une meilleure vérification consiste à essayer de s'y connecter, comme le ferait un utilisateur. Nous utiliserons la commande curl pour envoyer une requête à notre serveur local.
curl http://localhost:8000/confidential_data.txt
Étant donné que le service est disponible, il répondra avec le contenu du fichier que vous avez créé lors des étapes précédentes.
Top Secret Details
This is an unauthorized modification.
Maintenant, simulons une défaillance de service. Nous utiliserons la commande kill pour terminer le processus du serveur web. Vous aurez besoin du PID que vous avez trouvé précédemment.
## Remplacez 12345 par le PID réel obtenu avec la commande pgrep
kill 12345
Après avoir exécuté kill, vous pourriez voir un message "Terminated" pour le job en arrière-plan. Essayons maintenant d'accéder à nouveau au service avec curl.
curl http://localhost:8000/confidential_data.txt
Cette fois, la commande échouera car le service n'est plus en cours d'exécution et ne peut pas accepter la connexion. Cela démontre un manque de disponibilité.
curl: (7) Failed to connect to localhost port 8000 after 0 ms: Connection refused
Enfin, créons un script de surveillance simple pour automatiser cette vérification. Créez un nouveau fichier nommé monitor.sh en utilisant nano.
nano monitor.sh
Entrez le script suivant dans l'éditeur. Ce script utilise curl pour vérifier le service. S'il obtient une réponse réussie (200 OK), il indique que le service est "UP" ; sinon, il indique "DOWN".
#!/bin/bash
## Vérifie si le service à localhost:8000 répond
if curl -s --head http://localhost:8000 | grep "200 OK" > /dev/null; then
echo "Service Status: UP"
else
echo "Service Status: DOWN"
fi
Enregistrez le fichier et quittez nano en appuyant sur Ctrl+X, puis Y, et Entrée.
Rendez le script exécutable en utilisant chmod :
chmod +x monitor.sh
Exécutez maintenant votre script de surveillance. Comme le service est arrêté, il devrait indiquer "DOWN".
./monitor.sh
Service Status: DOWN
Vous avez maintenant appris à démarrer un service, à vérifier sa disponibilité, à simuler une défaillance et à créer un script de base pour le surveiller.