Master 2 TIIR. Systèmes UNIX TP Administration avancée 2013. 9 septembre 2013

Documents pareils
Atelier : Virtualisation avec Xen

TP DHCP et DNS. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

- FICHE DE PROCEDURE - Configurer un serveur DNS avec Bind9 sur Debian

Serveur de messagerie sous Debian 5.0

Administration Système & Réseau. Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

La virtualisation selon Xen

Installation Serveur DNS Bind9 Ubuntu LTS

DOMAIN NAME SYSTEM. CAILLET Mélanie. Tutoriel sur le DNS. Session Option SISR

Administration de Parc Informatique TP03 : Résolution de noms

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

INSTALLATION DEBIAN 7 (NETINSTALL) SUR VM

TP DNS Utilisation de BIND sous LINUX

TP LINUX Travaux avec Debian ETCH

Réalisation d un portail captif d accès authentifié à Internet

Utiliser Améliorer Prêcher. Introduction à LDAP

TP SECU NAT ARS IRT ( CORRECTION )

Client Debian Squeeze et serveur SambaEdu3

SECURIDAY 2012 Pro Edition

Il est possible d associer ces noms aux langages numérique grâce à un système nommé DNS(Domain Name System)

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

Administration de Parc Informatique TP07 : Installation de Linux Debian

Administration réseau Résolution de noms et attribution d adresses IP

Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux

Serveur DHCP et Relais DHCP (sous Linux)

DHCPD v3 Installation et configuration

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :

TP administration système

Administration de Parc Informatique TP02 : Utilisation du logiciel Marionnet

Enoncé du TP 8 Système

Bind, le serveur de noms sous Linux

Introduction à Xen. Mehdi Sebbar MiNET. 5 Novembre 2010

Master d'informatique 1ère année Réseaux et protocoles

DNS : Domaine Name System

Mise en place d un serveur DNS sous linux (Debian 6)

LOSLIER Mathieu. Filière Informatique et Réseau 1 ère année. TP DNS. Responsable : LOHIER Stephane. Chargé de TD : QUIDELLEUR Aurélie

Administration UNIX. Le réseau

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

titre : CENTOS_BIND_install&config Système : CentOS 5.7 Technologie : Bind 9.3 Auteur : Charles-Alban BENEZECH

Installer et configurer un serveur Zimbra

Configuration réseau Basique

Domaine Name System. Auteur: Congduc Pham, Université Lyon 1. Figure 1: Schéma des salles TP11 et TD4

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

Mise en place des TPs Réseau en machines virtuelles. Utilisation de VmPlayer

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

Étude de l application DNS (Domain Name System)

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

OpenMediaVault installation

Réseau - VirtualBox. Sommaire

DNS. Olivier Aubert 1/27

Ce TP consiste à installer, configurer et tester un serveur DNS sous Linux. Serveur open source : bind9 Distribution : Mandriva

Xen. Quelques notes autour de Xen

Introduction. Pourquoi LTSP? Comment fonctionne-t-il? CIP Kevin LTSP BTS SIO

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

L annuaire et le Service DNS

1 Configuration réseau des PC de la salle TP

Sur un ordinateur exécutant Windows 2000 Server Ayant une adresse IP statique

TP : Introduction à TCP/IP sous UNIX

INSTALLATION ET CONFIGURATION DE OPENLDAP

Mise en œuvre de Rembo Toolkit

REPARTITION DE CHARGE LINUX

TD 1 - Installation de système UNIX, partitionnement

I. Adresse IP et nom DNS

TP PLACO. Journées Mathrice d'amiens Mars 2010

INFO-F-309 Administration des Systèmes. TP7: NFS et NIS. Sébastien Collette Résumé

Virtualisation et le hosting. Christophe Lucas Sébastien Bonnegent rouen.fr>

Installer un domaine DNS

FreeNAS Shere. Par THOREZ Nicolas

TP de réseaux : Domain Name Server.

TP XEN. Mise en œuvre de l hyperviseur Xen. sur. Debian Lenny

Tour d'horizon Bureau client Daemon's Aller plus loin

Répartition des charges avec HaProxy CONTEXTE MFC JULIEN HUBERT

But de cette présentation. Proxy filtrant avec Squid et SquidGuard. Serveur proxy. Serveur proxy. Hainaut P

Tutoriel déploiement Windows 7 via serveur Waik

Cours LG : Administration de réseaux et sécurité informatique. Dans les Paramètres Système onglet Processeur, le bouton "Activer PAE/NX"

Le logiciel Netkit Installation et utilisation

Année Universitaire ième année IMAC Mardi 6 janvier Cloud computing Travaux Pratiques

Spécialiste Systèmes et Réseaux

TP1 - Prise en main de l environnement Unix.

Mise en place Active Directory / DHCP / DNS

BIND : installer un serveur DNS

UBUNTU Administration d'un système Linux (4ième édition)

