Problème pour créer une image ISO personnalisée sous Linux

Résolu/Fermé
L3arning_ Messages postés 6 Date d'inscription jeudi 29 décembre 2022 Statut Membre Dernière intervention 7 janvier 2023 - 5 janv. 2023 à 19:40
mamiemando Messages postés 33240 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 août 2024 - 6 janv. 2023 à 16:05

Bonjour à tous les gens du forum, j'ai actuellement un devoir à rendre mais je dois avouer que j'ai beaucoup de mal à comprendre le fonctionnement de Linux. Je travaille actuellement sous Debian avec Virtualbox. Je vais essayer de résumer au maximum ce que je dois faire (je sais que c'est long mais m'aider sur une partie serait déjà super de votre part). Le serveur SERV est un serveur ssh qui est utile pour le projet.

Je dois créer une image VirtualBox Linux avec les caractéristiques suivantes :

  • La machine obtient ses détails de connexion IP en utilisant DHCP après le démarrage mais se présente avec une adresse MAC modifiée. Pour l'adresse modifiée, utilisez le modèle suivant 06:00:00:00:xx:xx où xxxxx est votre ID utilisateur sur le serveur SERV. +1000 
  • La machine synchronise son heure avec l'Internet périodiquement.
  • La machine télécharge le fichier journal du serveur SERV: /var/log/auth.log toutes les heures.
  • Toutes les heures, une statistique est créée montrant la liste des adresses IP qui ont essayé d'accéder au ssh sur SERV (les tentatives réussies et non réussies sont comptabilisées).

Je suis un débutant complet sur Linux et j'ai beaucoup de mal à comprendre tous ces termes et savoir comment résoudre ces taches je remercie en avance la/les personne(s) qui prendr(a/ont) le temps de m'aider et de m'expliquer.

En vous souhaitant bonne année !

A voir également:

2 réponses

mamiemando Messages postés 33240 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 août 2024 7 773
Modifié le 6 janv. 2023 à 16:03

Bonjour,

Avant toute chose, ton exercice demande des connaissances en Linux donc je pense qu'un pré-requis indispensable est de bien comprendre ton cours et de demander à ton enseignant de te guider. Ci-dessous je te donne les grandes idées pour aborder les questions afin que tu aies un point de départ, mais il va sans dire que c'est à toi de résoudre ton exercice si tu veux qu'il te permette de progresser.

Il y a énormément de tutoriels sur Internet pour prendre en main Linux, beaucoup de wiki pour a peu près toutes les distributions, et sous Linux la commande man permet d'avoir les détails lié à une commande (par exemple : man scp pour comprendre à quoi sert la commande scp et comment l'utiliser). C'est important que tu te documentes car c'est le genre d'exercice où tu peux difficilement improviser et il te faudra sans doute fouiller un peu sur Internet.


La machine obtient ses détails de connexion IP en utilisant DHCP après le démarrage mais se présente avec une adresse MAC modifiée. Pour l'adresse modifiée, utilisez le modèle suivant 06:00:00:00:xx:xx où xxxxx est votre ID utilisateur sur le serveur SERV. +1000 

Tout d'abord quelques rappels.

  • Un client est une application qui demande à un serveur (une application qui rend un service).
  • Dans le cas de DHCP, le service consiste à délivrer une configuration réseau au client DHCP. Cela inclue une adresse IP, des routes IP, un ou plusieurs serveurs DNS.
  • La manière dont répond le serveur DHCP peut dépendre de l'adresse MAC (l'adresse physique de la carte réseau) du client DHCP. Cela permet par exemple de ne délivrer une configuration réseau qu'à des machines figurant dans une liste blanche préalablement configurée sur le serveur.
  • Cependant, rien n'oblige le client DHCP à présenter une adresse MAC qui n'est pas celle de la carte réseau. Et c'est d'ailleurs un paramètre du client DHCP, celui qu'on te demande de régler.

