Skip to content

Latest commit

 

History

History
392 lines (276 loc) · 10.8 KB

Configuration_NoComment.md

File metadata and controls

392 lines (276 loc) · 10.8 KB

Fin d'installation début de Configuration

Avec ce guide nous ferons la mise en place des services:

  1. sudo
  2. UFW
  3. SSH
  4. Mettre une politique de mot de passe fort
  5. Créer un script qui s'exécutera automatiquement.

Si vous voulez savoir comment installer une VM , partition etc suivez ce guide.

Sudo Configuration

Avoir la session root:

su root

Installer sudo:

# apt update
# apt upgrade
# apt install sudo

Ajouter l’user dans le groupe sudo:

# sudo usermod -aG sudo <username>

Retourner sur la session de votre utilisateur. Pour cela faites la commande exit. Et vérifions si votre user a à présent le privilège sudo :

sudo whoami

La réponse devra être root. Sinon vous votre user n'a pas accès au sudo il faudra ajouter cette ligne directement dans le fichier configuration du sudo:

username  ALL=(ALL:ALL) ALL

Pour accéder au fichier de configuration du sudo (sudoers.tmp) :

# sudo visudo

Et ajouter les paramètre par défaut qui est demandé dans le sujet :

Defaults  passwd_tries=3 #3 tentative pour utilise le sudo
Defaults  badpass_message="Wrong password. Try again!"# Message d'erreur pour mauvais mot de passe
Defaults  log_input #On souhaite récupérer les log d'inpute
Defaults  logfile="/var/log/sudo/sudo.log" #Ou es qu'on souhaite ranger les log d'input
Defaults  log_output #On souhaite récupérer les log d'output
Defaults  iolog_dir="/var/log/sudo"#Ou es qu'on souhaite ranger les log d'output
Defaults  requiretty #Requiretty exige une console pour utiliser sudo

Si var/log/sudo le dossier sudo n'existe pas il faudra le créer, mkdir var/log/sudo.

CONFIGURATION SUDO FINI.

UFW Setup

Installer et Activer UFW:

sudo apt update
sudo apt upgrade
sudo apt install ufw
sudo ufw enable

Vérifier l’UFW status:

sudo systemctl status ufw

ou

sudo ufw status verbose

Allow et deny ports:

sudo ufw allow <port>
sudo ufw deny <port>

Comment Supprimer les règles d'un port:

sudo ufw delete allow <port>
sudo ufw delete deny <port>

Voici une autre méthode:

sudo ufw status numbered
sudo ufw delete <port index number>

Attention avec cette deuxième méthode, l'index change après une suppression, vérifier après chaque suppression l'index.

Il faut seulement le port 4242 en allow, voici le résultat attendu :

To                         Action      From
--                         ------      ----
4242                       ALLOW       Anywhere                  
4242 (v6)                  ALLOW       Anywhere (v6) 

FIN d'UFW

SSH configuration

Installer OpenSSH:

sudo apt update
sudo apt upgrade
sudo apt install openssh-server

Vérifier le statut de SSH:

sudo systemctl status ssh

Changer le port d'écoute de SSH pour mettre le port 4242, aller au fichier de configuration de ssh :

sudo nano /etc/ssh/sshd_config

trouver cette ligne:

#Port 22

Il faut la décommenter en supprimant '#' et changer 22 par 4242:

Port 4242

!! Re activer le service SSH pour mettre le nouveau port:

sudo systemctl restart ssh

Rediriger le port hôte 4243 vers le port invité 4242 : dans VirtualBox,

  • aller sur VirtualBox >> Paramètre >> Réseaux >> Adapter 1 >> Avance >> Port Forwarding.
  • add a rule: Host port 4243 and guest port 4242. (Vérifier sur mon pc et faire des screen).

Re activer le service SSH après changement.

Vérifions si cela marche pour cela nous allons essayer de nous connecter depuis le terminal du PC :

ssh <username>@localhost -p 4243"

Ou:

ssh <username>@<l'adresse ip de la VM> -p 4243

Pour quitter la connexion ssh faites la commande exit.

Vérifier que vous ne pouvez pas vous connecter en tant que root, Pour cela faites :

ssh root@<localhost -p 4243

Essayez de mettre votre code et s'il vous dit accès refusé ou denied, alors c'est bon.

Partie SSH Fini.

Politique de mot de passe

Configurer /etc/login.defs et trouver "password aging controls". Modifier pour faire ce que le sujet demande:

PASS_MAX_DAYS 30 # tout les 30 jour un nouveaux mot de passe
PASS_MIN_DAYS 2 # Vous pouvez changer un mot de passe seulement tout les 2 jour
PASS_WARN_AGE 7 # Une alerte sera envoyer 7 jour avant la date de changement de mot de passe

Ces changement seront appliqués automatiquement mais pas pour l'utilisateur déjà créé et le root donc il faudra appliquer ces changement à utilisateur et au root :

sudo chage -M 30 <username/root>
sudo chage -m 2 <username/root>
sudo chage -W 7 <username/root>

Utilise chage -l <username/root> Pour vérifier les changements.

Installe une bibliothèque qui vérifie la politique de mot de passe:

sudo apt install libpam-pwquality

Allons, configurer le /etc/security/pwquality.conf voila ce qu'il faudra mettre:

...
...
difok = 7
...
...
minlen = 10
...
...
dcredit = -1
...