FILTRAGE de PAQUETS NetFilter

Machine virtuelle W4M- Galaxy : Guide d'installation

Serveurs de noms Protocoles HTTP et FTP

B1-4 Administration de réseaux

MISE EN PLACE DU FIREWALL SHOREWALL


Résolution de noms. Résolution de noms

Domain Name Service (DNS)

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

Mise en place d un firewall d entreprise avec PfSense

CASE-LINUX CRÉATION DMZ

Déploiement de Linux en réseau avec Kickstart. Mars

Mise en place d un serveur trixbox sur un domaine Kwartz. Version 1.0 du 25 juin 2012 Lycée Polyvalent d Artois, Noeux les Mines Adrien Bonnel

MIGRATION ANNEXE SAINT YVES. 1 : L existant. Pourquoi cette migration Schéma et adressage IP. 2 : Le projet. Schéma et adressage IP.

Transcription:

Master 2 TIIR Systèmes UNIX TP Administration avancée 2013 9 septembre 2013 Sommaire 1 Debian Server Edition amd64-xen 2 1.1 Installation Debian Server amd64........................... 2 1.2 Installation de Xen................................... 3 2 Configuration d une machine virtuelle Xen 6 2.1 Création du domaine invité domhttp en mode pont................. 6 2.2 Configuration en réseau routé avec translation d adresses.............. 8 3 Cas concret 10 3.1 Présentation du travail attendu............................ 10 3.2 Indications....................................... 11 4 Configuration des serveurs 12 4.1 Serveur DHCP..................................... 12 4.2 Serveur LDAP..................................... 13 4.3 Serveur DNS...................................... 16 4.4 Configuration et compilation du noyau (pour Debian)............... 19 5 Projets 22 5.1 Sujets 2013-2014.................................... 22 1/23

Chapitre 1 Debian Server Edition amd64-xen Nous allons utiliser la Debian Wheezy (version stable de Debian). Comme le but est d installer un serveur, nous installerons le minimum (pas de XWindow!). 1.1. Installation Debian Server amd64 Manipulation : 1. Lancez l installation par réseau d une Debian amd64 ; 2. Procédez comme précédemment pour configurer l installation sauf pour les points suivants. 3. Miroir : ftp.fr.debian.org ou bien debian.polytech-lille.fr 4. pour améliorer la sécurité de votre machine, choisissez un mot de passe vide pour root, et créez un utilisateur localuser 5. Partitionnement : choisissez manuel et créez/utilisez les partitions suivantes : sda2 Primaire Réutiliser le même swap sda10 Logique 4G Ext4 /boot Noyaux sda11 Logique 10G Ext4 / TP Debian Server (racine) sda12 Logique 20G Ext4 /vservers TP Debian Server (Virtual Servers) Laisser le reste libre 6. Sélection des logiciels : n installez que le serveur OpenSSH, désélectionner Utiliaires standard 7. Grub : laisser l installeur lancer Grub sur /dev/sda (Master Boot Record) 8. redémarrez : si le menu ne contient plus vos autres installations, utilisez la commande grub-mkconfig -o /boot/grub/grub.cfg pour que grub recherche à nouveau les OS existants. 9. vous devez obtenir une console texte après redémarrage Faites un apt-get update et apt-get upgrade pour vérifier les mises à jour. Sans XWindow et avec le minimum de paquetages, vous disposez de vim-tiny pour éditer des fichiers. Vous pouvez installer vim, gpm (permet le copier-coller en mode texte) et w3m (browser texte). 2/23

1.2. Installation de Xen 1.2.1. Noyau Xen Manipulation : 1. Installer Xen : > apt-get install xen-tools Ce paquetage installe entre autres l hyperviseur xen-hypervisor-amd64 dans /boot. 2. redémarrez la machine : vous avez de nouvelles options disponibles : les noyaux pré-existants, et dans un sous-menu, ces mêmes noyaux avec lancement de l hyperviseur Xen 4.1. C est l une de ces options qu il faut choisir : xen4.1-amd64 avec le noyau de votre choix. 3. comme Xen utilise pas mal de montages de pseudo devices, il faut paramétrer le module noyau loop dans le fichier /etc/modules en modifiant la ligne : loop max_loop=64 4. arrêtez le démon Xen avec /etc/init.d/xen stop 5. conserver une copie de /etc/xen/xend-config.sxp, et décommentez la ligne (network-script network-bridge) 6. rédemarrez Xen (cela peut être long car Xen a été perturbé par le changement de configuration, soyez patients) 7. est-ce que l affichage de ifconfig vous surprend? Essayez également brctl show. 8. vérifiez que tout s est bien passé en tapant xm list qui doit vous dire que seul le dom0 fonctionne. 1.2.2. Système de fichiers générique pour domaines invités Nous allons maintenant créer un fichier contenant toute l arborescence des fichiers nécessaires à un domaine invité sous Xen. En copiant ce fichier, il nous sera ainsi facile de créer de nouvelles machines virtuelles. Sur un serveur, il faudrait utiliser une partition physique (ou un volume LVM) pour chaque machine virtuelle. Nous placerons tous les fichiers des domaines invités dans la partition /vservers. Manipulation : 1. on crée le fichier guest.root de 1Go, avec un système de fichier vide ext4 : > cd /vservers > dd if=/dev/zero of=guest.root bs=10m count=100 > mkfs.ext4 guest.root # répondre oui à la question Ce fichier sera utilisé comme une partition. 2. configurer le proxy de wget en modifiant le fichier /etc/wgetrc 3. on monte ce fichier (pseudo device) et on y crée un système minimal à l aide de la commande debootstrap. On y copie ensuite quelques fichiers de configuration du domaine hôte, ainsi que les modules du noyau que l on utilise : 3/23

