AteliersLinux Ver.0.2
AteliersLinux Ver.0.2
AteliersLinux Ver.0.2
PARTIE I : RAPPELS DE
LINUX
/ Racine
/home Répertoires personnels des utilisateurs
/home/ake Répertoire personnel de l'utilisateur ake
/var Répertoire des fichiers dont le contenu varie au cours du temps
/var/log Répertoire contenant tous les fichiers des événements
/etc Répertoire contenant la quasi-totalité de la configuration du
système
/root Répertoire personnel de l'administrateur (root)
/tmp Répertoire de stockage des fichiers temporaires
- Mot de passe (sur les systèmes sécurisé, remplacé par le caractère ‘x’, le mot de
passe étant déporté dans le fichier /etc/shadow accessible en lecture
uniquement au root).
• /etc/group
- Le nom du groupe
- La liste des utilisateurs : ce numéro caractérise l’utilisateur et est utilisé dans les
descripteurs de fichier pour en identifier le propriétaire
• /etc/shadow
- Le login
- Champs réservés
Commande Actions
ls – l nom_fichier Connaître les droits d’un
fichier/répertoire
Deux méthodes : Changer les droits d’un
chmod ugoa {+||=} fichier/répertoire
rwx fichier
u :user ; g :groupe ; o :other ; a : tout le monde
chmod mode fichier
chown nom_nouveau_propriétaire fichier Changer le propriétaire d’un
fichier/répertoire
chgrp nom_nouveau_groupe fichier Changer le groupe d’un
fichier/répertoire
Retire tous les droits sur le fichier sauf pour l’utilisateur qui aura le droit de lire, écrire et
exécuter.
mode représente, en base 8, les droits du fichier. Trois termes représentent les droits.
Chaque terme est regroupé en puissance de 2 (r = 4, w = 2, x = 1, =0).
Donne tous les droits au propriétaire (7 = 4 + 2 + 1 donc rwx) et aucun droit au groupe ni
aux autres.
Les sections qui commencent par ethX correspondent aux cartes ethernet, ou X est le
numéro de la carte.
Le noyau donne parfois des informations utiles sur les cartes réseau. On peut rechercher
les messages contenant "eth0" pour avoir plus d'informations sur la première carte réseau
détectée :
#dmesg | grep eth0
La commande suivante permet d'afficher les cartes réseaux reliées au bus PCI :
#lspci | grep Ethernet
• Adresse IP
Pour attribuer une adresse IP a une interface reseau, on peut utiliser la commande
ifconfig :
ifconfig <interface> <adresse ip>
Par exemple :
#ifconfig eth0 192.168.1.12
Le masque de sous-réseau est déterminé automatiquement en fonction de la classe de
l'adresse IP. S'il est différent on peut le spécifier avec l'option netmask :
#ifconfig eth0 192.168.1.12 netmask 255.255.255.128
Pour voir si la carte réseau est bien configurée, on peut utiliser la commande :
#ifconfig eth0
• Passerelle et routage
Pour ajouter une passerelle, on peut utiliser la commande route :
• Tester le réseau
Pour tester si la carte réseau fonctionne, on peut essayer de communiquer avec une autre
machine avec la commande
ping <adresse ip>
La commande ping envoi un paquet a l'adresse IP puis attend que la machine réponde.
Elle affiche ensuite le temps qu'a pris toute l’opération, en millisecondes.
• Résolution de noms
Le fichier /etc/host.conf indique comment les noms doivent être résolus (c'est a dire,
comment passer d'une adresse IP a un nom, et inversement). Par exemple : #nano
/etc/host.conf
# D'abord traduire avec les serveurs DNS et ensuite avec /etc/hosts.
order bind,hosts
# Il existe des machines avec plusieurs adresses
multi on
# Vérifie l'usurpation d'adresse IP
nospoof on
Serveurs DNS
Le fichier /etc/resolv.conf contient les adresses IP des serveurs DNS. Par exemple :
#nano /etc/resolv.conf
nameserver 208.164.186.1
nameserver 208.164.186.2
search cfs
La commande search indique que si un nom de domaine n'est pas trouve, il faudra essayer
en lui ajoutant .cfs.
• Fichier hosts
Le fichier /etc/hosts contient une liste de résolutions de noms (adresses IP et noms de
machine). Par exemple: #nano /etc/hosts
192.168.105.2 pctest.monseminaire.ci pctest
Ce fichier indique que pctest correspond a l'adresse IP 192.168.105.2, qui sera accessible
par cet alias.
Installation de nfs :
#apt-get install nfs-kernel-server
Commencer par vérifier que les deamons NFS (nfsd) ne sont pas déjà lancés avec, par
exemple, la commande :
#ps ax | grep nfsd
Pour lancer les daemons manuellement sous Debian :
#/etc/init.d/nfs-kernel-server start
ou, si c'est le serveur NFS en espace utilisateur qui est installe :
#/etc/init.d/nfs-user-server start
On peut remplacer start par restart pour redémarrer le serveur.
Configuration
Pour partager (ou exporter) des répertoires, il faut renseigner le fichier /etc/exports. Il
indique la liste des répertoires partages et le nom des machines qui y ont accès.
Chaque ligne correspond a un répertoire et a la forme :
<répertoire local> <nom ou IP des machines autorisées à se connecter>
(<options>) <autres machines> (<options>)...
Par exemple :
/home pclinux(rw) station1(ro)
/projet station1(rw) (ro)
/brouillon
Le serveur exporte son répertoire /home. La machine pclinux pourra le monter en
lecture/écriture (rw), station1 en lecture seule (ro), et les autres machines ne pourront pas
se connecter.
De même, station1 pourra accéder en lecture/écriture au répertoire projet et toutes les
autres stations en lecture seule.
Enfin, tout le monde pourra accéder en lecture/écriture au répertoire brouillon (l'option
rw est celle par défaut).
Par exemple :
Paramètres rôles
[global] contient les options communes a tous les
répertoires partages. Voici quelques options
utilisables
workgroup Nom du groupe de travail. Les ordinateurs du
même groupe de travail se retrouvent cote à cote
dans le voisinage réseau de Windows.
server string Description du serveur, qui apparaîtra a coté de
son nom dans l'explorateur Windows. Si la
description contient le terme %h, il sera
remplacé par le nom d'hôte de la machine.
encrypt passwords Détermine si les mots de passe doivent être
cryptes avant d'être transmis.
max log size Taille maximale du fichier journal, en Kio.
De nombreuses autres options sont disponibles. Elles sont detaillees dans la page de man
de smb.conf.
DNS d'Internet est un système distribué constitué de l'ensemble des serveurs DNS.
• domaine in-addr.arpa
resolution = nom d'hote → Adresse Ip ( resolution directe )
processus inverse doit être possible :
resolution de nom inverse = Adresse Ip → Nom d'hote
c'est la zone particulière in-addr.arpa qui permet cela.
Les enregistrements qui enrichissent une base de données DNS sont de plusieurs types,
dont voici les principaux :
Enregistrement de type SOA (Start Of Authority) : indique l'autorité sur la zone. Ces
enregistrements contiennent toutes les informations sur le domaine. Par exemple le délai
de mise à jour des bases de données entre serveurs de noms primaires et secondaires, le
nom du responsable du site
Syntaxe :
Nom-domaine. IN SOA nom-site. --- contact. --- (
vl ; Version
v2 ; Refresh
v3 ; Retry
v4 ; Expiration
v5); Minimun
• Signification
exemple
Syntaxe :
Nom-domaine. [temps-de-vie] IN NS nom-site.s/dom1. ---.dom-racine.
exemple
monseminaire.ci IN NS linux1.monseminaire.ci
Syntaxe :
nom-site.s/dom IN A a.b.c.d
exemple
linux1.monseminaire.ci IN A 192.168.20.2
linux2.monseminaire.ci IN A 192.168.20.3
Syntaxe :
nom-domaine. [ttlJ IN MX préférence nom-
de site.
exemple
monseminaire.ci IN MX 10
linux1.monseminaire.ci
monseminaire.ci IN MX 20
linux2.monseminaire.ci
Syntaxe :
d.c.b.a.in-addr.arpa. IN PTR nom-site.s/doml. ---.dom-racine.
Exemple
• Serveur maître.
C'est le serveur qui a autorité sur le domaine.
Il contient les fichiers références du domaine et est le seul à les posséder.
Exemple
Pour le serveur maître (type master) pour le domaine « monseminaire.ci » les
enregistrements seront stockés dans le fichier /etc/bind/db.monseminaire.ci.
L'instruction notify no indique que BIND ne doit pas notifier les serveurs esclaves lors du
changement du fichier de zone. Par défaut, BIND notifie les serveurs esclaves précisés
dans les enregistrements NS.
zone "monseminaire.ci" {
type master;
notify no;
file "/etc/bind/db.monseminaire.ci";
};
• Serveur(s) esclave(s)
Ils sont avant tout prévus pour être en esclave du maître et contiennent une
copie des fichiers transmis par réseau.
Ils peuvent être définis comme serveur DNS à interroger pour un client.
Une fonctionnalité de réplication automatique est définissable pour que leurs
fichiers soient mis à jour lors du changement de version des fichiers du
maître.
Exemple
Pour un serveur esclave (type slave) pour le domaine « monseminaire.ci » dont les
données seront récupérées à partir du serveur précisé par l'instruction masters {...}.
L'instruction file est optionnelle, elle permet au serveur esclave de sauvegarder les
données de la zone sur le disque afin de les utiliser en cas de redémarrage.
zone "monseminaire.ci" {
type slave;
file "/var/cache/bind/db.monseminaire.ci";
masters { 192.168.1.1; }; // adresse IP du serveur maître
};
Le fichier de configuration du serveur maître doit être rectifié pour autoriser le transfert
de zone vers le(s) serveur(s) esclave(s) en ajoutant l'instruction allow-transfer {...}:
zone "monseminaire.ci" {
type master;
file "/etc/bind/db.monseminaire.ci";
allow-transfer { 192.168.1.2; }; // liste des adresses IP des serveurs esclaves
};
− Le MX peut être soit un autre MTA, qui jouera le rôle de routeur (cas d’une
redirection vers un sous-domaine par exemple), soit un MDA (Mail Delivery
Agent). Le MDA place le message dans un fichier temporaire, peut le filtrer, etc.
− Les protocoles de réception de messages soit POP (Post Office Protocol) sur le
port 110 (POP3), soit IMAP (Internet Message Access Protocol).
• La suite libre sendmail est la plus connue et la plus utilisée. Sendmail a été créé
en 1981 par Eric Allman et a été intégré à BSD 4.2 en 1983. On estimait en 2000
son utilisation à plus de 100 millions de serveurs de courrier électronique. Tant
qu’il ne faut pas modifier fortement sa configuration de base, sendmail est idéal.
Si vous souhaitez aller plus loin, l’achat d’un livre complet s’avère plus que
nécessaire. La configuration de sendmail est si complexe qu’un langage de
macros appelé m4 a été inventé rien que pour lui . Aussi, vous n’éditez pas (ou
très rarement) le fichier de configuration de sendmail : vous éditez le fichier
• Le produit postfix tend à être de plus en plus utilisé non pas par les déçus de
sendmail mais par ceux qui craignent de devoir le configurer. C’est une
alternative à sendmail. Les buts de ses développeurs (dont certains sont ceux de
sendmail) sont :
• la compatibilité avec sendmail
• la rapidité (plus de un million de messages par jour sur un
simple Pentium 4)
• la simplicité d’administration (fichier de configuration simple et lisible)
• la sécurité (peut être chrootée)
• la modularité (décomposition des traitements).
On retiendra la simplicité. En effet, on peut configurer postfix avec une seule commande
sans avoir besoin d’éditer de fichier. C’est ce serveur que nous allons utiliser.
Lorsqu’un serveur Apache reçoit des requêtes, il peut les redistribuer à des processus fils.
La configuration permet de lancer des processus de manière anticipée et d’adapter
dynamiquement ce nombre en fonction de la charge.
Apache est modulaire. Chaque module permet d’ajouter des fonctionnalités au serveur.
Le module le plus connu est probablement celui gérant le langage PHP, « mod_php ».
Chaque module s’ajoute via les fichiers de configuration, et il n’y a même pas besoin de
relancer le serveur Apache : on lui donne juste l’ordre de relire sa configuration.
Apache peut gérer plusieurs sites Web en même temps, ayant chacun leur nom, à l’aide
des hôtes virtuels.
Installation de Apache 2
Vérification
− envvars est utilisé pour définir des variables d'environnement propres à Apache ;
− ports.conf contient la directive listen qui spécifie les adresses et les ports
d'écoutes ; apache2.conf est le fichier principal de configuration c'est à partir de
lui que tous les autres fichiers sont chargés ;
− conf.d est un répertoire qui contient plusieurs petits fichiers qui seront analysés par
apache. Le seul fichier pour le moment est charset, qui spécifie l'encodage à
utiliser par défaut ;
Par défaut la racine du serveur, celle où sont placées les pages du site, est dans /var/www
ou /srv/www . Cette position dépend de la directive DocumentRoot dans les fichiers de
configuration .
PARTIE II : ATELIER DE
LINUX
Domaine : stage1.monseminaire.ci
Adresse de Réseau : 192.168.20.0/24
Domaine : stage2.monseminaire.ci
Adresse de Réseau : 192.168.30.0/24
Domaine : stage3.monseminaire.ci
Adresse de Réseau : 192.168.40.0/24
1- Ouvrir une session avec le compte administrateur (root) sur la première console
virtuelle (/dev/tty1).
Pour information, la combinaison des touches [CTRL][ALT][Fx] permet de passer d'une
console à une autre.
3- Exécuter les commandes ci-dessous. Placez vous dans votre répertoire d'accueil. Soit
la succession suivante de commandes :
cp /etc/hosts a
mkdir b c
cd b
cp ../a d
mkdir ../e f
cd
cp a b/f/g
cd b/f
cp g ../../e
cd ..
rm ../a
rmdir ../c
mv ../e/g ../e/x
Commande Role
mkdir /ap
mkdir ap
6- Se positionner dans le répertoire /tmp et créer dans celui-ci deux répertoires nommés
ap1 et ap2.
Réponse :
Commande Role
cp -a /etc /tmp/ap1
cp -a /etc/* /tmp/ap2
Commande Role
rm /tmp/ap1/*
rm -rf /tmp/ap2
Commande Role
mv ~/news /tmp
mv /tmp/news /tmp/old
Commande Role
cat /etc/services
more /etc/services
less /etc/services
Tail -n 5 /etc/services
Head -n 5 /etc/services
Partie1
Réponse :
Réponse :
17 : Quels sont les fichiers créés par défaut dans le répertoire personnel de
pckouakou ?
Réponse :
18 : Quels sont les fichiers créés par défaut dans le répertoire personnel de lsery ?
Réponse :
Réponse :
Réponse :
Réponse :
22 : Quels sont le fichiers créés par défaut dans le répertoire personnel de aka ?
Réponse :
3-
Afficher les informations (capacité, espace libre...) concernant la partition
/dev/sda1 (commande df).
Commande :
Capacité :
Espace occupé :
Espace libre :
Point de montage :
14- Vérifier que la commande précédente a été exécutée avec succès. Puis,
démonter la partition /dev/sdb1 de l'arborescence.
Réponse :
23- Rechercher la commande permettant de créer une image ISO à partir d'un
CD-ROM
Réponse :
B : Administration réseau
Commande :
Résultat obtenu :
Commande :
Résultat :
Réponse :
Résultat obtenu :
Rôle :
28- Comment annuler l'effet de la commande de la question 27 ?
Commande :
Partie 1
Objectifs :
Configurer un service de partage de disque pour un client Linux.
Vous allez créer deux répertoires partagés qui seront accessibles par le client :
/tmp sur le serveur sera accessible en lecture/écriture
/usr/share/doc sur le serveur sera accessible en lecture pour le client.
Ces répertoires seront montés respectivement sur les répertoires locaux /mnt/tempo et
/mnt/doc
Attention, si vous montez une arborescence sur un répertoire local, et que ce répertoire
contenait des fichiers, ces derniers seront masqués le temps du montage.
3. Créez sur le client les points de montage, montez les dossiers exportés du
serveur et testez les accès à partir du client.
6. Ouvrez une autre session sur le serveur dans un autre terminal et essayez
de démonter les répertoire montés. Que se passe t-il, pourquoi ?
-a.
Deuxième partie
1. Editez et modifiez le sur le client afin d'inclure les systèmes de fichiers nfs
exportés par le serveur.
Utilisez l'exemple que vous avez dans /etc/fstab.
3. Vérifiez que les modifications que vous avez apportées dans le fichier
fstab fonctionnent.
4. Supprimez l'option user sur les lignes que vous avez mises dans le fichier
fstab, enregistrez. Essayez ensuite de monter l'arborescence en utilisant un
compte autre que “ root ”.
Que se passe-t-il ?
5. Restaurez l'environnement.
Objectifs
Cet atelier permettra la mise en œuvre du protocole SMB et la mise en place du partage
de fichiers et d'imprimantes dans un environnement windows / Linux
• Vérifiez également la table des processus et les traces dans le fichier log. Le
fichier diagnosis.html de la documentation de samba, donne une procédure en 10
points pour vérifier que tout fonctionne. Localisez ce fichier, (en général dans
/usr/share/doc/samba) ouvrez-le avec un navigateur et réalisez la procédure de
test qui y est décrite.
Exemple :
- pour se connecter au service (ici un partage) d’une machine :
smbclient //machine/service -U login%passwd
#mkdir -p /mnt/samba
# smbmount //@ipduserveur/partage /mnt/smbmnt -o username=fds
Password:
• Montage
Montez un système de fichiers SMB avec la commande smbmount.
#smbmount //machine/partage /mnt/mountpoint -o username=login
NB : Tout comme avec nfs, c’est un service spécialisé qui montera et démontera les
partages. Les derniers noyaux Linux ont remplacé smbfs par cifs (installez le paquet
cifs: #apt-get install cifs-utils) :
- Accès authentifié :
#mount.cifs //machine/partage /mnt/mountpoint -o username=IDENTIFIANT
Préalable
Configuration Réseau :
- Vérification des adresses :
configurer vos ordinateurs comme présentée dans la figure 1
exemple :
NOM-MACHINE ADRESSE RESEAU FONCTIONS
Linux1.stage1.monseminaire.ci 192.168.20.1/24 Dns Primaire
Linux2.stage1.monseminaire.ci 192.168.20.2/24 Dns secondaire
Linux3.stage1.monseminaire.ci 192.168.20.3/24 Serveur de messagerie
#ifconfig -a
ping des autres ordinateurs du réseau
zone "stage1.monseminaire.ci" {
type master;
notify yes ;
file "/etc/bind/db.stage1.monseminaire.ci ";
};
stage1.monseminaire.ci est le nom de domaine pour lequel notre serveur sera primaire
(c'est à dire où c'est se serveur DNS qui sera utilisé),
Sur le serveur principal (linux1), il faut autoriser Bind à transférer les données vers le
serveur secondaire (linux2) en ajoutant cette ligne dans « /etc/bind/named.conf.options
»:
allow-transfer { 192.168.20.2; }; l'adresse Ip du serveur secondaire
zone "20.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.stage1.monseminaire.ci.rev ";
};
#touch /etc/bind/db.stage1.monseminaire.ci.rev
Vérification de la configuration
#tail -f /var/log/syslog
on repère les lignes des fichiers dans lesquelles il y a des erreurs.
Tests
• Résolution directe
dig @localhost linux1.stage1.monseminaire.ci A
• Résolution inverse
dig @localhost -x 192.168.20.1
Tests ping
$ping linux1.stage1.monseminaire.ci
Si la commande marche, c'est que le fichier /etc/resolv.conf est bien configuré.
zone "stage1.monseminaire.ci" {
type slave; //on indique que c'est un serveur secondaire
file "/etc/bind/db.stage1.monseminaire.ci "
masters {192.168.20.1}; //on indique que le serveur primaire
est 192.168.20.1 (liunx1)
};
#Résolution inverse
zone "20.168.192.in-addr.arpa" {
type slave;
file "/etc/bind/db.stage1.monseminaire.ci.rev ";
masters {192.168.20.1};
};
Sur le serveur esclave (linux2),
il faut l’autoriser à s’envoyer des notifications pour éviter d’avoir des
messages d’erreurs dans les logs.
#tail – f /var/log/syslog
Lors du démarrage du serveur, les fichiers contenant la résolution des noms, seront
importés dans « /var/cache/bind »
Tests de postfix:
On peut tester notre serveur en exécutant les commandes suivantes à partir du terminal:
Configuration de courier-
imap
Configuration de Maildir:
configuration du repertoire de stockage de mail pour l'utilisateur: le MAILPATH (ou
MAILDIRPATH),
Editez et modifiez le fichier /etc/courier/imapd comme suit :
MAILDIRPATH=Maildir
enregistrez et redémarrer
#service postfix restart && service courrier-imap restart service autdaemon restart
Surveiller le système :
#tail -f /var/log/mail.log
Cette commande trace toute l'activité du serveur : envoie et réception de mails.
Ajouter d'autres utilisateurs
Prendre en compte les utilisateurs crées dans l'atelier N°
tester l'envoi de mail entre ceux ci
Objectifs :
Création des répertoires et des fichiers du site
(page par défaut, répertoire des images et des pages web )
Adaptation des fichiers de configuration ( mise en place des directives essentiel du site,
Alias et option Directory, …..)
Un peu de pratiques
Avec un éditeur de texte ( ex : gedit, nano, vim ….) editez le fichier de configuration :
# gedit /etc/apache2/sites-available/default
Modifier la ligne :
DocumentRoot /var/www/siteweb
Remarque : après modification des fichiers de configuration il faut toujours relancer le serveur Apache pour
prendre en compte les modifications.
Objectifs
Interdire l’accès à tout le monde.
Sécuriser l’accès à ce site par un mot de passe
interdire l’accès à fichier
Tester la configuration.
Objectifs :
Modifier la configuration d’accès au répertoire siteweb,
Créer le mot de passe crypté
$ cd /etc/apache2
$ sudo htpasswd -c users tito ( l'option -c permet de créer le fichiers users)
→ un mot de passe demandé, puis confirmé
Tester la configuration.
# cd /etc/apache2/sites-available
#nano default
Ajouter les lignes suivantes :
#conf_site2
#conf_site1 # serveur web basé ip
# serveur web basé ip <VirtualHost 192.168.20.10>
<VirtualHost 192.168.20.3> DocumentRoot
DocumentRoot /var/www/siteweb2
/var/www/siteweb1 ServerName www.monsite2
ServerName www.monsite1 </VirtualHost>
</VirtualHost>
2. préparez les pages web
# mkdir -p /var/www/siteweb1 /var/www/siteweb1
#echo "<H1>Salut bienvenue monsite1 </H1>" > /var/www/siteweb1/index.html
#echo "<H1>Salut bienvenue monsite2 </H1>" > /var/www/siteweb2/index.html
On relance Apache :
#service apache2 restart
conf_wiki conf_docs
On relance Apache :
#service bapache2 restart