Beruflich Dokumente
Kultur Dokumente
Mise en situation :
Le serveur dhcp sur votre réseau est en panne. Vous devez alors définir une adresse IP
statique afin de pouvoir remettre votre station de travail sur le réseau.
Tâches :
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.X
NETMASK=255.255.255.O
GETEWAY=192.168.0.254
search exemple.com
namserver 192.168.0.254
Résultat :
Un système configuré de façon à pouvoir fonctionner avec des réglages de réseau statique.
Page 1 sur 2
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Page 2 sur 2
Travaux pratiques : installation d'un serveur DNS
PARTIE 1 : INSTALLATION DU SERVEUR
Pour récupérer les adresses IP, on lance un terminal sur chaque une des deux machines et on
tape la commande ifconfig, on regarde la ligne “inet adr”. On trouve par exemple pour le
client : 192.168.108.2 et pour le serveur DNS 192.168.108.1.
domaine.com est le nom de domaine pour lequel le serveur sera primaire (c'est à dire où c'est
ce serveur DNS qui sera utilisé), domaine.com.zone désigne le fichier où seront stockés les
enregistrements de la zone.
On crée le fichier domaine.com.zone et on ajoute les lignes suivantes :
$TTL 604800
domaine.com. IN SOA machine1 root.machine1.domaine.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
domaine.com. IN NS machine1
machine1 IN A 192.168.108.1.
machine2 IN A 192.168.108.2.
zone "108.168.192.in-addr.arpa" {
type master;
file "Domaine.com.rev";
};
Page 1 sur 3
Dans le fichier domaine.com.rev, on tape :
$TTL 604800
;$ORIGIN 108.168.192.in-addr.arpa.
@ IN SOA machine1 root.machine1.domaine.com (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS machine1.domaine.com.
;
1 IN A machine1
2 IN A machine2
Page 2 sur 3
Lorsque l'on lance une capture avec ethereal pendant que les pings sont effectués, il y a au
niveau des trames :
une demande dns du client vis à vis du serveur pour lui demander l'adresse de
www.domaine.com, le DNS répond que c'est un alias de machine1 et il donne l'adresse IP de
machine1 ensuite le client contacte par un ping l'@ IP de machine1.
Page 3 sur 3
Travaux pratiques : installation d'un serveur DHCP
Indications pour la réalisation du TP
L'atelier propose
• d'installer un serveur DHCP sous Linux,
• d'installer un client DHCP sous Linux
• d'installer un client DHCP sous Windows
• de réaliser une phase de test avec les commandes winipcfg et ipconfig de Windows
Matériel nécessaire :
Deux machines en dual boot Linux / Windows en réseau.
Les éléments sur l'analyse de trame, notamment les trames bootp, seront retraités lors des TP
sur la métrologie.
Installation du serveur
Les paquets sont déjà installés.
Attention : vous pouvez avoir sur votre distribution, plusieurs serveurs DHCP.
dhcpd est conforme à la RFC 2131. Il fournit un exemple de configuration assez détaillé.
dhcp3, intègre l'inscription auprès d'un DNS Dynamique. C'est ce package que nous allons
utiliser dans le TP. Par contre si vous n'avez pas de DNS dynamique sur le réseau, vous
devrez mettre en entête du fichier dhcpd.conf, la ligne :
ddns-update-style none;
Configuration du serveur
La configuration consiste à créer 2 fichiers :
• /etc/dhcp/dhcpd.conf, ce fichier sert à la configuration même du serveur (plage
d'adresses, paramètres distribués),
• /var/lib/dhcpd/dhcpd.leases, ce fichier va servir à l'inscription des clients.
Chaque client DHCP, génère l'écriture d'un enregistrement dans ce fichier. Cela
permet le suivi, les statistiques de l'activité du serveur.
host m2 {
hardware ethernet a0:81:24:a8:e8:3b;
fixed-address 192.168.0.126;
} # End m2
} # End Group
} # End dhcp.conf
lease 192.168.0.10 {
uid 01:00:40:33:2d:b5:dd;
client-hostname "CHA100";
On distingue les informations suivantes : Début du bail, Fin du bail, adresse MAC du client,
le nom d'hôte du client. Attention ce nom est différent du nom Netbios utilisé sur les réseaux
Microsoft.
Activation du serveur
Le serveur est configuré, il n'y a plus qu'à le mettre en route. Utilisez la commande suivante
pour arrêter ou activer le service : /etc/init.d/dhcpd start | stop.
Le script lance le serveur en mode daemon.
Réalisation du TP
1. Installez un serveur DHCP minimal sous Linux et vérifiez le bon démarrage du service
2. Installez un client DHCP sous Linux, vérifiez le bon démarrage du service réseau et
l'inscription dans le fichier dhcpd.leases du serveur. Testez le renouvellement du bail.
Il suffit de relancer le service réseau.
3. Installez un client DHCP sous Windows, vérifiez le bon démarrage du service réseau
et l'inscription dans le fichier dhcpd.leases du serveur. Testez le renouvellement du
bail.
4. Modifiez l'étendue du serveur. Vérifiez le bon fonctionnement de la distribution
d'adresses aux clients.
5. Modifiez la configuration du serveur afin qu'il distribue également l'adresse de la
passerelle par défaut, l'adresse du serveur de nom. Testez la configuration.
6. Modifiez la configuration du serveur DHCP afin de réserver une adresse au client,
vérifiez que le processus a bien fonctionné.
TP Installation/Configuration du service NFS sur GNU/Linux
Objectifs :
– Installer un serveur NFS sur un PC GNU/Linux (RedHat).
– Visiter les principaux fichiers de configuration utiles à NFS.
– Utiliser le service NFS depuis un poste client GNU/Linux.
– Evoquer les aspects de sécurité liés à l'usage de NFS.
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.x.y
NETMASK=255.255.255.0
NETWORK=192.168.x.0
BROADCAST=192.168.x.255
ONBOOT=yes
Le fichier /etc/sysconfig/network :
HOSTNAME=posteX.exemple.com
NETWORKING=yes ...
Une fois le réseau configuré, on pourra peupler le fichier /etc/hosts selon le modèle :
#adresse_IP name alias
192.168.x.10 poste10.exemple.com poste10
192.168.x.11 poste11.exemple.com poste11
...
192.168.x.20 poste20.exemple.com poste20
192.168.x.21 poste21.exemple.com poste21
...
Remarque : cette étape pourrait être ignorée, mais dans ce cas il faudrait utiliser
systématiquement les adresses IP des machines sur le réseau au lieu des nom de machine.
Ne pas oublier de relancer le service network. Valider la configuration réseau avec les
commandes ifconfig, ping, ssh ...
b - Configuration
La planification des répertoires à exporter est la suivante :
répertoire clients autorisés options
/var/local/data 192.168.x.0/255.255.255.0 rw,sync,root_squash
/var/pub 192.168.x.0/255.255.255.0 rw,sync,root_squash
Utiliser un filtre sur la sortie de la commande 'ps ax' pour visualiser le runlevel courant
Utiliser chkconfig pour vérifier sous quels runlevels les services portmap et nfs sont lancés
A l'aide de la commande 'rpcinfo p', lister les services portmap installés pour le serveur
NFS :
pour chacun des démons utilisés par NFS , identifier :
– les noms des services portmap concernés,
– le numéro de version, le type de transport supporté (tcp ou udp), le numéro de port
utilisé ...
Utiliser la commande showmount, sans option. Essayer les option a, d et e.
Comparer le contenu du fichier /etc/exports et la sortie de la commande 'exportfs -v'.
Le serveur est maintenant prêt à recevoir des requêtes NFS ...
La planification des répertoires à importer par NFS est la suivante : le répertoire /var/pub du
serveur NFS 192.168.x.y sera monté sur le répertoire local
/mnt/remote/y/pub
Préparer les points de montage pour les serveurs NFS choisis : mkdir, chmod, ...
Effectuer quelques montages à la main, par exemple :
mount -t nfs 192.168.x.64:/var/local/data /mnt/remote/164/pub
Vérifier les montages NFS : commande « mount –t nfs » ou encore commande df ...
Sous le compte root, créer quelques fichiers, répertoires sous l'arborescence
/mnt/remote/x/pub => Vérifier les attributs de création des fichiers (ls -l).
Sous un compte utilisateur, créer quelques fichiers, répertoires sous l'arborescence
/mnt/remote/x/pub => Vérifier les attributs de création des fichiers (ls -l).
Créer un compte utilisateur local (inexistant sur le serveur), et utiliser ce compte pour créer
quelques fichiers, répertoires sous l'arborescence /mnt/remote/x/pub => Visualiser les attributs
de création des fichiers (ls -l) sur le poste client et sur le serveur NFS.
Transférer des fichiers entre postes clients en utilisant le montage NFS.
Tâches :
2- Créez un groupe nommé legal auquel appartiennent les utilisateurs elies, anouar, aroua et
amine. Ne leur donnez pas de mot de passe ils ne pourront accéder au système que par
Samba.
groupadd legal
for user in elies anouar aroua amine ; do
useradd –G legal –s /sbin/nologin $user
done
3- Par défaut, Samba est configurer pour recevoir des mots de passe cryptés, mais il n’y a pas
encore de mots de passe dans la base de Samba. Pour tester votre serveur vous devez
exécuter smbpasswd pour chaque utilisateur qui pourra accéder à votre serveur. Ajoutez
les utilisateurs de l’étape 2, root et un autre utilisateur de votre choix.
smbpasswd –a elies
smbpasswd –a anouar
smbpasswd –a aroua
smbpasswd –a amine
smbpasswd –a root
4- Notez que le premier volume partagé défini dans /etc/samba/smb.conf, [homes], n’a pas de
chemin spécifié. Ce partage est configuré pour partager le répertoire personnel d’un
utilisateur s’il se connecte et est authentifié. Transférez un fichier dans le volume partagé
du répertoire personnel de l’utilisateur elies.
smbclient //localhost/elies -U elies
Vous devriez voir maintenant l’invite smb:\>
put /etc/hosts hosts
1/2
Séquence 2 : Permettre l’accès au répertoire d’un groupe
Scénario :
Il se trouve qu’en plus d’avoir leurs propres privés sur le serveur, nos quatre utilisateurs
appartiennent au même département et nécessitent un endroit où stocker leurs fichiers. Nous
devons configurer un groupe Linux pour les utilisateurs, créer un répertoire pour qu’ils
puissent stocker leur contenu et configurer le serveur Samba pour partager le répertoire.
2- Créez un partage Samba nommé [legal] dans /etc/samba/smb.conf. Seuls les membres
du groupe legal devraient avoir accès au partage. En outre, assurez-vous que les
fichiers placés dans le partage [legal] soient créés avec les permissions 0660.
[legal]
comment = fichiers de legal
path = /home/depts/legal
publiuc = no
write list = @legal
create mask = 0660
2/2
TP Installation/Configuration du service Apache
Objectifs :
– Installer et configurer un serveur Apache sur un PC GNU/Linux (RedHat).
– Contrôler l’indexation d’un répertoire sur un site.
– Configurer la gestion des pages personnelles.
– Exécuter des scripts cgi ou autres sur le serveur.
– Sécuriser les accès au serveur par authentification ou par source.
– Implémenter plusieurs sites virtuels sur un même serveur.
1- Apache est livré dans le paquetage httpd. Est-il installé ? Si oui, quelle est sa version ?
Installer (si ce n’est pas déjà fait) le paquetage httpd et assurez vous qu’il est lancé dans les
niveaux d’exécution 3, 4 et 5.
1. Quel directive spécifie le port TCP sur lequel écouter ? Quel est le port par défaut ?
2. Il y a-t-il d’autres fichiers de configuration chargés depuis httpd.conf ? Où sont-ils
placés ? Donner leur liste.
3. Quelle est la directive chargeant un module ?
4. Sous quel identité́ unix (utilisateur et groupe) le serveur va-t-il s’exécuter ? Donner les
UID et GID correspondants.
5. Quel est le répertoire racine pour les documents (pages) servis ?
6. Quelle page Apache renvoie-t-il lorsque l’URL demandée correspond à un ré́ pertoire ?
7. Comment sont traitées les URLs de la forme http://serveur/cgi-bin/toto ?
8. Quels sont les fichiers de logs générés ? Où sont-ils placés ? Quel est leur format et
comment est-il contrôlé́ ?
1. Comment charger cette page d'accueil du serveur Apache hébergé par votre propre
machine ?
2. Pouvez-vous charger la page d'accueil des serveurs Apache des autres groupes ?
3. Observer la page d'accueil : quelle est la version d'Apache ? la documentation
d'Apache est-elle installée ?
4. Où se trouve et comment s'appelle cette page d'accueil sur le système de fichiers ?
Pour la localiser, trouvez dans le fichier httpd.conf, la ligne débutant par
DocumentRoot, puis lire la page d'accueil.
5. Renommez index.txt cette page d'accueil sur votre serveur. Pouvez vous l'obtenir
comme précédemment, à partir de la syntaxe http://serveur/ ? Savez-vous pourquoi ?
Qu'obtenez-vous en passant l'URL : http://serveur/index.txt ? Expliquez pourquoi.
Remettre la page d'accueil d'origine et vérifier.
1. Si cette indexation est bloquée dans un répertoire, alors en l'absence d'un quelconque
des fichiers par défaut listés à la clause DirectoryIndex, on obtient une page d'erreur.
En revanche, si cette option d'indexation est activée, on obtient l'affichage du contenu
du répertoire demandé.
2. Renommez la page d'accueil en index.txt, puis votre page index.html en index.html.old.
Pouvez-vous alors lister le répertoire racine du WEB par http://serveur/ ?
3. Cherchons la clause qui contrôle cette indexation
A l'aide d'une commande grep, rechercher le numéro de la ligne comportant
"<directory /var/www/html>"
Mettre en commentaire la ligne commençant par Options et insérer la ligne Options
Indexes FollowSymLinks
Enregistrer et relancer le serveur. Vérifier l'effet. Ensuite revenir à la situation initiale
et re-bloquer l'indexation du répertoire principal /var/www/html
4. Créer un sous-répertoire à la racine du WEB /var/www/html, nommé webftp
Comment permettre à ce répertoire seulement d'être indexé ? Pour cela créer une
section :
<Directory var/www/html/webftp>
Options Indexes
order allow,deny
allow from all
</Directory>
Placer des pages HTML dans ce répertoire. et vérifier alors qu'affichage et parcours
sont autorisés de toutes les stations du réseau
Comme "webmaster" du site officiel de votre établissement, vous voulez publier les pages
personnelles de vos collègues mais pas les gérer vous-mêmes, voire même les laisser gérer
eux-mêmes leur site :
<Directory /home/*/public_html>
order allow,deny
allow from all
</Directory>
3. L'utilisateur stagex (x=1 ..10) crée lui-même le répertoire de son site web, et y place
une page d'accueil accueil.html
4. Peut-il y accéder ?
1- Écrire en shell BASH un script CGI nommé date qui renvoie la date et l’heure dans une
page HTML. Où placez-vous le script ? Faut-il configurer quelque chose ?
2- Modifier la configuration pour que toutes les pages suffixées par .sh soient considérées
comme des CGI et exécutées.
3- Ecrire un CGI qui permette d’afficher la liste des processus appartenant à un utilisateur
donné.
http://serveur/listeprocs.sh?user=toto afficherait dans une page HTML la liste des processus
de toto s’exécutant sur le serveur.
4- Ecrire une page HTML avec un formulaire simple permettant la saisie du nom de
l’utilisateur et qui via un bouton permet de charger le cgi précédent.
1- Créez un répertoire secret dans l’arborescence web et placez y une page HTML.
Configurez Apache afin que vous ne puissiez accéder au répertoire secret que depuis le
serveur lui même.
Quel est le code renvoyé par Apache lorsqu’on tente d’accéder à ce répertoire depuis une
autre machine ? Qu’observe-t-on dans les logs ?
2- Protéger l’accès au sous-site privé d’un établissement, supposons qu’il s’agit du sous-
répertoire /var/www/html/prive.
Il ne devra être accessible qu'à un ensemble limité de comptes Apache (et non Linux) à créer.
Une requête s’adressant à ce répertoire protégé provoquera l’affichage d’une boite de dialogue
par laquelle l’utilisateur devra s’authentifier (nom et mot de passe).
Tester leur accessibilité pour tous. Sinon penser à modifier les permissions Linux sur
ces fichiers.
2. Créer dans ce répertoire à protéger le fichier .htaccess. En voici une écriture standard :
AuthUserFile /etc/httpd/users
AuthName "Accès privé"
AuthType Basic
require valid-user
cd /etc/httpd/
htpasswd -c users admin
---> mot de passe demandé (admin), puis confirme.
<Directory /var/www/html/prive>
AllowOverride ...
Options -Indexes
.........
<Directory>
10. Retester normalement avec succès ! N’oubliez pas de relancer le navigateur quand on
change de compte.
11. Observez le trafic HTTP avec ethereal lors d’un accès au répertoire privé depuis une
machine distante. Où se trouve le mot de passe ? Est-il lisible ?
Lorsqu’une machine doit héberger plusieurs sites webs différents et même si elle ne dispose
que d’une adresse IP, on utilise la technique des “serveurs virtuels” (Virtual Hosts).
1- Donner plusieurs noms à votre machine (soit via /etc/hosts soit en modifiant le DNS de
votre réseau).
2- Configurez Apache, en donnant à chaque hôte virtuel une page d’index différente.
Supposons que le serveur d'établissement soit hébergé par une machine aux ressources
limitées, et que le nombre de requêtes qui lui sont adressées n'est jamais considérable.
1- Préparez le répertoire /var/ftp/entrant pour les fichiers entrants sur le serveur ayant les
caractéristiques suivantes :
a. Le groupe propriétaire doit être ftp
b. Les permissions seront tout pour le propriétaire, lecture et accès pour le groupe
et rien pour les autres.
mkdir /var/ftp/entrant
chown root.ftp /var/ftp/entrant
chmod 730 /var/ftp/entrant
2- Modifiez le fichier vsftpd.conf pour autoriser les utilisateurs anonymes à effectuer des
transferts de fichiers vers le serveur, ces fichiers seront la propriété de l’utilisateur
elies et auront les permissions 077.
anonymous_enable=YES
anon_upload_enable=YES
chown_uploads=YES
chown_username=elies
anon_umask=077
Introduction :
Pour des raisons de sécurité, la configuration par défaut de postfix permet l'envoi sur le réseau, mais
pas la réception (par défaut elle n'accepte que les connexions sur l'interface loopback). Configurez
votre MTA de façon à accepter les connexions entrantes sur toutes les interfaces.
tail -f /var/log/maillog
3- Essayez d'envoyer un message de test à root@stationX la station d'un autre utilisateur ayant fait
la même manipulation que vous. Vous devriez constater une connexion SMTP cohérente avec votre
serveur de relais local.
Si l'échange SMTP se passe bien, c'est que le message a été transmis au serveur de relais local de
votre poste.
mailq -Ac
et
mailq
4- Relevez les différentes étapes de la connexion SMTP et reproduisez-les avec telnet sur le port 25
du serveur de votre partenaire.
Avant de déterminer la destination d'un message, postfix entreprend une tentative de résolution
d'alias.
/etc/aliases
2- Pour optimiser les recherches, postfix génère une tables de hash pour ces définitions d'alias. Quel
est le fichier hash des alias et quelle commande le génère?
/etc/aliases.db
La commande : postalias
3- Ajoutez un alias nommé "moi" sur votre compte d'utilisateur, mettez la table de hash à jour et
testez un envoi de courrier vers votre alias.
Le relais permet au courrier d'être redirigé vers sa destination à l'aide d'une machine "relais"
intermédiaire. Bien qu'il soit parfois utile, le relais est devenu source d'abus sur Internet de la part
des spammeurs.
La séquence qui suit va utiliser les hôtes suivants. Remplacez X, Y et Z par les numéros de postes
appropriés :
• stationY : la machine source, celle d'où émane le courrier.
• stationX : la machine relais, sur laquelle le courrier est dirigé par l'envoyeur.
• stationZ : la machine de destination finale du courrier.
Cette séquence sous-entend que vous êtes sur stationX, la machine relais, et que vous faites équipe
avec quelqu'un qui travaille sur stationY, la machine d'où émane le courrier. Au cours de la
séquence, supervisez le fichier /var/log/maillog.
1- Par défaut postfix désactive le relais. Pour activer le relais sur votre sous-réseau quelles
commandes doivent être exécutées?
2- Faites jouer par votre partenaire le rôle d'un spammeur malintentionné, qui va maintenant
pouvoir utiliser votre postfix pour maquiller l'origine de courriers indésirables en faisant
directement un telnet sur votre SMTP. Utilisez un identifiant faux lors du HELO et un mail d'origine
non valide, destinez le courrier à la machine de destination.
3- Revenez à la configuration postfix par défaut pour interdire à nouveau le relais ou exécutez
quelles commandes?
dovecot-1.2.6-4.fc12.i686
2- Envoyez un mail à votre utilisateur local. Connectez-vous ensuite au serveur POP par telnet sur
le port 110 et utilisez les commandes du protocole POP pour vérifier l'arrivée du message et la
lecture de son contenu.
S: +OK localhost