> mount -o loop guest.root /mnt > debootstrap --arch amd64 wheezy /mnt http://ftp.fr.debian.org/debian/ # jetez un coup d oeil au répertoire /mnt > cp /etc/apt/sources.list /mnt/etc/apt/ > cp /etc/apt/apt.conf /mnt/etc/apt/ #apt.conf.d maintenant, vérifiez > cp /etc/network/interfaces /mnt/etc/network/ > cp /etc/resolv.conf /mnt/etc Pour information, l option par debootstrap. print-debs permettrait d avoir la liste des paquetages installés Certaines commandes vont nécessiter que nous nous placions à la racine du système de fichiers du domaine invité que nous préparons. La commande chroot permet d exécuter une autre commande dans un environnement où l on change le système de fichiers racine. Manipulation : 1. on lance dans un environnement "chrooté" un shell bash : > mount --bind /dev /mnt/dev > mount -t proc /proc /mnt/proc > chroot /mnt /bin/bash A ce point vous êtes dans un shell dont le système de fichier racine est /mnt, donc le système de fichier que contient le fichier guest.root. 2. Mise à jour, installation de ssh, table de montage par défaut 1, mot de passe root : > apt-get update > apt-get -s upgrade > apt-get upgrade (si ça vous semble raisonnable) > apt-get install locales > locale-gen fr_fr.utf.8 > dpkg-reconfigure locales # sélectionner la ligne : fr_fr.utf-8 UTF-8 et faites ok # sélectionner ensuite fr_fr.utf-8 par défaut > apt-get update; apt-get upgrade > apt-get install ssh > vi /etc/fstab /dev/xvda1 / ext4 relatime 0 1 > passwd # choisissez un mot de passe (pour le root du domaine invité) # différent de celui du dom0 pour éviter les confusions 3. Modification de /etc/inittab. Afin de pouvoir obtenir une console sur la machine virtuelle, il faut modifier /etc/inittab : changer tty1 en hvc0 dans la ligne 1:2345:respawn:/sbin/getty 38400 tty1 commenter les 5 lignes qui suivent la ligne précédente (i.e. les lignes 2:23:respawn... jusque 6:23:respawn...) 4. quittez le mot chroot 1. Notez le nom (xvda1) du point de montage de la racine, il sert de lien avec l hyperviseur xend. 4/23

> exit > umount /mnt/dev /mnt/proc /mnt Si vous voulez ajouter des modifications communes à tous vos domaines invités, vous devez le faire avant le exit. A noter qu il serait préférable de ne pas avoir le même mot de passe root sur chaque invité. A noter également que si vous avez un problème de clavier dans les invités, il faut charger la map du clavier français (loadkeys fr). 5/23

Chapitre 2 Configuration d une machine virtuelle Xen Pour configurer une nouvelle machine virtuelle Xen, nous allons donc utiliser le fichier guest.root créé précédemment. Il faudra en modifier certains paramètres, déterminer sa configuration réseau, pour enfin y implémenter un service. Rappelons qu un intérêt d utiliser la virtualisation est de séparer les serveurs dans des environnements clos afin d accroître la sécurité. On ne place donc qu un seul service par machine virtuelle. Nous prendrons ici l exemple le plus simple d un serveur web. 2.1. Création du domaine invité domhttp en mode pont Nous créons une machine virtuelle de nom domhttp (sous Xen, une machine virtuelle se nomme «domu») qui utilisera le noyau Debian Xen. Nous allouons 512Mo de Ram à cette machine virtuelle et désignons comme système de fichier racine le fichier domhttp.root. Ce fichier est lié au nom /dev/xvda1 dans la directive disk ci-dessous, nom qui doit correspondre à la table de montage que nous avons définie précédemment. Les options du noyau se placent dans la directive extra. Enfin nous configurons une interface réseau avec une adresse IP fixe Remarquez qu on pourrait aussi fixer l adresse MAC. Pour la machine virtuelle (et en mode pont uniquement), utilisez comme IP l IP du dom0 augmentée de 40 (pour le dernier chiffre). Par exemple, utilisez 192.168.12.149 pour la machine virtuelle si votre IP est 192.168.12.109. Il faut suivre cette convention pour qu il n y ait pas de conflit sur les adresses IP (cela perturberait le routage). Manipulation : 1. Copier le fichier racine et créer le fichier de configuration : > cp /vservers/guest.root /vservers/domhttp.root > vi /etc/xen/domhttp.cfg kernel = /boot/vmlinuz-3.2.0-4-amd64 # ou /boot/vmlinuz-3.2.46-tiir ramdisk = /boot/initrd.img-3.2.0-4-amd64 # idem memory = 512 #extra = xencons=tty1 #Disk root = /dev/xvda1 ro disk= [ file:/vservers/domhttp.root,xvda1,w ] #Network 6/23

