Sujet - Juuujuuu/Born2BeRoot GitHub Wiki
Ce projet consiste à vous faire mettre en place votre premier serveur en suivant des règles spécifiques.
Utilisation de Debian sans interface graphique.
Step 1 : Installer Debian sur la VM
Step 2 : Créer au minimum 2 partitions chiffrées en utilisant LVM.
Step 3 : Gestion du service SSH
- Un service SSH sera actif sur le port 4242 uniquement. Pour des questions de sécurité, on ne devra pas pouvoir se connecter par SSH avec l’utilisateur root.
- Vous allez configurer votre système d’exploitation avec le pare-feu UFW et ainsi ne laisser ouvert que le port 4242.
Step 4 : Hostname et Root
- Votre machine aura pour hostname votre login suivi de 42 (exemple : wil42). Vous serez amené(e) à modifier ce hostname durant votre évaluation.
- Un utilisateur sera présent avec pour nom votre login en plus de l’utilisateur root.
- Cet utilisateur appartiendra aux groupes user42 et sudo.
Step 5 : mettre en place une politique de mot de passe fort.
Pour ça, il faudra remplir les conditions suivantes :
- Votre mot de passe devra expirer tous les 30 jours.
- Le nombre minimum de jours avant de pouvoir modifier un mot de passe sera
- configuré à 2.
- L’utilisateur devra recevoir un avertissement 7 jours avant que son mot de passe
- n’expire.
- Votre mot de passe sera de 10 caractères minimums dont une majuscule et un
- chiffre, et ne devra pas comporter plus de 3 caractères identiques consécutifs.
- Le mot de passe ne devra pas comporter le nom de l’utilisateur.
- La règle suivante ne s’applique pas à l’utilisateur root : le mot de passe devra
- comporter au moins 7 caractères qui ne sont pas présents dans l’ancien mot de
- passe.
- Bien entendu votre mot de passe root devra suivre cette politique.
Step 6 : Mise en place sudo selon une pratique stricte
- L’authentification en utilisant sudo sera limitée à 3 essais en cas de mot de passe erroné.
- Un message de votre choix s’affichera en cas d’erreur suite à un mauvais mot de passe lors de l’utilisation de sudo.
- Chaque action utilisant sudo sera archivée, aussi bien les inputs que les outputs.
- Le journal se trouvera dans le dossier /var/log/sudo/.
- Le mode TTY sera activé pour des questions de sécurité.
- Les paths utilisables par sudo seront restreints, là encore pour des questions de sécurité. Exemple : /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Step 7 : Ecrire un script bash
Le script sera nommé monitoring.sh. Ce dernier sera à développer en bash. Dès le lancement de votre serveur, le script écrira des informations toutes les 10 minutes sur tous les terminaux (jetez un oeil du côté de wall). La bannière est facultative. À aucun moment la moindre erreur ne doit être visible.
Votre script devra toujours pouvoir afficher les informations suivantes :
- L’architecture de votre système d’exploitation ainsi que sa version de kernel.
- Le nombre de processeurs physiques.
- Le nombre de processeurs virtuels.
- La mémoire vive disponible actuelle sur votre serveur ainsi que son taux d’utilisation sous forme de pourcentage.
- La mémoire disponible actuelle sur votre serveur ainsi que son taux d’utilisation
- sous forme de pourcentage.
- Le taux d’utilisation actuel de vos processeurs sous forme de pourcentage.
- La date et l’heure du dernier redémarrage.
- Si LVM est actif ou pas.
- Le nombre de connexions actives.
- Le nombre d’utilisateurs utilisant le serveur.
- L’adresse IPv4 de votre serveur, ainsi que son adresse MAC (Media Access Control).
- Le nombre de commandes exécutées avec le programme sudo