Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Plan:
Partie 1 : Administration
des systèmes Linux
Objectif
Chapitre 1
Introduction & Historique
1. Système d'exploitation (OS)
1.1 Définition:
Le système d'exploitation est le logiciel le plus important d'un ordinateur. C‟est un ensemble de
programmes qui permettent l'utilisation de l'ordinateur et la gestion de ses ressources (processeurs,
mémoires, disques, périphériques, communication inter-processus et inter-machines, ...etc.).
2.UNIX
2.1 Historique
• Unix est né aux laboratoires Bell en 1969, Développé par Ken Thompson et
Dennis Ritchie(le premier à avoir développé le langage C).
• En 1973, Unix a pu être réécrit, presque entièrement, en C ( pour faciliter la
Portabilité)
• Code source vendu à un prix bas aux sociétés.
• Plusieurs sociétés ( IBM , Sun ,...) se sont intéressées au système et elles ont
repris son développement pour avoir leur propre version ( Solaris:Sun ,
AIX:IBM, HP-UX: HP, FreeBSD:Université de Berkely ,...)
Remarque : L‟objectif des chercheurs dans le temps était de rendre UNIX accessible sans frais.
3. LINUX
Linux est une version librement diffusable de l’Unix.
3.1 Historique
• En 1991, En Finlande un autre noyau était disponible : c’est « Linux » par Linus
Torvalds
• (jeune étudiant à l’université d’Helsinki, né le 28/12/1969)
• Des milliers de personnes participent à son développement
• Code source est disponible sur Internet (logiciel libre et gratuit)
Le noyau (ou kernel) développer par Linus Torvalds est l‟élément essentiel de toutes les
distributions Linux existantes.
Chaque distribution essaye d’offrir de la valeur ajoutée sous la forme des outils
d’installation et d’administration.
Chapitre 2
Le Système Linux
a) Système Multi-Utilisateur :
4. La distribution Ubuntu
[user@machine ~ ]$
•
date : Afficher la date et l‟heure
•
cal : afficher un calendrier
•
uname : afficher le nom et les caractéristiques du système.
•
passwd : modifier son mot de passe
•
man nom-commande :
- manuel pour afficher une page d‟aide (forme de commande, option,...)
- exemple : man man : plus d‟information sur l‟utilisation du man
Remarque : commande --help ou commande -h : une option commune à la
majorité des commandes pour afficher l’aide (exp : ls --help, man -h)
•
adduser user1 : ajoute l‟utilisateur user1
•
passwd user1 : pour donner ou changer le mot de passe user1
•
addgroup grp1 : ajoute le groupe grp1
•
adduser user1 grp1 : ajoute l‟utilisateur user1 au groupe grp1
•
groupadd grp2 : crée un groupe grp2
•
chgrp grp2 user1 : le groupe de user1 est maintenant grp2
•
userdel : pour supprimer un utilisateur ;
•
groupdel : pour supprimer un utilisateur ;
•
adduser –ingroup grp1 user1 : crée un utilisateur user1 dont le groupe principal
est grp1
(consulter les fichiers : /etc/passwd, etc/group, /etc/shadow)
• su user1 : bascule vers l‟utilisateur user1
• su - : bascule vert le super-utilisateur (administrateur)
• ifconfig eth0 192.168.10.10 : configure la carte reseau ethernet eth0 et lui affecte
l‟adresse indiquée.
• mount –t vfat /dev/hdc1 /mnt/hd1 : montage de la partition 1 du disk 3 sur le
répertoire /mnt/hd1, si le point de mount est déclare dans /etc/fstab, l‟utilisateur
peut le monter, s‟il lui est permis. Autrement il faut être (unmount pour
démonter)
Exemple : pour lire un CDROM
- Consulter le fichier fstab (par cat /etc/fstab) pour savoir si le point de
montage (dans notre cas, c‟est /dev/hdc)
- Créer un répertoire : mkdir tt (tt répertoire pour contenir le point de
montage)
- Monter par : mount /dev/hdc tt
- Accéder au répertoire tt pour utiliser votre CDROMExercice : comment
monter un flash disk ?
N.B : il est déconseillé de se loger en superutilisateur (root). Si à un moment donné nous avons
besoin de lancer une commande dadministrateur, il suffit dutiliser « su –» (switch user), qui permet
de passer momentanément en root.
Chapitre 3
Prise en main du système Linux
La commande man
- syntaxe : man [options] nom_de_commande
- description : Elle permet d‟afficher un manuel en ligne sur la commande spécifiée. Cet
affichage s’effectue en mode console. La commande q permet de quitter le manuel.
options : -h : affiche l‟aide concernant la commande man et donc permet notamment de
savoir que q permet de quitter.
-w or --path : affiche le lieu où est stocké le fichier contenant le manuel de la
commande.
La commande ls
syntaxe : ls [options] [chemin_d’un_repertoire]
description : Affiche l‟ensemble des fichiers passés en argument puis la liste des fichiers
contenus dans les répertoires passés en argument. Par défaut, elle affiche le
répertoire courant “.”.
options : -l : permet d‟obtenir des informations détaillées sur chaque fichier listé
(date,taille, droits, etc.).
-a : permet d‟afficher tous les fichiers contenus dans un répertoire, y compris les
fichiers commençant par un point(les fichiers cachés).
-R : permet d‟afficher récursivement le contenu des sous-répertoires.
--color , --color=yes: permet d‟afficher les fichiers en couleur selon leur type.
--color=no : annule l‟affichage en couleur des
fichiers. exemples : ls . : lister le répertoire courant ls .. :
lister le répertoire parent
ls -lrt /etc : Donne la liste des fichiers et répertoires de /etc avec les détails (option -l)
trie par temps (-t) en ordre inverse (-r) ls -l > f1.txt: le symbole « > » redirige la
sortie de « ls » vers le fichier f1.txt avec écrasement. Si on utilise « > > » il y aura
ajout à la fin (append).
La commande cd
syntaxe : cd [chemin] description : Elle permet de se déplacer dans
l‟arborescence du système de fichier.
Le chemin peut-être absolu ou relatif. 10
exemples : cd .. : permet de remonter d‟un cran dans l‟arborescence.
cd ou cd ~ : permet de se placer directement à la racine de votre répertoire de
travail.
cd - : pour retourner au répertoire précédent cd
/usr/local : déplacement selon un chemin absolu.
cd bin : déplacement selon un chemin relatif.
remarques : - chemin absolu : chemin d‟accès complet à partir la racine (/)
Par exemple : /usr/local/seminaires/apprentissage/text1
- chemin relatif : spécifier le chemin d‟accès relativement au répertoire courant
Par exemple : seminaires/apprentissage/text1 représente le nom relatif de text1 par
rapport au répertoire courant /usr/local
La commande mkdir
syntaxe : mkdir [options] repertoire description : Elle
permet de créer un nouveau répertoire.
options: -p, --parents : s‟assure que chaque répertoire spécifié existe et crée les répertoires
parents manquants. exemples : mkdir -p Informatique/MuPAD : permet de créer le
répertoire Informatique et le sous répertoire MuPAD.
La commande pwd
syntaxe : pwd description : Elle permet de connaître le
répertoire courant.
La commande rmdir
syntaxe : rmdir [options] repertoires description : Elle permet de
supprimer un ou plusieurs répertoires vides.
options : -p, --parents : efface les répertoires parents s‟ils deviennent vides.
La commande rm
syntaxe : rm [options] nom description : Elle efface chaque fichier spécifié et par défaut
n‟efface par les répertoires.
options : -f, --force : efface les fichiers en ignorant ceux qui n‟existent pas et en ne
demande de confirmation à l‟utilisateur.
-i, --interactive: demande à l‟utilisateur de confirmer chaque suppression. -
r, -R, --recursive : supprime récursivement les contenus des répertoires et le
répertoire lui-même.
La commande cp
syntaxe : cp [options] fichier1 fichier2 cp
[options] fichier repertoire
description : Elle sert à copier des fichiers et éventuellement des répertoires depuis un
endroit précis vers une destination précise ou un répertoire.
options : -i : interroge l‟utilisateur avant d‟écraser les fichiers existants.
-R : copie récursivement les répertoires et gère correctement les fichiers spéciaux.
-f : force l‟effacement des fichiers cibles existants.
-p : conserve le propriétaire, le groupe, les permissions d‟accès, et les horodatages
du fichier original.
La commande mv
syntaxe : mv [options] source destination
mv [options] source
repertoire
description : Elle sert à déplacer ou renommer les fichiers. Si le dernier argument est un
nom de répertoire alors tous les fichiers sources seront déplacés, en
conservant leur nom,vers ce répertoire sinon il déplacera le premier pour
remplacer le econd. options : -i : interroge l‟utilisateur avant d‟écraser les fichiers
existants.
-f, --force : écrase les fichiers de destination existants sans demander de
confirmation à l‟utilisateur.
-u, --update : ne pas déplacer un fichier régulier qui écraserait un fichier destination
existant ayant une date de modification plus récente.
La commande touch
syntaxe : touch nom_fichier description :
Elle permet de créer un fichier.
exemple : touch linux.txt
ls
linux.txt
La commande cat
syntaxe : cat fichier1 fichier2... description : défiler à l'écran le
contenu d'un ou plusieurs fichiers.
remarques : - <ctrl-c> : Mettre fin au défilement
<ctrl s> : Interrompre le défilement avec possibilité de reprise
<ctrl q> : Reprendre le défilement
exemple : cat /etc/passwd | grep -v bash: Le symbole « | », pipe permet de récupérer la sortie
d'une commande pour l'envoyer en entrée dans la suivante. Ici le contenu du fichier
passwd est récupéré puis filtré avec grep pour garder les lignes ne contenant pas le
mot « bash ».
cat /etc/profile > ~/confenv : pour copier le contenu du fichier profile dans le fichier
confenv de son répertoire HOME.
Ls *.txt | xargs grep –l ce_mot : rechercher les fichiers ayant l‟extension txt qui
contiennent le texte ce_mot cat *.txt | grep ce_mot : rechercher les lignes contenant
ce_mot dans tous les fichiers ayant l‟extension txt.
La commande more
syntaxe : more fichier description : défiler le contenu
une page d'écran à la fois.
remarques : - taper la barre d'espacement : Défiler la page suivante
- taper <entree> : Défiler une ligne supplémentaire la touche
- taper la lettre q : Quitter la commande more
Les commandes nl et wc nl : permet la numérotation des ligne d‟un fichier donné wc : permet
le calcul du nombre de ligne, de mot et de caractère contenu dans un fichier.
exemples: - nl /etc/passwd
- wc /etc/mail/sendmail.mc
au groupe. ou bien avec des valeurs par exemple chmod 756 lmd veut dire rwxr-xrw-
pour lmd. chown lmd :mongroup f1.txt: change le propriétaire et le groupe du fichier
f1.txt deviennent lmd et mongroup.
Autres commandes utiles
3. Les liens
Les liens sont utiles pour faire apparaître un même fichier dans plusieurs endroits, même avec des
noms différents.
- Associe deux ou plusieurs fichiers à un même espace disque- Les deux fichiers restant
indépendants.
- Le fichier sera supprimé seulement si tous ces liens sont supprimés
- Utile dans le cas des fichiers de données
3.2 Comment créer un lien : à l’aide de la commande « ln »
La commande ln
Description : c‟est la commande de création des liens
Syntaxe : ln [option] source lien
● Cas des liens physiques : ln linux.txt linux1.txt/*linux1.txt est un lien
physique*/
● Cas des liens symboliques : ln -s linux.txt linux1.txt /*linux1.txt est un
lien symbolique*/ln -s /home/linux/linux.txt rep/linux1.txt
Exercice 1
On suppose que le répertoire personnel de l'utilisateur courant est vide.
1/ Décrire sans les tester dans un terminal l'effet de chacune des commandes suivantes,
en supposant qu'elles ont été exécutées les unes à la suite des autres.
• cd ~
• mkdir NSI
• mkdir NSI/TP_SHELL
• cd NSI/TP_SHELL
• touch texte.txt
• echo "coucou">> texte.txt
• chmod
• u+rwx,g-rwx,o-rwx texte.txt
• ls -l
• cd ..
• chmod 750 TP_SHELL
• ls -l
2/ Ouvrir un terminal et effectuer ces commandes pour vérifier vos prévisions
Exercice 2
On suppose que l'on se trouve dans un répertoire TEST, que ce dernier est vide et que l'on exécute
les sept commandes suivantes.
1/ Sans tester ces commandes dans un terminal, dessiner ci-dessous l'arborescence finale des
fichiers et des répertoires.
On utilisera TEST comme racine de l'arborescence.
1. mkdir a b c d
2. touch a/t.txt d/foo.txt
3. cd c
4. mkdir ../b/e f g
5. cd ..
6. cp */*.txt c/g # le caractère spécial "*" remplace n'importe quelle chaîne de caractère
7. rm -r f d
Partie 2 : Administration
de Windows server
Objectif
TAF :
1. Intégrer les deux PC XP dans le domaine « msi2baf.loc ».
2. Créer 4 utilisateurs (jayson, nathan, obed et sarah) et 3 groupes (COMMERCIAUX, DSI et
RH) et 3 dossiers (COMMERCIAUX, DSI et RH) avec les restrictions suivantes :
ordinateur du
domaine
RH obed Peut seulement Xcvbn@12345#
ouvrir une session
à partir de
PC_XP2
NB : A la création des utilisateurs, on fera en sorte qu’une fois connecté au domaine qu’ils
puissent modifier leur mot de passe.
Dossiers Groupes Droits natifs Droits d’autres
groupes
COMMERCIAUX COMMERCIAUX Lecture/Ecriture DSI (Lecture)
RH RH Lecture/Ecriture
Partie 3 : Administration
à distance
Objectif
1. Introduction et mise-en-garde
SSH signifie Secure SHell. C'est un protocole qui permet de faire des connexions sécurisées (i.e.
cryptées) entre un serveur et un client SSH. Nous allons utiliser le programme OpenSSH, qui est la
version libre du client et du serveur SSH.
Installer un serveur SSH permet aux utilisateurs d'accéder au système à distance, en rentrant leur
login et leur mot de passe (ou avec un mécanisme de clés). Cela signifie aussi qu'un pirate peut
essayer d'avoir un compte sur le système (pour accéder à des fichiers sur le système ou pour utiliser
le système comme une passerelle pour attaquer d'autres systèmes) en essayant plein de mots de passes
différents pour un même login (il peut le faire de manière automatique en s'aidant d'un dictionnaire
électronique). On appelle ça une attaque en force brute.
Il y a donc trois contraintes majeures pour garder un système sécurisé après avoir installé un serveur
SSH :
avoir un serveur SSH à jour au niveau de la sécurité, ce qui doit être le cas si vous faites
consciencieusement les mises à jour de sécurité en suivant la procédure Debian, comme
expliqué au chapitre Le réseau et la sécurité ;
que les mots de passes de TOUS les utilisateurs soient suffisamment complexes pour résister
à une attaque en force brute ;
surveiller les connexions en lisant régulièrement le fichier de log /var/log/auth.log.
Un mot de passe complexe est un mot de passe qui ne veut rien dire, qui n'est pas dans le dictionnaire
et qui comporte au moins 8 caractères, de préférence avec un mélange de lettres minuscules, de lettres
majuscules, de chiffres et de caractères de ponctuation.
Une bonne méthode pour obtenir un mot de passe complexe et facile à retenir consiste à choisir une
phrase et à prendre la première lettre de chaque mot, avec quelques complications en plus.
Par exemple, la phrase "Linux, moi j'y comprends rien de rien !" donne le mot de passe Lmjycr2r!
Pour vérifier que les mots de passe des utilisateurs du système sont vraiment complexes, le root peut
les soumettre à un cracker de mots de passe... et voir combien de temps ils résistent !
Les mots de passes des utilisateurs sont stockés dans le fichier /etc/shadow. Seul l'utilisateur root
peut lire ce fichier. Pour tester la complexité des mots de passes, le root peut donc installer le
programme john et le lancer sur le fichier /etc/shadow :
Attention, john utilisera le processeur à 100 % ! Il est donc conseillé de lui donner un priorité faible
(commande nice ou renice) si la machine doit être utilisée pendant ce temps. Plus le nombre
d'utilisateurs est grand, plus il faudra laisser tourner john longtemps pour que le test soit significatif.
SSH utilise également la cryptographie symétrique. Son principe est simple : si A veut envoyer un
message confidentiel à B, A et B doivent d'abord posséder une même clé secrète. A crypte le message
avec la clé secrète et l'envoie à B sur un canal qui n'est pas forcément sécurisé. B décrypte le message
grâce à la clé secrète. Toute autre personne en possession de la clé secrète peut décrypter le message.
Un serveur SSH dispose d'un couple de clés RSA stocké dans le répertoire /etc/ssh/ et généré
lors de l'installation du serveur. Le fichier ssh_host_rsa_key contient la clé privée et a les
La seule contrainte est de s'assurer que la clé publique présentée par le serveur est bien sa clé
publique... sinon le client risque de se connecter à un faux serveur qui aurait pris l'adresse IP du vrai
serveur (ou toute autre magouille). Une bonne méthode est par exemple de demander à
l'administrateur du serveur quelle est le fingerprint de la clé publique du serveur avant de s'y
connecter pour la première fois. Le fingerprint d'une clé publique est une chaîne de 32 caractères
hexadécimaux unique pour chaque clé ; il s'obtient grâce à la commande ssh-keygen -l.
Le client et le serveur SSH sont dans le même package Openssh-server. Ce package est installé
Maintenant que votre système est à jour niveau sécurité, vous pouvez activer le serveur SSH, si vous
le souhaitez. Pour cela, supprimez le fichier /etc/ssh/sshd_not_to_be_run et lancer SSH :
# rm /etc/ssh/sshd_not_to_be_run
# /etc/init.d/ssh start
Starting OpenBSD Secure Shell server: sshd.
3.2. Configuration du serveur SSH
Nous allons vous commenter les lignes les plus importantes de ce fichier de configuration :
Port 22
Signifie que le serveur SSH écoute sur le port 22, qui est le port par défaut de SSH. Vous
pouvez le faire écouter sur un autre port en changeant cette ligne. Vous pouvez aussi le faire
écouter sur plusieurs ports à la fois en rajoutant des lignes similaires.
Protocol 2
Signifie que votre serveur SSH accepte uniquement la version 2 du protocole SSH. C'est une
version plus sécurisée que la version 1 du protocole. Seuls certains vieux clients SSH ne
savent faire que du SSH version 1. Si vous voulez que le serveur accepte les deux protocoles,
changez la ligne en :
Protocol 2,1
PermitRootLogin yes
Signifie que vous pouvez vous logguer en root par SSH. Vous pouvez changer et mettre "no",
ce qui signifie que pour vous connecter en root à distance, vous devrez d'abord vous connecter
par SSH en tant que simple utilisateur, puis utiliser la commande su pour devenir root. C'est
une sorte de double protection.
X11Forwarding yes
Signifie que vous allez pouvoir travailler en export display par SSH. Ce sera expliqué plus
tard, dans la troisième partie de cette formation Faire de l'export display.
Si vous avez modifié le fichier de configuration du serveur, il faut lui dire de relire son fichier de
configuration :
# /etc/init.d/ssh reload
Reloading OpenBSD Secure Shell server's configuration.
4. Se logguer par SSH
% ssh login@nom_DNS_du_serveur_SSH
Si c'est la première connexion SSH depuis ce client vers ce serveur, il vous demande si le
fingerprint de la clé publique présentée par le serveur est bien le bon. Pour être sûr que vous
vous connectez au bon serveur, vous devez connaître de façon certaine le fingerprint de sa clé
publique et la comparer à celle qu'il vous affiche. Si les deux fingerprints sont identiques,
répondez yes, et la clé publique du serveur est alors rajoutée au
fichier ~/.ssh/known_hosts.
Si vous vous êtes déjà connecté depuis ce client vers le serveur, sa clé publique est déjà dans
le fichier ~/.ssh/known_hosts et il ne vous demande donc rien.
Ensuite, entrez votre mot de passe... et vous verrez apparaître le prompt, comme si vous vous êtiez
loggué en local sur la machine.
Au lieu de s'authentifier par mot de passe, les utilisateurs peuvent s'authentifier grâce à la
cryptographie asymétrique et son couple de clés privée/publique, comme le fait le serveur SSH auprès
du client SSH.
% ssh-keygen -t dsa
Les clés générées ont par défaut une longueur de 1024 bits, ce qui est aujourd'hui considéré comme
suffisant pour une bonne protection.
Par défaut (il demande confirmation lors du processus de création), la clé privée est stockée dans le
fichier ~/.ssh/id_dsa avec les permissions 600 et la clé publique est stockée dans le
fichier ~/.ssh/id_dsa.pub avec les permissions 644.
Lors de la création, il vous demande une pass phrase qui est un mot de passe pour protéger la clé
privée. Cette pass phrase sert à crypter la clé privée. La pass phrase vous sera alors demandée à
chaque utilisation de la clé privée, c'est à dire à chaque fois que vous vous logguerez en utilisant cette
méthode d'authentification. Un mécanisme appelé ssh-agent permet de ne pas rentrer le mot de passe
à chaque fois... comme nous le verrons un peu plus loin dans ce chapitre.
Vous pouvez à tout moment changer la pass phrase qui protège votre clé privée avec la
commande ssh-keygen -p.
Pour cela, il suffit de copier votre clé publique dans le fichier ~/.ssh/authorized_keys de la
machine sur laquelle vous voulez vous logguer à distance. La commande suivante permet de réaliser
cette opération via SSH :
4.2.3. Se logguer
La commande est la même que pour une authentification par mot de passe.