name = domhttp vif = [ ip=192.168.12.xx ] #Behaviour on_poweroff = destroy 2. il faut dans un deuxième temps modifier la configuration de l interface de la machine virtuelle pour qu elle corresponde à l adresse IP donnée ci-dessus (pour l instant c est celle du domaine hôte) : > mount -o loop /vservers/domhttp.root /mnt > vi /mnt/etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.12.xx netmask 255.255.255.0 gateway 192.168.12.1 dns-nameservers 192.168.12.12 > umount /mnt 3. vous pouvez dès lors lancer la machine virtuelle et vous logguer sur une console. > xm create domhttp.cfg # la création est parfois longue, ne pas s inquiéter. Using config file "/etc/xen/domhttp.cfg" Started domain domhttp > xm list # dans une autre console virtuelle (Ctrl+Alt+2), connectez-vous et tapez : > xm console domhttp... Debian --- --- tty1 --- login: root Password: root@---> 4. changer le nom d hôte du domaine invité par la commande root@---> echo domhttp > /etc/hostname root@domhttp> 5. puisque normalement vous disposez du réseau dans le système invité, vous pouvez installer le serveur web demandé et ajouter une page : root@domhttp > apt-get update... root@domhttp > apt-get install apache2 root@domhttp > echo "<html><body>serveur du domaine uname -n </h2> ifconfig eth0 grep inet <br/> uname -a </body></html>" > /var/www/xen-domhttp.html Utilisez une 3ème machine pour afficher le contenu de votre serveur web à l adresse http://192.168.12.xx/xen-domhttp.html). 7/23

6. pour arrêter la machine virtuelle, si vous êtes loggué sur une console du système invité, il suffit d arrêter le système pour revenir dans le système hôte : root@domhttp > shutdown -h now... 7. pour vous détacher de la console, il faut taper Ctrl+] 8. pour arrêter la machine virtuelle, si vous êtes loggué sur une console du système hôte, vous pouvez arrêter le système invité : > xm shutdown domhttp Si le système résiste, utilisez xm destroy domhttp La configuration réseau utilisée ici est celle que Xen propose par défaut, et correspond à un mode pont (bridge) 1 : dans ce mode, Xen renomme l interface eth0 de la machine hôte en peth0, puis il crée un pont de nom eth0 auquel il adjoint peth0. Ensuite au fur et à mesure que sont créées les machines virtuelles, il adjoint au pont eth0 les interfaces correspondantes (qui sont nommées vifn.x dans le système hôte et lièes chacune par Xen à l interface ethx de la machine d id n). 2.2. Configuration en réseau routé avec translation d adresses Etant donné la configuration de la salle TP, nous ne pouvons pas librement utiliser d adresses IP du réseau 192.168.12.0/24 pour les machines virtuelles. Nous devons utiliser un autre réseau local pour relier le domaine invité avec le domaine hôte : nous choisissons d utiliser le réseau d adresses (par défaut de Xen) 10.9.0.0/24. Il va s agir alors de router le réseau local vers l extérieur, i.e. que le domaine hôte va faire office de passerelle pour les machines virtuelles du réseau local. Xen propose des scripts pour différentes configurations, dont une configuration en mode routé avec translation d adresses (NAT). Les scripts de configuration de Xen se trouvent dans le répertoire /etc/xen et ceux utilisés pour configurer le réseau se trouvent dans /etc/xen/scripts. Le démon xend est configuré par le fichier /etc/xen/xend-config.sxp. Dans ce fichier, la directive (network-script nom-de-script) permet de configurer le réseau au moment du lancement du démon xend. La directive (vif-script nom-de-script) configure le réseau à chaque lancement de machine virtuelle. En positionnant ces deux valeurs à /bin/true (qui est un script qui renvoie 0), vous pouvez lancer Xen sans aucune configuration réseau. Nous allons ici configurer Xen en mode routé avec NAT en utilisant les scripts proposés, puis réaliser une redirection de port pour que notre serveur apache2 soit accessible de l extérieur. Manipulation : 1. Arrétez le démon Xen, modifier le fichier de configuration pour passer en mode NAT : > /etc/init.d/xen stop > vi /etc/xen/xend-config.sxp commenter les lignes (network-script network-bridge) et (vif-script vif-bridge) 1. On rappele qu "un pont est un équipement matériel qui permet d interconnecter 2 réseaux physiques. Le pont travaille au niveau 2 du modèle OSI. Cela veut dire que le transfert des paquets est effectué suivant l adresse Ethernet (adresse MAC)". 8/23