...
ucredit = -1
# ...
maxrepeat = 3
# ...
usercheck = 1
# ...
retry = 3
...
enforce_for_root
# ...

A présent essayez de vérifier que chaque condition fonctionne en changeant le mot de passe de l'user

sudo passwd <user/root>

FIN de la politique de mot de passe.

Hostname, Users et Groups

Le hostname devra être your_intra_login42, mais le Hostname sera voué à être changé durant la présentation. voila la commande qui permet de changer le host:

sudo hostnamectl set-hostname <new_hostname> 
hostnamectl status

Il doit y avoir un utilisateur avec your_intra_login comme nom d'utilisateur. Lors de l'évaluation, il vous sera demandé de créer, supprimer, modifier des comptes utilisateurs. Les commandes suivantes sont utiles à connaître :

  • useradd : crée un user.
  • usermod : modifie les paramètres de l'utilisateur : -l pour le nom d'utilisateur, -c pour le nom complet, -g pour les groupes par ID de groupe.
  • userdel -r : supprime un utilisateur et tous les fichiers associés
  • id -u : affiche l'ID utilisateur.
  • users : affiche une liste de tous les utilisateurs actuellement connectés.
  • cat /etc/passwd | cut -d ":" -f 1 : affiche une liste de tous les utilisateurs de la machine.

L'utilisateur nommé your_intra_login doit faire partie des groupes sudo et user42. Vous devez également être en mesure de manipuler les groupes d'utilisateurs lors de l'évaluation avec les commandes suivantes :

  • groupadd : crée un nouveau groupe.
  • gpasswd -a : ajouté un utilisateur à un groupe.
  • gpasswd -d : supprime un utilisateur d'un groupe.
  • groupdel : supprime un groupe.
  • groups : affiche les groupes d'un utilisateur.
  • id -g : affiche l'ID de groupe principal d'un utilisateur.
  • getent group : affiche une liste de tous les utilisateurs d'un groupe.

En bref. Avant la présentation :

  1. hostname -> votre intra_login42
  2. utilisateur -> votre intra_login
  3. vous devez créer un groupe user42
  4. votre utilisateur devra être dans user42 et sudo Pendant la présentation : Modifier le hostname créer un user ... Je me souviens que de ça, mais pas de panique vous verrez lors de la présentation.

FIN du groupe hostname etc.

Monitoring.sh

Écrire monitoring.sh ou le placer je ne sais pas.

Donner le droit d'execution aux monotoring.sh

chmod 755 monitoring.sh

La commande wall nous permet de diffuser un message à tous les utilisateurs de tous les terminaux. Cela peut être incorporé dans le script monitoring.sh ou ajouté ultérieurement dans cron.

moi je l'ai mis ultérieurement.

Pour programmer la diffusion toutes les 10 minutes, nous devons activer cron:

# systemctl enable cron

Démarrez ensuite un fichier crontab pour root :

# crontab -e

Et ajoutez comme ceci:

*/10 \* \* \* \* bash <path\>/monitoring.sh

Ou, si la commande wall n'est pas intégrée au script:

*/10 * * * * bash <path>/monitoring.sh | wall`

À partir de là, monitoring.sh sera exécuté toutes les 10 minutes. Pour qu'il s'exécute toutes les dix minutes à partir du démarrage du système, On peut crée un script sleep.sh script qui calcule le délai entre l'heure de démarrage du serveur et la dixième minute de l'heure, puis ajoutez-le `au travail cron pour appliquer le délai.

*/10 * * * * bash /root/sleep.sh && bash /root/monitoring.sh

Monitoring Fini et crontab fini aussi.

Failed to send host log message

Le message d'erreur qui apparaît au démarrage de la VM, "[drm:vmw_host_log [vmwgfx]] ERROR Échec de l'envoi du message du journal de l'hôte" peut facilement être corrigé. C'est une erreur du contrôleur graphique. Tout ce que nous avons à faire est :

  • Éteindre votre VM
  • Dans Virtuall Box, aller dans les paramètres de la VM.
  • Display >> Screen >> Graphics Controller >> Choisir VBoxVGA.

Signature.txt

Pour extraire la signature de la VM pour la correction, rendez-vous dans le dossier Virtual Box VMs de votre ordinateur local :

  • Windows: %HOMEDRIVE%%HOMEPATH%\VirtualBox VMs\
  • Linux: ~/VirtualBox VMs/
  • MacM1: ~/Library/Containers/com.utmapp.UTM/Data/Documents/
  • MacOS: ~/VirtualBox VMs/

Utilisez ensuite la commande suivante (remplacez centos_serv par le nom de votre machine) :

  • Windows: certUtil -hashfile centos_serv.vdi sha1
  • Linux: sha1sum centos_serv.vdi
  • For Mac M1: shasum Centos.utm/Images/disk-0.qcow2
  • MacOS: shasum centos_serv.vdi

Et enregistrez la signature dans un fichier nommé signature.txt.


Auteur ->

Ce projet a été réalisé par MOI !!! 😃

Info Ou me retrouver
Nom👋 Zaoui
Prenom😄 Yassine
Pseudo😁 Yatsu
Login 42🏫 Yzaoui
E-mail📬 y.zaoui.pro@gmail.com
E-mail42📩 yzaoui@student.42.fr
Linkdin👨‍💻 Yassine Zaoui
Instagram📸 @yatsu__officiel