Ces rappels faits, revenons à ta question.

  • De nos jours, la configuration réseau se définit dans network-manager, éventuellement en ligne de commande au travers de nmcli. Dans le cas présent network-manager s'appuie sur la le client DHCP dhclient pour récupérer une IP par DHCP.
  • Dans des temps plus reculés, la configuration réseau se définissait dans /etc/network/interfaces. De nos jours, on passerait plutôt intégralement par network-manager. Le fichier /etc/network/interfaces existe toujours, mais il ne devrait plus être utilisé, en particulier si network-manager est installé (ce qui est généralement le cas). Tu peux vérifier si network-manager est installé avec la commande suivante (si des lignes apparaissent, c'est qu'il est installé) :
dpkg -l | grep network-manager

Concernant le réglage de l'adresse MAC :

  • Il est possible de configurer dhclient pour forcer l'adresse MAC (voir ici), mais a priori tu peux le faire directement dans network manager (voir ici).


La machine synchronise son heure avec l'Internet périodiquement.

Tu peux installer un client NTP. Sous Debian les logiciels s'installent via le gestionnaire de paquets (c'est l'équivalent du playstore ou de l'apple store sur mobile). Il existe plusieurs commande APT (notamment apt, aptitude, apt-get) relativement similaire. Je te propose d'utiliser la commande apt.

Passe en root :

su -

Récupère la liste des mises à jours :

apt update

Installe comme suggéré dans le wiki le paquet ntpdate :

apt install ntpdate

La machine télécharge le fichier journal du serveur SERV: /var/log/auth.log toutes les heures.

Il faudrait expliquer comment l'upload est fait vers SERV, car de nombreux protocoles existe, et clarifier comment l'authentification est faite. Personnellement j'utiliserais la commande scp pour uploader le fichier vers SERV et installerait sur le compte cible de SERV une clé ssh pour établir une authentification transparente.

La commande scp est à configurer dans une table cron (a priori celle de root) Cette page montre quelques exemples.

Pour passer en root (l'utilisateur administrateur) :

su -

Pour éditer la crontab de l'utilisateur courant :

crontab -e

En admettant que tu puisses te logguer sur SERV avec le compte toto et que SERV soit atteignable via l'IP 11.22.33.44, tu peux lancer :

scp /var/log/auth.log toto@11.22.33.44:/var/log/auth-$(date '+%Y-%m-%d_%H:%M:%S').log

Toutes les heures, une statistique est créée montrant la liste des adresses IP qui ont essayé d'accéder au ssh sur SERV (les tentatives réussies et non réussies sont comptabilisées).

Encore une fois c'est quelque chose que tu peux réaliser dans cron. Les authentifications en ssh sont logguées dans /var/log/auth.log, c'est d'ailleurs comme ça que fonctionne fail2ban. Tu peux compter le nombre de ligne qui concordent avec un motif avec la commande : grep -c motif /var/log/auth.log, où motif est une expression rationnelle, quitte à la raffiner avec un pipe et un grep supplémentaire.

grep --color sshd /var/log/auth.log
grep sshd /var/log/auth.log | grep --color "session opened"
grep sshd /var/log/auth.log | grep -c "session opened"

La première commande suivante extrait toutes les lignes inscrites contenant (et donc inscrites par) sshd (le serveur ssh),.

La seconde la raffine en ne conservant que les lignes contenant "sshd" et contenant "session opened". Cela permet de compter le nombre de sessions ssh ouvertes avec succès.

La troisième permet de comptabiliser ces lignes.

Bonne chance

1
L3arning_ Messages postés 6 Date d'inscription jeudi 29 décembre 2022 Statut Membre Dernière intervention 7 janvier 2023
6 janv. 2023 à 15:29

Bonjour;

je te remercie énormément pour le temps que tu as pris à rédiger ce message très constructif et très bien décrit. J'étais vraiment perdu pour le moment sur Linux et ton message m'aide beaucoup.

Bonne journée, bonne année.

0
mamiemando Messages postés 33240 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 août 2024 7 773
6 janv. 2023 à 16:05

Bonne année également :-)

Si ça te débloque c'est super. Peut-on basculer le sujet en résolu ?

Si le besoin s'en fait sentir, tu pourras toujours ouvrir une nouvelle discussion spécifique au problème précis qui te bloque (on évite de faire des discussions qui couvrent plusieurs problème indépendant comme c'est le cas ici, afin de maintenir une discussion simple à suivre).

1