décommenter les lignes (network-script network-nat) et (vif-script vif-nat) rebooter ou relancer le service xend > /etc/init.d/xen start 2. modifier la configuration réseau du domaine domhttp (réseau local 10.9.0.0) : > vi /etc/xen/domhttp.cfg # remplacer l adresse ip en 10.9.0.1 > mount -o loop /vservers/domhttp.root /mnt > vi /mnt/etc/network/interfaces # remplacer l adresse ip en 10.9.0.1, le gateway par 10.9.0.254, # netmask par 255.255.255.0 > umount /mnt Lancer la machine virtuelle domhttp, vous devriez être capable d y accéder depuis l hôte dom0 (ping 10.9.0.1). Inspectez l affichage produit par route -n. Logguez sur le domaine invité domhttp. De la même manière, vous devez être capable d accéder à l extérieur depuis le domaine invité (ping www.lifl.fr). Ceci confirme que le routage est correct sur dom0, et que le DNS fonctionne. Le dom0 a normalement toujours accès au serveur web : testez w3m http://10.9.0.1/xen-domhttp.html. Il reste quand même à rendre visible votre serveur web depuis l extérieur en redirigeant le port 80 vers le domaine domhttp. Manipulation : 1. On utilise iptables pour faire la redirection de port sur dom0 : pcmtxx > iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.9.0.1:80 2. accédez à votre serveur web depuis la deuxième machine (dont vous aurez relancé le réseau). L adresse de la page est maintenant http://pcmtxx.m2fil.univ-lille1.fr/xen-domain.html Reportez-vous à l Url suivante pour voir d autres configurations possibles : http://doc.fedora-fr.org/wiki/xen_et_le_réseau 9/23

Chapitre 3 Cas concret Dans ce chapitre, nous vous fournissons un cahier des charges, avec des contraintes techniques imposées. Vous avez une certaine liberté pour suivre une solution technique différente, mais dans ce cas, vous devrez discuter et argumenter avec les enseignants, un peu comme vous le feriez avec un client. 3.1. Présentation du travail attendu Objectif : votre machine dom0 192.168.12.xx doit fournir au réseau 192.168.12.xx un serveur Apache, un serveur NFS. Ces deux serveurs seront chacun sur une machine virtuelle, et leur gestion s appuiera sur deux serveurs DNS et DHCP locaux (donc invisibles depuis 192.168.12.xx), eux-mêmes sur une machine virtuelle. Méthode : Apache tourne sur un domu appelé apache NFS tourne sur un domu appelé nfs DNS et DHCP tournent sur un domu appelé dnsdhcp chaque domu est sur un réseau local en 10.9.0.* en mode NAT chaque domu est configuré par DHCP (le DHCP local). On impose les IP suivantes : apache=10.9.0.10, nfs=10.9.0.11, dnsdhcp=10.9.0.12 le réseau local 10.9.0.* utilise le nom de domaine machine<n>.local où N est le numéro de votre machine sur le dom0 et sur chaque domu, apache, nfs et dnsdhcp désignent les noms des domu (i.e. la commande host apache depuis le dom0 et depuis les domu doit fonctionner) Intérêt : la facilité de configuration des différentes machines virtuelles, qui ne contiennent pas d IP en dur, car les domu sont configurés par DHCP on peut imaginer une meilleure tolérance aux pannes car il est «facile «de dédoubler chaque serveur pour remplacer un serveur qui plante, en changeant simplement le dns et une table de routage Remarque : dans une situation réelle, les serveurs DNS et DHCP seraient plutôt décentralisés sur une autre machine physique, ce que nous ne pouvons pas réaliser facilement ici. 10/23

3.2. Indications 3.2.1. Xen Vous ferez attention à bien limiter DHCP et DNS à vos machines pour ne pas perturber les autres. La configuration du dom0 sera peut-être délicate pour la résolution des noms d hôte. A vous de trouver une solution élégante. Voici quelques conseils et mises en garde à lire avant de réaliser le travail. Pour fixer l IP de apache, on indiquera dans le fichier de configuration /etc/xen/apache.cfg de la machine virtuelle apache la ligne vif = [ mac=00:16:3e:00:00:xx, bridge=<nom_du_bridge> ]. C est ensuite le serveur dhcp qui fixera son IP grâce à l adresse MAC. Idem pour les autres domu. Pour que les machines virtuelles se voient, nous allons utiliser un pont que nous créons manuellement. Nous allons donc commenter les lignes (network-script...), décommenter la ligne (vif-script vif-bridge) et commenter les autres (vif-script...). Les commandes suivantes permettent de créer notre pont, dans lequel s ajouteront automatiquement les machines virtuelles (grâce à vif-script vif-bridge) : brctl addbr xenbr0 ifconfig xenbr0 up ifconfig xenbr0 10.9.0.254 netmask 255.255.255.0 iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward Les deux dernières lignes permettent aux machines virtuelles d accéder au réseau extérieur. Pour faire une configuration propre, vous intégrerez la création du pont dans le fichier /etc/network/interfaces. La règle iptables peut être relancée en utilisant iptables-save et iptables-restore. Liens utiles : site de Xen : http://www.xen.org/ wiki de Xen : http://wiki.xen.org/xenwiki/ 3.2.2. Serveurs Apache : Mettre un message d accueil personnalisé pour vérifier que cela fonctionne. NFS : Vous pouvez reprendre les informations du TP d installation. Afin de simplifier les choses, vous exporterez votre répertoire /export en y mettant un fichier texte du nom de votre nom de machine (cela permettra aux autres de vérifier facilement si votre serveur NFS fonctionne). DHCP : Vous utiliserez le paquetage dhcp3-server. Liens utiles : http://www.siteduzero.com/tutoriel-3-277701-mise-en-place-d-un-serveur-dhcp-sous-lin html DNS : Vous utiliserez le paquetage bind9. Liens utiles : http://www.coagul.org/article.php3?id_article=185 11/23

Chapitre 4 Configuration des serveurs Ce chapitre n est pas à réaliser. Il contient quelques explications sur l installation et la configuration de serveurs, qui peuvent vous aider pour le TP. Elles sont plus ou moins à jour, certaines datant de plusieurs années. 4.1. Serveur DHCP La manipulation ici vous explique comment installer un serveur DHCP qui répond aux machines de 192.168.12.*. Ce travail n est pas à réaliser, mais vous donne une première indication sur le fonctionnement du serveur DHCP. Le protocole DHCP (Dynamic Host Configuration Protocol) permet à la machine cliente de recevoir sa configuration réseau IP (et plus éventuellement) d un serveur par réseau. Ce protocole peut paraître contradictoire à priori mais en fait l échange se déroule au niveau de la couche 2 par broadcast en général. Dans cette partie, une machine va faire serveur DHCP et l autre le client. Le serveur va envoyer au client sa configuration d interface, la configuration de routage et la configuration DNS. Les clients faisant leur demande par broadcast, le serveur doit reconnaître quel est son client. Cela se fera sur l adresse MAC de celui-ci. En règle générale un serveur DHCP a un ensemble d adresses disponibles qu il distribue à ceux qui lui demandent. Dans notre cas, les adresses sont déjà connues et ce sont celles-là qu il faudra envoyer d où la section host... dans la configuration ci-dessous. Configuration du serveur (/etc/dhcpd.conf) : 1. Récuperer l adresse MAC de la machine cliente : > arp Ou bien sur la machine cliente : > /sbin/ifconfig eth0 2. Modifier le fichier de configuration d exemple en fonction de l adresse IP et du nom de la machine cliente : # Option global... option domain-name-servers 192.168.12.12, 193.49.225.15; option domain-name "m2fil.univ-lille1.fr"; subnet 192.168.12.0 netmask 255.255.255.0 { 12/23

}... range ip_pcmtx ip_pcmty ; option broadcast-address 192.168.12.255; host pcmtxx { hardware ethernet MM:MM:MM:MM:MM:MM; fixed-address 192.168.12.1?? ; } Configuration du client : 1. Il existe déjà dans la salle un serveur DHCP (lafitte), exceptionnellement, pour l intérêt de la manipulation, nous allons interdire au client de tenir compte des réponses de ce serveur. Ajouter la ligne suivante à /etc/dhclient.conf : reject 192.168.12.11; 2. Vérifier que la configuration de l interface réseau fait appel au DHCP. Editer /etc/network/interfaces allow-hotplug eth0 iface eth0 inet dhcp 3. Redémarrer l interface > ifdown eth0 > ifup eth0 4.2. Serveur LDAP Cette section date de l année 2009, et devrait être relativement à jour. Lightweight Directory Acces Protocol est un service de base de données arborecsentes. Au lieu d avoir à maintenir les mêmes informations (comme par exemple celles de /etc/passwd) sur n machines, une machine privilégiée (le serveur LDAP) maintient à jour cette base de données et les autres machines (clients LDAP) la consulteront pour obtenir ces données. On peut utiliser LDAP pour diffuser toutes sortes de données sous forme d annuaires. En utilisant des schémas standards, il est également possible de diffuser des informations d identification et d authentification. LDAP correspond à l Active Directory de Windows. Vous allez configurer une machine (désignée ici par pcmixx) en tant que serveur, et on pourra alors se connecter sur une machine cliente en utilisant les logins et les mots de passe stockés sur la machine serveur. Configuration du serveur : 1. Installer les paquetages slapd et ldap-utils. 2. Pour configurer slapd, utiliser les options suivantes : DNS domain name pcmixx Database backend to use BDB Allow LDAPv2 protocol no LE «DNS domain name» correspond au «domain component» dont le schéma reprend le nommage DNS : le domaine géré par le serveur LDAP aura donc comme base dc=pcmixx. 13/23

3. Il faut maintenant ajouter des données à la base LDAP, nous allons le faire en trois étapes. Tout d abord, créer l arborescence en créant le fichier init.ldif : # init.ldif dn: ou=people, dc=pcmixx objectclass: top objectclass: organizationalunit ou: people description: Branche People dn: ou=groupe, dc=pcmixx objectclass: top objectclass: organizationalunit ou: groupe description: Branche Goupe Unix 4. Ajouter les données de ce fichier à la base par la commande : > ldapadd -x -D "cn=admin,dc=pcmixx " -W -f init.ldif 5. On crée ensuite les groupes par l intermédiaire d un fichier gr.dif : # gr.ldif dn: cn=lmastertiir, ou=groupe, dc=pcmixx objectclass: top objectclass: posixgroup cn: lmastertiir gidnumber: 61000 description: groupe de TIIR dn: cn=lmasteriagl, ou=groupe, dc=pcmixx objectclass: top objectclass: posixgroup cn: lmasteriagl gidnumber: 60000 description: groupe de IAGL 6. Ajouter les données de ce fichier par la commande : > ldapadd -x -D "cn=admin,dc=pcmixx " -W -f gr.ldif 7. Et les quatre utilisateurs par l intermédiaire d un fichier ut.dif : # ut.ldif dn: uid=iagl1, ou=people, dc=pcmixx objectclass: top objectclass: posixaccount objectclass: person objectclass: organizationalperson objectclass: inetorgperson uid: luseriagl1 cn: nom complet uidnumber: 18000 gidnumber: 60000 homedirectory: /home/lmasteriagl/luseriagl1 loginshell: /bin/bash userpassword: {CRYPT}XXXXXXXXXXXXXXXXXXXXXX ou: lmasteriagl 14/23

: : dn: uid=tiir2, ou=people, dc=masterix objectclass: top objectclass: posixaccount objectclass: person objectclass: organizationalperson objectclass: inetorgperson uid: lusertiir2 cn: nom complet uidnumber: 18001 gidnumber: 61000 homedirectory: /home/lmastertiir/lusertiir2 loginshell: /bin/bash userpassword: {CRYPT}XXXXXXXXXXXXXXXXXXXXXX ou: lmastertiir 8. Ajouter ces données avec : > ldapadd -x -D "cn=admin,dc=pcmixx " -W -f ut.ldif Vérifiez les numéros d uid et de gid qui sont peut-être un peu farfelus. Configuration du client : 1. Installer les paquetages ldap-utils, libpam-ldap et libnss-ldap. 2. Configurer avec ces informations : Hôte ldap :pcmixx// Base DN dc=pcmixx Version LDAP Version 3 Connexion Anonyme (pas d authentification nécessaire) Chiffrement des mots de passe md5 3. Modifier les fichiers d authentification dans /etc/pam.d/ : # common-account account sufficient pam_ldap.so account required pam_unix.so # common-auth auth sufficient pam_ldap.so auth required pam_unix.so nullok_secure use_first_pass # common-password password sufficient pam_ldap.so use_authok password required pam_unix.so nullok obscure min=4 max=8 md5 # common-session session sufficient pam_ldap.so session required pam_unix.so 4. Supprimez les utilisateurs locaux au serveur (ceux qui n ont pas de répertoire dans/export/home/) des fichiers /etc/passwd et /etc/shadow 1. 1. Ou reprenez /etc/passwd.orig et /etc/shadow.orig. 15/23

Rq : Les configurations de libpam-ldap et de libnss-ldap peuvent être modifiées en éditant respectivement les fichiers /etc/libpam-ldap.conf et /etc/libnss-ldap.conf Il reste à préciser au système quand il doit utiliser LDAP. Ce rôle est dédié au fichier /etc/nsswitch.conf. Il contient pour chaque type d information (groups, hosts... ) la liste des «endroits» où les chercher. Il faut donc vérifier que LDAP y apparaît : > cat /etc/nsswitch.conf [...] passwd: compat ldap group: compat ldap shadow: compat ldap [...] Test : Finalement, effectuez quelques petits tests pour voir si tout fonctionne comme prévu. 1. Vérifier l accés à la base LDAP du serveur. > ldapsearch -x -h pcmixx -b dc=pcmixx 2. Parcourir l arborescence LDAP. Installer gq, ajouter le serveur et observer les branches, les schémas et les attributs de chaque objet. 3. Et bien sûr essayez de vous connecter sur les machines! 4.3. Serveur DNS Le DNS (Domain Name Service) est le service prenant en charge le nommage des machines (conversion entre adresses symboliques et adresses IP, nom des serveurs SMTP... ). Il est constitué par une hiérarchie de serveurs de noms gérant leurs sous-domaines. Lorsqu un client lui demande l adresse de machine.domain1-1.domain1, pour la résoudre (trouver son adresse IP) il va demander aux serveurs primaires (machines bien connues) les serveurs du domaine domain1. Puis il demande à ces machines les serveurs du sous-domaine domain1-1.domain1. Et enfin il demande à ces dernières l adresse de la machine machine.domain1-1.domain1. Nous allons donc créer des sous-domaines (masterix.masteri.fr) pour chaque couple de machines dont l une des deux sera le serveur. hommel sera, quand à elle, le serveur du domaine masteri.fr. Pour la partie serveur, vous avez besoin du paquetage bind version 9, bind9. Les clients auront besoin du paquetage host. Pour configurer le serveur, il faut créer les fichiers de zone c.a.d. les fichiers contenant les informations sur votre domaine. Nous allons avoir plusieurs fichiers dans /etc/bind : named.conf : Configuration principale contenant les options du serveur et désignant les fichiers qui définissent les différentes zones ; named.conf.options : Fichier inclu par named.conf pour indiquer les options du serveur. named.conf.local : Fichier inclu par named.conf pour spécifier les zones locales. db.masteri : information sur le domaine masterix.masteri.fr ; db.masteri-arpa : information inverse sur le domaine masterix.masteri.fr ; db.local : information sur le domaine local (la machine toute seule) ; db.127 : information inverse sur le domaine local ; db.root : information sur les serveurs principaux. 16/23

4.3.1. Configuration du serveur Constitution des options et des zones : 1. Modifier named.conf.options : options { directory "/var/cache/bind"; // A qui renvoyer la requete quand on ne sait pas forwarders { 192.168.5.178; }; }; 2. Modifier named.conf.local : // la zone des 2 machines zone "masterix.masteri.fr" { type master; file "/etc/bind/db.masteri"; }; // la zone inverse des 2 machines zone "5.168.192.in-addr.arpa" { type master; file "/etc/bind/db.masteri-arpa"; }; Le fichier contenant les noms des serveurs primaires est déjà fait, vous n avez pas à le modifier. Les autres sont constitués de lignes du type nom interface type information qui donne une information d un certain type pour l interface et le nom donné. L interface est quasiment toujours internet (IN) et les types sont : SOA NS MX A PTR CNAME HINFO nom du domaine pour les lignes suivantes (Start Of Authority) serveur de nom agent SMTP adresse IP adresse symbolique alias type de machine... Rq : Si nom ne se finit pas par un point, le nom du domaine d autorité (SOA) lui est accolé. db.masteri : début du domain. Les arguments sont le nom du serveur, le mail de la personne responsable, le numéro de série (à incrémenter quand le fichier est modifié) et les durées de validité des données ; $TTL 3d @ IN SOA pcmix.masterix.masteri.fr. root.pcmix.masterix.masteri.fr. ( 2005040701 ; Serial 8h ; Refresh 2h ; Retry 1w ; Expire 3h ; Minimum TTL ) 17/23

spécification du serveur du domaine ; masterix.masteri.fr. NS pcmix adresses des machines du domaine ; pcmix A 192.168.5.1xx pcmiy A 192.168.5.1yy db.masteri-arpa : début du domaine ; $TTL 3d @ IN SOA pcmix.masterix.masteri.fr. root.pcmix.masterix.masteri.fr. ( 2005040701 ; Serial 8h ; Refresh 2h ; Retry 1w ; Expire 3h ; Minimum TTL ) spécification du serveur du domaine ; 5.168.192.in-addr.arpa. NS pcmix.masterixx.masteri.fr. adresses des machines du domaine ; 1xx PTR pcmixx.masterixx.masteri.fr. 1yy PTR pcmiyy.masterixx.masteri.fr. Pour vérifier la validité syntaxique de vos fichiers de configuration, vous pouvez utiliser les outils named-checkconf et named-checkzone. Une fois les fichiers syntaxiquement corrects lancez le serveur. 4.3.2. Configuration du client Pour configurer le client il vous suffit de modifier le fichier /etc/resolv.conf en spécifiant le nouveau serveur DNS et le nouveau nom de votre domaine de recherche. Utilisez la commande host pour vérifier si la configuration de votre serveur est correcte. test du client : Modifier le fichier /etc/resolv.conf search masterix.masteri.fr nameserver 192.168.5.1xx Vérifier le résultat des commandes : > host pcmix.masterix.masteri.fr > host pcmiy.masterix.masteri.fr > host pcmix > host pcmiy > host 192.168.5.1xx > host 192.168.5.1yy 18/23