Vous êtes sur la page 1sur 114

Ubuntu Server Guide

Ubuntu Documentation Project <ubuntu-doc@lists.ubuntu.com>

Ubuntu Server Guide


par Ubuntu Documentation Project <ubuntu-doc@lists.ubuntu.com> Copyright 2004, 2005, 2006 Canonical Ltd. and members of the Ubuntu Documentation Project

Rsum
Une introduction l'installation et la configuration d'applications pour serveurs sur Ubuntu.

Remerciements et licence
Les auteurs suivants de l'quipe de documentation d'Ubuntu tiennent ce document jour : Bhuvaneswaran Arumugam Le Server Guide Ubuntu est aussi bas sur les contributions de : Robert Stoffers Brian Shumate Rocco Stanzione Ce document est mis disposition sous une double license, la licence GNU Free Documentation (GFDL) et la licence Creative Commons ShareAlike 2.0 (CC-BY-SA). Vous tes libre de modifier, d'tendre et d'amliorer le code source de la documentation d'Ubuntu sous les conditions de ces licences. Tous travaux drivs de cette documentation doivent tre publis sous au moins une de ces deux licences. Cette documentation est distribue dans l'espoir qu'elle sera utile, mais SANS AUCUNE GARANTIE; sans mme la garantie implicite de QUALIT MARCHANDE ou de CONVENANCE POUR UN BUT PARTICULIER COMME LE DCRIT LA DCLARATION DE RESPONSABILIT. Des copies de ces licences sont disponibles dans les sections annexes de ce livre. Des versions en ligne peuvent tre trouves aux adresses suivantes : GNU Free Documentation License [http://www.gnu.org/copyleft/fdl.html] Attribution-ShareAlike 2.0 [http://creativecommons.org/licenses/by-sa/2.0/]

Disclaimer
Every effort has been made to ensure that the information compiled in this publication is accurate and correct. However, this does not guarantee complete accuracy. Neither Canonical Ltd., the authors, nor translators shall be held liable for possible errors or the consequences thereof. Some of the software and hardware descriptions cited in this publication may be registered trademarks and may thus fall under copyright restrictions and trade protection laws. In no way do the authors make claim to any such names. THIS DOCUMENTATION IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Table des matires


About This Guide .............................................................................................................. 1. Conventions ........................................................................................................... 2. Contributing and Feedback ..................................................................................... 1. Introduction ................................................................................................................... 2. Installation ..................................................................................................................... 1. Prparer l'installation .............................................................................................. 2. Installation partir du CD ...................................................................................... 3. Gestion des paquets ........................................................................................................ 1. Introduction ........................................................................................................... 2. Apt-Get ................................................................................................................. 3. Aptitude ................................................................................................................. 4. Configuration ......................................................................................................... 5. Dpts supplmentaires .......................................................................................... 4. Rseau ........................................................................................................................... 1. Configuration du rseau .......................................................................................... 2. TCP/IP .................................................................................................................. 3. Configuration du pare-feu ....................................................................................... 4. Serveur OpenSSH .................................................................................................. 5. Serveur FTP ........................................................................................................... 6. Network File System (NFS) .................................................................................... 7. Dynamic Host Configuration Protocol (DHCP) ........................................................ 8. Service de nom de domaine (DNS) ......................................................................... 9. CUPS - Serveur d'impression .................................................................................. 10. HTTPD - serveur Internet Apache2 ....................................................................... 11. PHP5 - Langage de script ..................................................................................... 12. Squid - Serveur proxy .......................................................................................... 13. Systme de contrle de version ............................................................................. 14. Bases de donnes ................................................................................................. 15. Services de Courriel ............................................................................................. 16. Synchronisation temporelle avec NTP .................................................................... 5. Rseaux Windows .......................................................................................................... 1. Introduction ........................................................................................................... 2. Installer SAMBA ................................................................................................... 3. Configurer SAMBA ............................................................................................... A. Creative Commons by Attribution-ShareAlike 2.0 ........................................................... B. GNU Free Documentation License ................................................................................. 1. PREAMBLE .......................................................................................................... 2. APPLICABILITY AND DEFINITIONS .................................................................. 3. VERBATIM COPYING ......................................................................................... 4. COPYING IN QUANTITY .................................................................................... vi vii viii 9 10 11 13 14 15 16 18 20 21 22 23 26 30 33 36 38 40 43 45 48 58 60 62 69 72 84 86 87 88 89 95 100 101 102 104 105

iii

Ubuntu Server Guide 5. MODIFICATIONS ................................................................................................. 6. COMBINING DOCUMENTS ................................................................................. 7. COLLECTIONS OF DOCUMENTS ....................................................................... 8. AGGREGATION WITH INDEPENDENT WORKS ................................................ 9. TRANSLATION .................................................................................................... 10. TERMINATION .................................................................................................. 11. FUTURE REVISIONS OF THIS LICENSE .......................................................... 12. ADDENDUM: How to use this License for your documents ................................... 106 108 109 110 111 112 113 114

iv

Liste des tableaux


2.1. Exigences minimales recommandes ............................................................................. 11 4.1. Modes d'accs ............................................................................................................. 63

About This Guide

vi

About This Guide

1. Conventions
The following notes will be used throughout the book: A note presents interesting, sometimes technical, pieces of information related to the surrounding discussion. A tip offers advice or an easier way of doing something.

A caution alerts the reader to potential problems and helps avoid them.

A warning advises the reader of a hazard that may arise in a given scenario.

Cross-reference conventions for print will be displayed as follows: Links to other documents or websites will look like this [http://www.ubuntu.com]. PDF, HTML, and XHTML versions of this document will use hyperlinks to handle cross-referencing. Type conventions will be displayed as follows: File names or paths to directories will be shown in monospace. Commands that you type at a Terminal command prompt will be shown as:
command to type

Options that you click, select, or choose in a user interface will look like this. Menu selections, mouse actions, and keyboard short-cuts: A sequence of menu selections will be displayed as follows: File Open Mouse actions shall assume a right-handed mouse configuration. The terms click and double-click refer to using the left mouse button. The term right-click refers to using the right mouse button. The term middle-click refers to using the middle mouse button, pressing down on the scroll wheel, or pressing both the left and right buttons simultaneously, based on the design of your mouse. Keyboard shortcut combinations will be displayed as follows: Ctrl-N .Where the conventions for Control , Shift, and Alternate keys will be Ctrl, Shift, and Alt, respectively, and shall mean the first key is to be held down while pressing the second key.

vii

About This Guide

2. Contributing and Feedback


This book is developed by the Ubuntu Documentation Team [https://wiki.ubuntu.com/DocumentationTeam]. You can contribute to this document by sending ideas or comments to the Ubuntu Documentation Team mailing list. Information about the team, its mailing lists, projects, etc. can be found on the Ubuntu Documentation Team Website [https://wiki.ubuntu.com/DocumentationTeam]. If you see a problem with this document, or would like to make a suggestion, you can simply file a bug report at the Ubuntu Bugtracker [https://launchpad.net/products/ubuntu-doc/+bugs]. Your help is vital to the success of our documentation! Many thanks, -Your Ubuntu Documentation Team

viii

Chapitre 1. Introduction
Bienvenue dans le Server Guide Ubuntu ! Le Server Guide Ubuntu contient des informations sur l'installation et la configuration de diverses applications serveur sur votre systme Ubuntu, afin qu'il corresponde vos besoins. C'est un guide pas--pas pour configurer et personnaliser votre systme. Ce manuel passe en revue de nombreux sujets intermdiaires exposs ci-dessous : Configuration du rseau Configuration Apache2 Bases de donnes Rseaux Windows Ce manuel est divis en catgories principales que voici : Installation Gestion des paquets Rseau Rseaux Windows Ce guide prsume que vous avez une connaisance suffisante de votre systme Ubuntu. Si vous avez besoin d'une aide plus dtaille pour l'installation, rfrez-vous au guide d'installation d'Ubuntu. Des versions HTML et PDF de ce manuel sont disponibles en ligne sur le site internet de documentation Ubuntu [http://help.ubuntu.com]. Vous pouvez acheter ce guide sous forme de livre depuis la boutique de Lulu [http://www.lulu.com/ubuntu-doc]. Vous ne paierez que le prix de l'impression et de l'envoi.

Chapitre 2. Installation
Ce chapitre fournit un rapide vue d'ensemble de l'installation de l'Ubuntu 6.10 Server Edition. Pour des instructions plus dtailles, merci de vous reporter au guide d'installation d'Ubuntu.

10

Installation

1. Prparer l'installation
Cette section dtaille diffrents aspects considrer avant de commencer l'installation.

1.1. Exigences du systme


L'Ubuntu 6.10 Server Edition supporte trois (3) architectures majeures : Intel x86, AMD64 et PowerPC. Le tableau qui suit dcrit les configurations matrielles recommandes. Selon vos besoins, il est possible que vous puissiez vous satisfaire de moins. Cependant, la plupart des utilisateurs risquent d'tre insatisfaits s'ils ne tiennent pas compte de ces suggestions.

Tableau 2.1. Exigences minimales recommandes


Type d'installation Serveur RAM 64 Megaoctects

Capacit Disqu

500 Megaoctect

Le profil par dfaut de Ubuntu 6.10 Edition Serveur apparat ci-dessous. Encore une fois, la taille de l'intallation dpend essentiellement des services installs pendant la configuration. Les services slectionns par dfaut conviennent la plupart des administrateurs dans le cadre d'un usage courant du serveur. Serveur Ce profil correspond un petit serveur, constituant une base commune pour toutes sortes de serveurs d'applications. C'est une configuration minimale, sur laquelle il est prvu d'ajouter des services supplmentaires comme le service de fichiers ou d'impression, l'hbergement Web, l'hbergement de messagerie, etc. Pour ces services, 500 Mo d'espace disque devraient suffire, mais il s'agit de prvoir l'ajout d'espace supplmentaire selon les services que vous souhaitez ajouter au serveur. Souvenez-vous que ces quantits n'incluent pas tous les autres types objets qu'on trouve gnralement, comme les fichiers personnels des utilisateurs, les courriels, les journaux et les donnes. Il convient toujours d'tre gnreux quand on prvoit l'espace destin ses propres fichiers et donnes.

1.2. Sauvegarde
Avant de commencer, assurez-vous de sauvegarder chaque fichier prsent sur votre systme. Si c'est la premire fois que vous installez un autre systme d'exploitation, autre que celui prinstall, il est vraisemblable que vous ayez repartitioner votre disque, pour faire de la place pour Ubuntu. Chaque fois, que vous partitionez votre disque, vous devez tre prt perdre toutes les donnes qu'il contient, suite une erreur de votre part, ou un problme autre, comme une coupure de l'alimentation. Les programmes utiliss lors de l'installation sont trs fiables et sont utiliss depuis des annes, mais ils peuvent raliser des actions destructives, et une erreur dans leur emploi, peut provoquer la perte de donnes importantes. Si vous dcidez de crer un systme multi-boot, assurez-vous de disposer du support de distribution de tous les autres systmes d'exploitation dj prsents. En particulier si vous re-partitionnez le

11

Installation disque dur de dmarrage, car vous pourriez avoir rinstaller le fichier de dmarrage de votre systme d'exploitation, voire dans de nombreux cas, le systme d'exploitation tout entier et tous les fichiers situs sur les partitions concernes.

12

Installation

2. Installation partir du CD
Insrez votre CD d'installation dans le lecteur puis redmarrez l'ordinateur. La procdure d'installation dmarre immdiatement aprs l'insertion du CD. Aprs l'initialisation, votre premier cran apparatra. Arriv cette tape, prenez connaissance du texte prsent l'cran. Vous voudrez peut-tre consulter l'cran d'aide fourni par le systme d'installation. Pour cela, appuyez sur la touche F1. Pour effectuer une installation serveur par dfaut, slectionnez l'option Installer sur le disque puis pressez la touche Entre. La procdure d'installation sera alors lance. Suivez simplement les instructions prsentes l'cran et votre systme Ubuntu sera install. Sinon, pour installer un serveur LAMP (Linux, Apache, MySQL, PHP/Perl/Python), slectionnez installer un serveur LAMP , et suivez les instructions.

13

Chapitre 3. Gestion des paquets


Ubuntu dispose d'un systme complet de gestion de paquets pour l'installation, la configuration et la suppression de programmes. Ce systme permet non seulement d'accder une base de donnes contenant plus de 17 000 paquets logiciels pour votre ordinateur Ubuntu, mais aussi de grer les rsolutions de dpendances ainsi que les vrifications de mises jour. Divers outils pour interagir avec le systme de gestion de paquets d'Ubuntu sont disponibles, allant des utilitaires en simple ligne de commande qui peuvent aisment tre automatiss par les administrateurs systme, jusqu' une interface graphique simple utiliser pour les dbutants sur Ubuntu.

14

Gestion des paquets

1. Introduction
Le systme de gestion des paquets d'Ubuntu est driv du mme systme utilis par la distribution GNU/Linux Debian. Les paquets contiennent tous les fichiers ncessaires, ainsi que les mta-donnes et les instructions permettant d'implmenter une fonctionnalit particulire ou une application logicielle dans votre ordinateur Ubuntu. Les paquets Debian portent gnralement l'extension ".deb", et sont situs dans des dpts qui sont des collections de paquets existants sur divers mdias, tels que les CD-ROM ou Internet. Les paquets sont gnralement au format binaire prcompil, ce qui rend leur installation rapide et ne requiert aucune compilation de logiciel. Un grand nombre de paquets volus utilisent le concept de dpendances. Les dpendances sont des paquets additionnels requis par le paquet principal pour fonctionner correctement. Par exemple, l'application de synthse vocale Festival ncessite festvox-kalpc16k, qui est un paquet fournissant une des voix utilises par le logiciel. Pour que Festival fonctionne, toutes ses dpendances devront tre installes en mme temps que le paquet principal. Les outils de gestion d'applications d'Ubuntu le feront automatiquement.

15

Gestion des paquets

2. Apt-Get
La commande apt-get est un puissant outil en ligne de commande travaillant avec l'Advanced Packaging Tool (APT) d'Ubuntu, offrant des fonctionnalits telles que l'installation de nouveaux logiciels, la mise jour de ceux dj existants, le rafrachissement des index de paquets et mme la mise niveau complte de votre systme Ubuntu. tant un simple outil en ligne de commande, apt-get a de nombreux avantages par rapport aux autres outils de gestion de paquets disponibles dans Ubuntu pour les administrateurs de serveurs. Ces avantages comprennent la facilit d'utilisation travers de simples connections terminal (SSH) et la possibilit d'tre utilis dans des scripts d'administration systme, qui peuvent leur tour tre automatiss par l'utilitaire de planification cron. Quelques exemples d'utilisation habituelle de l'utilitaire apt-get : Installation d'un paquet : L'installation de paquets en utilisant l'outil apt-get est relativement simple. Par exemple, pour installer le scanner rseau nmap, entrez la commande suivante :

sudo apt-get install nmap

Suppression d'un paquet : la suppression d'un paquet ou de paquets est galement un processus simple et direct. Pour supprimer le paquet nmap install dans l'exemple prcdent, entrez la commande suivante :

sudo apt-get remove nmap

Paquets multiples : vous pouvez spcifier plusieurs paquets installer ou supprimer en les sparant par des espaces. Mettre jour l'index des paquets : l'index des paquets de APT est principalement une base de donnes des paquets disponibles dans les dpts lists dans le fichier /etc/apt/sources.list. Pour synchroniser l'index local avec les derniers changements effectus sur les dpts, tapez cette ligne de commande :

sudo apt-get update

Mettre jour les paquets : au cours du temps, des versions mises jour des paquets installs sur votre ordinateur peuvent tre mises en ligne dans les dpts (des mises jour de scurit par exemple). Pour mettre jour votre systme, mettez d'abord jour l'index des paquet comme expliqu ci-dessus, puis tapez :

sudo apt-get upgrade

Si un paquet a besoin d'installer ou de supprimer de nouvelles dpendances lorsqu'il est mis jour, il ne sera pas mis jour par la commande upgrade. Pour une mise jour de ce type, il est ncessaire d'utiliser la commande dist-upgrade. 16

Gestion des paquets Vous pouvez galement entirement mettre niveau votre systme Ubuntu d'une version majeure une autre en utilisant dist-upgrade. Par exemple, pour mettre niveau Ubuntu de la version 5.10 la version 6.10, vous devez d'abord vous assurer de remplacer les dpts existants 5.10 par ceux de 6.10 dans le fichier /etc/apt/sources.list, puis excuter apt-get update comme dtaill ci-dessus, et enfin faire la mise jour du systme en tapant :
# sudo apt-get dist-upgrade#

Au bout d'un temps assez considrable, votre ordinateur sera mis niveau vers la nouvelle version. En gnral, quelques tapes supplmentaires sont ncessaires et sont expliques dans les notes de rvision de la version vers laquelle vous avez fait la mise niveau. Les actions de la commande apt-get, tel que l'ajout ou la suppression de paquets, sont inscrites dans le fichier /var/log/dpkg.log. Pour plus d'informations sur l'utilisation d'APT, lisez le Manuel d'utilisation APT Debian [http://www.debian.org/doc/user-manuals#apt-howto], trs complet, ou tapez :
apt-get help

17

Gestion des paquets

3. Aptitude
Aptitude est une application en mode texte mais avec des menus, et servant d'interface Advanced Packaging Tool (APT). Beaucoup des fonctions communes de gestion des paquets, comme l'installation, la dsinstallation, et la mise jour, sont effectues dans Aptitude avec des commandes utilisant une seule touche, qui sont gnralement des lettres minuscules. Il est prfrable d'utiliser Aptitude dans un terminal non graphique pour s'assurer un bon fonctionnement des touches de commandes. Vous pouvez dmarrer Aptitude en tant qu'utilisateur normal avec la commande suivante dans un terminal:

sudo aptitude

Au dmarrage d'Aptitude, vous verrez une barre de menu en haut de l'cran et deux panneaux sous cette barre. Le panneau du haut contient les catgories des paquets, telles que Nouveaux Paquets et Paquets Non Installs. Le panneau du bas contient les informations relatives aux paquets et catgories de paquets. Utiliser Aptitude pour la maintenance des paquets est relativement direct, et l'interface utilisateur simplifie les tches courantes. Les exemples suivants sont des oprations de maintenance habituelles des paquets, effectues la manire d'Aptitude : Installer des paquets: pour installer un paquet, localisez-le avec la catgories "Paquets non installs", par exemple, en utilisant les touches flches du clavier et en appuyant sur Entre, puis slectionnez le paquet que vous voulez installer. Appuyez ensuite sur la touche +, et la couleur du paquet deviendra verte, indiquant qu'il est slectionn pour tre install. Appuyez maintenant sur la touche g pour avoir un liste des actions possibles. Appuyez nouveau sur g, et on vous demandera de devenir super-utilisateur pour continuer. Appuyez sur Entre pour avoir une invite et tapez le mot de passe pour vous identifier en tant que super-utilisateur. Enfin, appuyez sur g une fois de plus et il vous sera demand de tlcharger le paquet. Appuyez sur Entre l'invite Continuer pour que le tlchargement et l'installation commencent. Dsinstaller des paquets : pour dsinstaller un paquet, localisez le avec la catgories "Paquets installs", par exemple, en utilisant les touches flches du clavier et en appuyant sur Entre, puis slectionnez le paquet que vous voulez dsinstaller. Appuyez ensuite sur la touche -, et la couleur du paquet deviendra rose, indiquant qu'il est slectionn pour tre dsinstall. Appuyez maintenant sur la touche g pour avoir un liste des actions possibles. Appuyez nouveau sur g, et on vous demandera de devenir super-utilisateur pour continuer. Appuyez sur Entre pour avoir une invite et tapez le mot de passe pour vous identifier en tant que super-utilisateur. Appuyez sur Entre l'invite Continuer pour que la dsinstallation commence. Mettre jour l'index des paquets : pour mettre jour l'index des paquets, appuyez sur la touche u, on vous demandera alors de devenir super-utilisateur pour continuer. Appuyez sur Entre pour avoir une invite et tapez le mot de passe pour vous identifier en tant que super-utilisateur. La mise jour de l'index va commencer. Appuyez sur keycap>Entre 18

Gestion des paquets Mettre jour des paquets : pour mettre jour des paquets, suivez la procdure ci-dessus pour mettre jour l'index, puis appuyez sur la touche U pour marquer tous les paquets que vous pouvez mettre jour. Appuyez maintenant sur la touche g pour avoir un liste des actions possibles. Appuyez nouveau sur g, on vous demandera alors de devenir super-utilisateur pour continuer. Appuyez sur Entre pour avoir une invite et tapez le mot de passe pour vous identifier en tant que super-utilisateur. Enfin, appuyez sur g une fois de plus et il vous sera demand de tlcharger le paquet. Appuyez sur Entre l'invite Continuer pour que le tlchargement et la mise jour des paquets commencent. La premire colonne d'information affiche dans la liste des paquets du panneau du haut, lorsqu'on examine rellement des paquets, liste l'tat actuel du paquet et utilise la syntaxe suivante pour dcrire l'tat du paquet: i : paquet install. c : le paquet n'est plus install, mais sa configuration est conserve sur le systme p : purg du systme v : paquet virtuel B : paquet cass u : fichiers dcompresss, mais paquet pas encore configur C : partiellement configur, la configuration a choue et ncessite une correction H: partiellement install, la suppression a chou et ncessite une correction Pour quitter Aptitude, appuyez simplement sur la touche q et confirmez que vous dsirez fermer le logiciel. Beaucoup d'autres fonctions sont disponibles partir du menu d'Aptitude, en appuyant sur la touche F10.

19

Gestion des paquets

4. Configuration
La liste des dpts utilise par Advanced Packaging Tool (APT) est enregistre dans le fichier de configuration /etc/apt/sources.list. Un exemple de ce fichier est prsent ici, de mme que les informations pour ajouter ou supprimer des liens vers des dpts dans ce fichier. Ceci [../sample/sources.list] est un exemple simple d'un fichier /etc/apt/sources.list typique. Vous pouvez diter le fichier pour activer ou dsactiver certains dpts. Par exemple, pour dsactiver la ncessit d'insrer le CD-ROM Ubuntu chaque fois que vous faites une opration sur les paquets, mettez simplement en commentaire la ligne approprie qui se trouve au dbut du fichier :

# no more prompting for CD-ROM please # deb cdrom:[Ubuntu 6.06 _Dapper Drake_ - Release i386 (20060329.1)]/ dapper main restricted

20

Gestion des paquets

5. Dpts supplmentaires
En plus des dpts officiellement supports par Ubuntu, il en existe d'autres maintenus par la communaut et qui offrent un grand nombre de paquets supplmentaires. Deux de ces dpts les plus populaires sont Universe et Multiverse. Bien qu'ils ne soient pas officiellement supports par Ubuntu, ce pourquoi ils ne sont pas activs par dfaut, ils proposent gnralement des paquets srs et ne prsentant aucun risque pour votre ordinateur. Les paquets situs dans le dpt Multiverse ont souvent des licences particulires qui les empchent d'tre distribus avec un systme d'exploitation libre, et ils peuvent tre illgaux dans votre pays. Soyez attentifs au fait que ni le dpt Universe ni le dpt Multiverse ne contiennent des paquets officiellement supports. Il peut donc ne pas y avoir de mises jour de scurit pour ces paquets. De nombreuses autres sources de paquets sont disponibles, et ne proposent parfois qu'un seul paquet, c'est le cas des sources proposs par les dveloppeurs d'une application unique. Vous devriez cependant toujours faire trs attention quand vous utilisez des sources exotiques. Recherchez des sources et des paquets avec prudence avant d'effectuer une installation. Certains paquets provenant de sources non fiables peuvent rendre votre systme instable ou inutilisable certains gards. Pour activer les dpts Universe et Multiverse, ditez le fichier /etc/apt/sources.list et supprimez les commentaires des lignes appropries :

# Nous dsirons les dpts Multiverse et Universe deb http://archive.ubuntu.com/ubuntu dapper universe multiverse deb-src http://archive.ubuntu.com/ubuntu dapper universe multiverse

5.1. Rfrences
Mthode pour ajouter des Dpts (Wiki Ubuntu) [https://wiki.ubuntu.com/AddingRepositoriesHowto]

21

Chapitre 4. Rseau
Les rseaux sont forms de deux ou plusieurs priphriques comme des ordinateurs, des imprimantes, relis entre eux par un lien physique ou sans fil dans le but de partager des informations et des ressources ensemble. Cette partie du Guide du serveur Ubuntu fournit des informations gnrales et spcifiques concernant les rseaux, y compris un aperu des concepts rseau et des informations dtailles sur les principaux protocoles rseau et applications serveurs.

22

Rseau

1. Configuration du rseau
Ubuntu est fourni avec de nombreux utilitaires graphiques pour la configuration des priphriques rseau. Ce document s'adresse aux administrateurs de serveurs et se focalisera sur la gestion de votre rseau en ligne de commande.

1.1. Ethernet
La plus grande partie de la configuration ethernet est dans un seul fichier : /etc/network/interfaces. Si vous n'avez pas de priphrique ethernet, seule l'interface de boucle locale sera dans ce fichier, qui ressemblera ceci :
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0

Si vous n'avez qu'un priphrique, eth0 obtenant sa configuration depuis un serveur DHCP et devant tre activ au dmarrage, seulement deux lignes supplmentaires sont ncessaires :
auto eth0 iface eth0 inet dhcp

La premire ligne prcise que le priphrique doit tre automatiquement activ au dmarrage. La deuxime ligne prcise que cette interface ( iface ) eth0 doit avoir un adressage IPv4 (remplacer inet par inet6 pour un priphrique IPv6), et doit tre configure automatiquement par DHCP. En supposant que votre rseau et votre serveur DHCP sont correctement configurs, le rseau devrait tre oprationnel sans autre paramtrage. Le serveur DHCP fournira la passerelle par dfaut (via la commande route), l'adresse IP du priphrique (via la commande ifconfig), et les serveurs DNS utiliss sur le rseau (dans le fichier /etc/resolv.conf). Pour configurer votre priphrique ethernet avec une adresse IP statique et des paramtres personnaliss, d'autres informations seront ncessaires. Supposez que vous voulez assigner l'adresse 192.168.0.2 au priphrique eth1, avec classiquement un masque 255.255.255.0, et que l'adresse de la passerelle par dfaut est 192.168.0.1. Le fichier /etc/network/interfaces ressemblera ceci :
iface eth1 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1

Dans ce cas vous devez prciser les serveurs DNS vous mme dans /etc/resolv.conf, qui ressemblera a :
search mydomain.com

23

Rseau
nameserver 192.168.0.1 nameserver 4.2.2.2

La directive search ajoutera mydomain.com aux requtes de nom d'hte dans le but de rsoudre les noms dans votre rseau. Par exemple, si le domaine de votre rseau est mydomain.com et que vous tentez de pinger l'hte mybox , la requte DNS sera modifie pour chercher mybox.mydomain.com . La directive nameserver prcise les serveurs qui seront utiliss pour la rsolution de noms. Si vous utilisez votre propre serveur, entrez-le ici. Sinon demandez votre fournisseur d'accs les adresses des serveurs DNS primaires et secondaires et entrez-les dans /etc/resolv.conf comme expliqu ci-dessus. De nombreuses autres configurations sont possibles, y compris pour les interfaces de modem PPP, les rseaux IPv6, des VPN, etc. Lisez man 5 interfaces pour plus d'informations et les options supportes. Souvenez-vous que /etc/network/interfaces est utilis par les scripts ifup/ifdown un niveau plus haut que dans beaucoup d'autres distribution Linux, et que les utilitaires de bas niveau comme ifconfig, route, et dhclient sont toujours disponibles pour configurer votre rseau comme vous le souhaitez.

1.2. Grer les entres DNS


Cette section explique comment configurer le serveur de noms utiliser dans le cas d'une rsolution d'adresse IP en nom d'hte et vice-versa. Elle ne concerne pas la configuration du systme en tant que serveur de noms. Pour grer les entres DNS, vous pouvez ajouter, modifier, ou enlever les noms des DNS du fichier /etc/resolv.conf. Un fichier d'exemple [../sample/resolv.conf] est donn ci-dessous :

search com nameserver 204.11.126.131 nameserver 64.125.134.133 nameserver 64.125.134.132 nameserver 208.185.179.218

L'entre search spcifie la chane de caractres qui sera ajoute un nom d'hte incomplet. Ici, nous avons choisi com. Donc quand vous excuterez ping ubuntu, a sera interprt comme ping ubuntu.com. L'entrenameserver prcise l'adresse IP du serveur de noms. Elle sera utilise pour rsoudre l'adresse IP ou le nom d'hte donn. Ce fichier peut avoir plusieurs entres de serveurs de nom. Ils seront utiliss par les requtes dans l'ordre o ils sont crits dans le fichier. Si les serveurs DNS sont rcuprs automatiquement par DHCP ou PPOE (depuis votre fournisseur d'accs), n'ajoutez rien ce fichier. Il sera mis jour automatiquement. Les modifications que vous effectuez dans /etc/resolv.conf seront supprimes au redmarrage de la machine. Si vous dsirez que ces modifications deviennent permanentes, 24

Rseau il vous faudra installer le paquet resolvconf et mettre jour les informations DNS du fichier /etc/resolvconf/resolv.conf.d/base fourni avec ce paquet.

1.3. Grer les htes


Pour grer les htes, vous pouvez ajouter, diter ou retirer des htes du fichier /etc/hosts. Ce fichier contient les adresses IP et leur nom d'hte correspondant. Quand votre systme essaye de rsoudre un nom d'hte vers une IP ou une IP vers un nom d'hte, il regarde d'abord dans le fichier /etc/hosts avant de faire appel aux serveurs DNS. Si l'adresse IP est liste dans /etc/hosts, les serveurs DNS ne seront pas utiliss. Ce comportement peut tre modifi en ditant /etc/nsswitch.conf vos risques et prils. Si votre rseau contient des ordinateurs dont les adresses IP ne sont pas listes par les DNS, il est recommand de les ajouter dans le fichier /etc/hosts.

25

Rseau

2. TCP/IP
Transmission Control Protocol et Internet Protocol (TCP/IP) sont les protocoles standards dvelopps la fin des annes 1970 par la Defense Advanced Research Projects Agency (DARPA) pour servir de moyen de communication entre les diffrents types d'ordinateurs et de rseaux. TCP/IP est le moteur d'Internet, et est donc l'ensemble de protocoles le plus populaire au monde.

2.1. Introduction TCP/IP


Les deux protocoles de TCP/IP traitent diffrentes parties des rseau. Internet Protocol, le "IP" de TCP/IP, est un protocole non-connect qui ne traite que le routage de paquets en utilisant le datagramme IP comme unit de base de l'information passant sur le rseau. Un datagramme IP consiste en un en-tte suivi d'un message. Le Transmission Control Protocol est le "TCP" of TCP/IP. Il permet aux htes d'tablir des connexions qui serviront changer des flux de donnes. TCP assure que les donnes arriveront destination dans le mme ordre que lorsqu'elles ont t envoyes.

2.2. Configuration TCP/IP


La configuration du protocole TCP/IP consiste en plusieurs lments qui doivent tre paramtrs en ditant les fichiers de configuration adapts, ou en dployant des solutions telles qu'un serveur Dynamic Host Configuration Protocol (DHCP). Ce dernier pourra fournir automatiquement la bonne configuration IP aux clients. Ces donnes de configuration doivent tre dfinies correctement pour assurer un bon fonctionnement du rseau avec Ubuntu. Les paramtres courants de configuration TCP/IP et leurs objectifs sont les suivants: adresse IP L'adresse IP est un identifiant unique compos de 4 nombres entre 0 et 255 spars par des point. Chaque nombre reprsente 8 bits d'une adresse qui fait au total 32 bits. Ce format est appel notation dcimale pointe. Masque de sous-rseau Le masque de sous-rseau est un masque de bits, ou ensemble de marqueurs, qui sparent les parties de l'adresse IP correspondantes au rseau, et celles qui correspondent au sous-rseau. Par exemple dans un rseau de classe C, le masque standard qui est 255.255.255.0 cache les 3 premiers octets de l'adresse et permet d'utiliser le dernier octet pour adresser les htes du sous-rseau. Adresse du rseau L'adresse du rseau reprsente les octets qui forment la partie rseau de l'adresse IP. par exemple, l'hte 12.128.1.2 dans un rseau de classe A utilisera 12.0.0.0 comme adresse du rseau. La valeur 12 du premier octet est utilise pour reprsenter le rseau, et les 0 des 3 octets suivants reprsentent toutes les valeurs possibles pour les htes. Les htes qui utilisent les adresses prives non routables telles que 192.168.1.100 utiliseront 192.168.1.0 comme adresse du rseau. Elle est constitue des 3 premiers octets de l'adresse de classe C 19.168.1 et d'un 0 pour la partie htes. Adresse de diffusion L'adresse de diffusion est une adresse IP qui permet d'envoyer des donnes simultanment tous les htes d'un sous-rseau au lieu d'un hte particulier. L'adresse standard de diffusion des rseaux IP est 255.255.255.255, mais cette adresse ne peut pas envoyer de message 26

Rseau tous les htes d'Internet car les routeurs la bloquent. Une adresse mieux approprie sera adapte un sous-rseau spcifique. Par exemple, dans un rseau de classe C, 192.168.1.0, l'adresse de diffusion sera 192.168.1.255. Les messages diffuss sont gnralement envoys par les protocoles comme Address Resolution Protocol (ARP) et Routing Information Protocol (RIP). Adresse de la passerelle Une adresse de passerelle est l'adresse IP travers laquelle un rseau ou un hte d'un autre rseau peuvent tre atteints. Si un hte veut communiquer avec un hte d'un autre rseau, alors il doit utiliser la passerelle. En gnral cette passerelle sera le routeur du rseau, qui transmettra les donnes aux rseaux ou htes extrieurs n'appartenant au rseau priv, sur Internet par exemple. L'adresse de la passerelle doit tre dfinie, sans quoi votre systme sera incapable de communiquer avec des htes extrieurs votre rseau. Adresse DNS L'adresse DNS reprsente l'adresse IP des systmes Domain Name Service (DNS, ou serveurs de nom), qui traduisent les noms d'hte en adresses IP. Il y a 3 niveaux d'adresses DNS, du plus important au moins important : les serveurs de nom primaires ; les secondaires ; et les tertiaires. Pour que votre systme puisse rsoudre des noms d'hte en adresses IP, vous devez spcifier une adresse DNS valide dans votre configuration TCP/IP. Dans la plupart des cas, ces adresses seront fournies par votre fournisseur d'accs Internet, mais de nombreux serveurs DNS sont disponibles, comme les serveurs Level3 de Verizon, dont les adresses vont de 4.2.2.1 4.2.2.6. Les adresses IP, masques, adresses de rseau, adresses de diffusion et adresses de passerelle sont gnralement spcifis par la directive approprie dans le fichier /etc/network/interfaces. L'adresse de serveur de nom est spcifie par la directive nameserver dans le fichier /etc/resolv.conf. Pour plus d'informations, lisez la page de manuel pour interfaces ou resolv.conf respectivement, avec les commande suivantes dans une console : Accdez au manuel du fichier interfaces avec la commande suivante :

man interfaces

Accdez au manuel du fichier resolv.conf avec la commande suivante : Accdez au manuel du fichier resolv.conf avec la commande suivante :
man resolv.conf

2.3. Routage IP
Le routage IP est un moyen de choisir des chemins travers diffrents rseaux pour envoyer les donnes dans un rseau TCP/IP. Le routage utilise des tables de routage pour diriger les paquets de la source vers la destination, souvent en passant travers plusieurs nuds intermdiaires appels routeurs. Le routage IP est le mode de choix de chemins le plus utilis sur internet. Il existe 2 modes de routage IP : le routage statique et la routage dynamique. Le routage statique implique l'ajout manuel de rgle de routage IP la table de routage du systme et gnralement cela se fait en manipulant la table de routage avec la commande route. Le routage

27

Rseau statique bnficie de plusieurs avantages par rapport au routage dynamique, comme la simplicit de son implantation dans des petits rseaux, la prvisibilit (la table de routage est toujours calcule l'avance et donc, la route est toujours la mme chaque fois qu'elle est utilise), et la faible charge sur les autres routeurs et les liaisons rseaux du fait de l'absence de routage dynamique. Cependant, le routage statique prsente galement quelques dsavantages. Par exemple, le routage statique est limit aux petits rseaux et n'est pas trs extensible. Le routage statique n'arrive absolument pas s'adapter aux pannes et aux erreurs du rseau rencontrs le long de la route, du fait mme de sa nature fixe. Le routage dynamique dpend de larges rseaux o de multiples routes sont possibles entre la source et la destination. Il utilise des protocoles spcialiss comme Router Information Protocol (RIP), qui prend en charge l'adaptation des tables de routage qui rend le routage dynamique possible. Le routage dynamique a de nombreux avantages sur le routage statique, comme une plus grande adaptabilit la taille des rseaux et la possibilit de faire face aux pannes et surcharges du rseau. De plus il ncessite moins de configuration manuelle des tables de routage puisque les routeurs apprennent les uns des autres les routes disponibles. Cela empche galement de faire des erreurs humaines dans les tables de routage. Le routage dynamique a cependant des inconvnients comme une plus grande complexit, ainsi qu'une utilisation plus intensive du rseau cause de la communication entre routeurs, qui ne bnficie pas directement l'utilisateur, mais utilise quand me la bande passante.

2.4. TCP et UDP


TCP est un protocole dit "connect", qui permet la correction d'erreurs, et garantit que les donnes arriveront destination grce un contrle de transmission. Le contrle de transmission dtermine quand le flux de donnes doit tre stopp, et les paquets prcdents devraient tre r-envoys cause de problmes comme des collisions par exemple, pour assurer un transport fiable des donnes. TCP est gnralement utilis dans l'change de donnes importantes comme les transactions de bases de donnes par exemple. User Datagram Protocol (UDP), l'inverse, est un protocole dit "non-connect" qui est peu utilis pour l'change de donnes importantes puisqu'il ne gre pas le contrle de transmission ou d'autres mthodes pour fiabiliser le transport des donnes. UDP est souvent utilis dans des applications de diffusion audio ou vido car il est plus rapide que TCP grce l'absence de correction d'erreur et de contrle de transmission, mais aussi car la perte de quelques paquets n'est gnralement pas importante pour ces applications.

2.5. ICMP
Internet Control Messaging Protocol (ICMP) est une extension de Internet Protocol (IP) dfini dans la Request For Comments (RFC) #792 et qui supporte les paquets rseau contenant des messages de contrle, d'erreur, et d'informations. ICMP est utilis par des application comme ping, qui peut dterminer si un hte ou un priphrique est en ligne ou non. Destination Unreachable et Time Exceeded sont des exemples de messages retourns par ICMP et qui sont utiles pour des htes comme pour des routeurs par exemple. 28

Rseau

2.6. Services
Les dmons sont des applications particulires qui s'excutent gnralement en permanence en tche de fond, et qui attendent des requtes venant d'autres applications pour les fonctions qu'ils exercent. De nombreux dmons sont lis au rseau, et donc beaucoup de dmons dans un systme Ubuntu offrent des fonctionnalits pour les rseaux. Les services possibles sont par exemple Hyper Text Transport Protocol Daemon (httpd), qui propose des fonctions de serveur web, Secure SHell Daemon (sshd), qui permet un accs distant scuris au systme et le transfert de fichiers scuris, ou Internet Message Access Protocol Daemon (imapd), qui offre des services de messagerie lectronique.

29

Rseau

3. Configuration du pare-feu
Le noyau Linux intgre le sous-systme Netfilter, qui est utilis pour manipuler ou dcider du destin du trafic rseau arrivant, sortant ou passant par votre serveur. Tous les pare-feu modernes pour Linux utilisent ce systme pour le filtrage des paquets.

3.1. Introduction au pare-feu


Le systme du noyau de filtrage de paquets serait bien peu utile aux administrateurs sans une interface utilisateur pour le grer. C'est le but d'iptables. Quand un paquet atteint votre serveur, Netfilter dcidera si il sera accept, manipul, ou rejet en suivant les rgles fournies grce iptables. Si vous le matrisez, iptables suffit donc grer votre pare-feu, mais de nombreuses interfaces existent pour vous simplifier la tche.

3.2. Translation d'IP


Le but du masquage IP (forme de translation d'adresses) est de permettre des machines d'un rseau dot d'adresses IP prives non routables d'accder Internet en passant par une autre machine effectuant la translation. Le trafic sortant du rseau priv pour aller vers Internet doit tre manipul pour que les rponses puissent tre achemines vers la machine qui a fait la requte correspondante. Pour cela, le noyau doit modifier l'adresse IP source de chaque paquet pour que les rponses lui soient renvoyes lui plutt qu' l'adresse prive qui a fait la requte, ce qui est impossible sur Internet. Linux utilise Connection Tracking (conntrack) pour savoir chaque instant quelle connexion appartient quelle machine, et rerouter ensuite les paquets vers la bonne machine. Le trafic sortant du rseau priv apparat donc masqu , comme s'il provenait de la passerelle Ubuntu. Ce procd est appel Partage de connexion Internet dans la documentation de Microsoft. Cela peut tre effectu l'aide d'une simple rgle iptables, qui pourra ventuellement changer suivant la configuration de votre rseau :
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE

La commande ci-dessus considre que votre adresse de rseau priv est 192.168.0.0/16 et que votre interface relie Internet est ppp0. La syntaxe est construite comme ceci : -t nat -- la rgle ira dans la table NAT -A POSTROUTING -- la rgle sera ajoute (-A) la chane POSTROUTING -s 192.168.0.0/16 -- la rgle s'applique au trafic provenant de plage d'adresse spcifie -o ppp0 -- la rgle s'applique au trafic devant tre rout travers l'interface rseau spcifie -j MASQUERADE -- le trafic correspondant cette rgle sautera vers la cible MASQUERADE pour tre manipul comme dcrit ci-dessus Chaque chane dans la table des filtres (la table par dfaut, o la quasi-totalit des filtrages de paquets se passent) a une politique par dfaut d'acceptation (ACCEPT). Mais si vous voulez crer un pare-feu en plus d'une passerelle, vous pouvez alors changer cette politique en une politique 30

Rseau d'abandon (DROP) ou de rejet (REJECT). Dans ce cas, le trafic masqu doit tre autoris par la chane FORWARD pour que la rgle ci-dessus fonctionne :
sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT sudo iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT

Les commandes ci-dessus vont autoriser toutes les connexions du rseau local vers Internet, ainsi que tout le trafic en rponse ces connexions jusqu' la machine relle qui a initi le trafic.

3.3. Outils
Il y a de nombreux outils disponibles pour aider construire un pare-feu complet sans connaissance approfondie d'iptables. Pour les outils possdant une interface graphique, Firestarter est assez connu et facile d'accs ; fwbuilder est trs puissant et l'administration semblera familire ceux qui ont dj utilis un pare-feu commercial comme Checkpoint FireWall-1. Si vous prfrez un outil en ligne de commande avec des fichiers de configuration en texte pur, Shorewall est une puissante solution pour vous aider configurer un pare-feu avanc quel que soit votre rseau. Si ce dernier est relativement simple ou si vous n'avez pas de rseau, ipkungfu devrait vous donner un pare-feu prt l'emploi sans aucune configuration effectuer. Il permet tout de mme d'tre transform en pare-feu plus perfectionn grce des fichiers de configuration simples et trs bien documents. fireflier est un autre outil intressant, conu pour tre un pare-feu de bureau. Celui-ci consiste en un serveur (fireflier-server) et une interface au choix (GTK or QT). Son comportement est similaire la plupart des pare-feu bien connus pour Windows.

3.4. Journaux
Les fichiers de journalisation d'un pare-feu sont essentiels pour reconnatre les attaques, les problmes dans vos rgles de filtrage, et ils vous permettent de dceler les activits inhabituelles sur un rseau. Vous devez cependant inclure des rgles de journalisation dans votre pare-feu pour qu'ils soient gnrs. Ces rgles doivent se placer avant toute rgle de filtrage de terminaison (une rgle avec une cible qui dcide si un paquet doit tre transmis ou non, comme ACCEPT, DROP ou REJECT). Par exemple:
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

Une requte sur le port 80 d'une machine locale va alors gnrer une journalisation dans dmesg qui ressemble a :

[4304885.870000] NEW_HTTP_CONN: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0

Cette journalisation apparatra galement dans les fichiers /var/log/messages, /var/log/syslog et /var/log/kern.log. Ce comportement peut tre modifi en ditant le fichier /etc/syslog.conf d'une faon approprie, ou en installant et configurant ulogd et en utilisant la cible ULOG au lieu de LOG. Le service ulogd est un dmon qui audite les instructions de journalisation du noyau spcifiques au pare-feu et peut les enregistrer dans n'importe quel fichier ou mme vers une base de donnes PostgreSQL ou MySQL. Vous pouvez simplifier et rendre comprhensibles vos fichiers de 31

Rseau journalisation du pare-feu en utilisant un analyseur de journalisation comme fwanalog, fwlogwatch ou encore lire.

32

Rseau

4. Serveur OpenSSH
4.1. Introduction
Cette section du Server Guide Ubuntu prsente un puissant jeu d'utilitaires pour le contrle distance d'ordinateurs et pour le transfert de donnes entre ordinateurs en rseau, nomm OpenSSH. Vous apprendrez galement plusieurs des diffrentes configurations possibles de l'application serveur OpenSSH et comment les modifier sur votre systme Ubuntu. OpenSSH est une version libre du protocole Secure Shell (SSH), c'est une collection d'outils pour le contrle d'ordinateurs distance, ou le transfert de fichiers entre ordinateurs. Les outils traditionnels pour effectuer ces tches, comme telnet ou rcp, ne sont pas scuriss et font transiter le mot de passe de l'utilisateur en clair. OpenSSH fournit un serveur et des outils clients pour faciliter le contrle distance et le transfert de fichiers de faon scurise grce au chiffrement des donnes, et donc remplace efficacement les anciens outils. Le serveur OpenSSH, sshd, attend en permanence des connexions depuis des clients. Quand une requte de connexion a lieu, sshd tablit la connexion correcte en fonction du type de client. Par exemple, si un client se connecte avec le client ssh, le serveur OpenSSH va tablir une connexion scurise aprs une authentification. Si un client se connecte avec scp, le serveur OpenSSH va commencer un transfert de fichier scuris entre le serveur et le client aprs une authentification. OpenSSH peut utiliser de nombreuses mthodes d'authentification, par exemple un mot de passe, une cl publique, ou un ticket Kerberos.

4.2. Installation
L'installation des applications client et serveur d'OpenSSH est simple. Pour installer les applications clientes d'OpenSSH sur votre systme Ubuntu, tapez cette commande dans un terminal :

sudo apt-get install openssh-client

Pour installer le serveur OpenSSH et les fichiers ncessaires, utilisez cette commande dans un terminal :

sudo apt-get install openssh-server

4.3. Configuration
Vous pouvez configurer le comportement par dfaut du serveur OpenSSH, sshd, en ditant le fichier /etc/ssh/sshd_config. Pour des informations sur les options de configuration utilises dans ce fichier, veuillez lire le manuel appropri en tapant la commande suivante dans un terminal :

33

Rseau
man sshd_config

Il y a de nombreuses options dans le fichier de configuration de sshd qui contrlent par exemple les paramtres de communication et les modes d'authentification. Des exemples d'options pouvant tre dites dans le fichier /etc/ssh/ssh_config sont prsents par la suite. Avant d'diter le fichier de configuration, vous devriez faire une copie du fichier original et le protger en criture de faon conserver les paramtres d'origine en rfrence et pouvoir les rutiliser en cas de besoin. Copiez le fichier /etc/ssh/sshd_config et protgez le en criture en tapant la commande suivante dans un terminal :

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original sudo chmod a-w /etc/ssh/sshd_config.original

Voici des exemples de directives de configuration que vous pourriez changer : Pour que OpenSSH coute sur le port 2222 au lieu du port par dfaut 22, changez l'option Port comme ceci : Port 2222 Pour que sshd accepte les informations de connexion bases sur une clef publique, il suffit d'ajouter ou de modifier la ligne : PubkeyAuthentication yes dans le fichier /etc/ssh/sshd_config, ou si elle existe dj, assurez-vous que la ligne correspondante ne soit pas commente. Pour que le serveur OpenSSH affiche le contenu du fichier /etc/issue.net comme une invite avant l'affichage de l'cran de connexion, il suffit d'ajouter ou de modifier la ligne : Banner /etc/issue.net dans le fichier /etc/ssh/sshd_config. Aprs avoir modifi le fichier /etc/ssh/sshd_config, enregistrez-le et redmarrez le service sshd afin de prendre en compte les changements. Pour cela, saisissez la commande suivante dans un terminal :

sudo /etc/init.d/ssh restart

Beaucoup d'autres directives de configuration pour sshd sont disponibles pour adapter son comportement vos besoins. Soyez conscient nanmoins que si votre unique possibilit d'accs au serveur est ssh et que vous commettiez une erreur de configuration pour le service sshd dans le fichier /etc/ssh/sshd_config, il se pourrait que vous vous bloquiez l'accs au 34

Rseau serveur jusqu' son redmarrage, ou que le service sshd refuse de redmarrer cause d'une directive incorrecte de configuration. Par consquent, soyez extrmement prudent lorsque vous ditez ce fichier sur un serveur distant.

4.4. Rfrences
Site Internet de OpenSSH [http://www.openssh.org/] Page de wiki OpenSSH avanc [https://wiki.ubuntu.com/AdvancedOpenSSH]

35

Rseau

5. Serveur FTP
Le protocole de transfert de fichiers (FTP) est un protocole TCP pour tlcharger et tlverser des fichiers entre ordinateurs. FTP fonctionne sur un modle client/serveur. Le composant serveur est appel dmon FTP. Il coute en permanence les requtes FTP des clients distants. Lorsqu'il reoit une requte, il prend en charge l'identification et tablit la connexion. Pendant la dure de la session il xcute toute commande envoye par le client FTP. L'accs un serveur FTP peut tre pris en charge de deux faons : Anonyme Authentifi En mode anonyme, les clients distants peuvent accder au serveur FTP en utilisant le compte par dfaut appel anonymous ou ftp avec leur adresse de courriel comme mot de passe. En mode authentifi, un utilisateur doit disposer d'un compte et d'un mot de passe. L'accs aux divers rpertoires et fichiers du serveur FTP dpend alors des permissions dfinies pour le compte utilis pour la connexion. En rgle gnrale, le service FTP masque le rpertoire racine du serveur FTP et place l'utilisateur dans le rpertoire d'accueil FTP. Cela permet de restreindre l'accs une partie du systme de fichiers lors de sessions distantes.

5.1. vsftpd - Installation du serveur FTP


vsftpd est un dmon FTP disponible dans Ubuntu. Son installation, sa configuration et sa maintenance sont faciles. Pour installer vsftpd vous pouvez lancer la commande suivante dans un terminal :
sudo apt-get install vsftpd

5.2. vsftpd - Configuration du serveur FTP


Vous pouvez diter le fichier de configuration de vsftpd, /etc/vsftpd.conf, pour changer la configuration par dfaut. Par dfaut, seul le mode FTP anonyme est autoris. Si vous voulez dsactiver cette option, vous devez modifier la ligne suivante :
anonymous_enable=YES

par
anonymous_enable=NO

Par dfaut, les utilisateurs systme locaux ne sont pas autoriss se connecter au serveur FTP. Pour changer cela, vous pouvez dcommenter la ligne suivante :
#local_enable=YES

Par dfaut, les utilisateurs sont autoriss tlcharger des fichiers du serveur FTP. Ils ne peuvent cependant pas en envoyer. Pour modifier ceci, vous devez dcommenter la ligne suivante : 36

Rseau

#write_enable=YES

De manire similaire, par dfaut, les utilisateurs anonymes n'ont pas le droit d'envoyer des fichiers vers le serveur FTP. Pour changer cela, vous pouvez dcommenter la ligne suivante :

#anon_upload_enable=YES

Le fichier de configuration contient un grand nombre d'options paramtrables. Une information propos de chaque paramtre est disponible dans le fichier de configuration. Vous pouvez aussi vous rfrer aux pages de manuel, man 5 vsftpd.conf, pour obtenir le dtail de chaque paramtre. Une fois vsftpd configur, vous pouvez dmarrer le dmon. La commande suivante permet de dmarrer le dmon vsftpd :
sudo /etc/init.d/vsftpd start

Veuillez noter que les rglages par dfaut du fichier de configuration sont tels qu'ils sont pour des raisons de scurit. Chacun des changements cits ci-dessus diminue la scurit du systme, par consquent ne les appliquez qu'en cas de ncessit.

37

Rseau

6. Network File System (NFS)


NFS permet un systme de partager des rpertoires et des fichiers travers un rseau. En utilisant NFS, utilisateurs et programmes peuvent accder aux fichiers de systmes distants comme s'ils taient des fichiers locaux. Parmi les avantages les plus remarquables de NFS, on peut mentionner : Les stations de travail locales utilisent moins d'espace disque parce que les donnes frquemment utilises peuvent tre stockes sur une seule machine centrale tout en restant accessibles d'autres par le rseau. Il n'est pas ncessaire que les utilisateurs disposent d'un rpertoire personnel sur chaque machine du rseau. Les rpertoires personnels peuvent tre centraliss sur le serveur NFS afin d'tre accessibles par tout le rseau. Les priphriques de stockage, comme les lecteurs disquettes, les lecteurs de CD-ROM ou les clefs USB, peuvent tre utiliss par d'autres machines du rseau. Ceci permet de rduire le nombre de lecteurs de supports amovibles sur un rseau.

6.1. Installation
Dans un terminal, saisissez la commande suivante pour installer le serveur NFS :

sudo apt-get install nfs-kernel-server

6.2. Configuration
Vous pouvez choisir les rpertoires exporter en les ajoutant au fichier /etc/exports. Par exemple :

/ubuntu *(ro,sync,no_root_squash) /home *(rw,sync,no_root_squash)

Vous pouvez remplacer * par l'un des formats de nom d'hte. La formulation du nom d'hte devrait tre la plus prcise possible pour viter que des systmes indsirables puissent accder aux points de montage NFS. Pour dmarrer le serveur NFS, saisissez la commande suivante dans un terminal :

sudo /etc/init.d/nfs-kernel-server start

6.3. Configuration du client NFS


Utilisez la commande mount pour monter un rpertoire NFS partag partir d'une autre machine, en tapant dans un terminal une commande telle que :

38

Rseau
sudo mount exemple.nomhote.com:/ubuntu /local/ubuntu

Le rpertoire /local/ubuntu du point de montage doit exister. Il ne devrait y avoir ni fichiers ni sous-rpertoires dans le rpertoire /local/ubuntu Une autre faon de monter un partage NFS partir d'une autre machine est d'ajouter une ligne au fichier /etc/fstab. La ligne doit comporter le nom d'hte du serveur NFS, le rpertoire du serveur qui doit tre partag, et le rpertoire de la machine locale o le partage NFS doit tre mont. La syntaxe gnrale de la ligne dans le fichier /etc/fstab est celle-ci :

exemple.nomhote.com:/ubuntu /local/ubuntu nfs size=8192,wsize=8192,timeo=14,intr

6.4. Rfrences
FAQ Linux NFS [http://nfs.sourceforge.net/]

39

Rseau

7. Dynamic Host Configuration Protocol (DHCP)


DHCP (Dynamic Host Configuration Protocol) est un service rseau qui permet aux ordinateurs clients d'tre configurs automatiquement partir d'un serveur. Cela vite la configuration manuelle de chaque client du rseau. Les ordinateurs configurs pour tre clients DHCP n'ont aucun contrle sur les paramtres qu'ils reoivent du serveur DHCP, et cette configuration est totalement transparente pour l'utilisateur. Les lments de configuration les plus communs fournis par un serveur DHCP un client DHCP comprennent : Adresse IP et masque rseau DNS WINS Cependant, un serveur DHCP peut galement fournir des lments de configuration tels que : Nom d'hte Nom de domaine Passerelle par dfaut Serveur de temps Serveur d'impression

L'avantage d'utiliser un serveur DHCP est qu'un changement dans la configuration du rseau, par exemple un changement d'adresse d'un serveur DNS, n'a alors besoin d'tre chang que sur le serveur DHCP. Tous les clients rseau seront reconfigurs lors de leur prochaine connexion au serveur DHCP. Un autre avantage est l'intgration plus facile de nouveaux ordinateurs dans le rseau, puisqu'il n'y a pas besoin de vrifier les adresses IP disponibles. Les conflits dans les allocations d'adresses IP sont galement rduits. Un serveur DHCP peut fournir des paramtres de configuration par deux mthodes : Adresse MAC Cette mthode entrane l'utilisation de DHCP pour identifier l'adresse matrielle unique de chaque carte rseau connecte. Par la suite, elle fournit continuellement une configuration constante chaque client DHCP qui met une requte au serveur DHCP, tant qu'il utilise la mme interface rseau. Pool d'adresses Cette mthode entrane la dfinition d'un lot (ou plage) d'adresses IP dans lequel les configurations dynamiques des clients DHCP sont puises selon le principe du premier arriv, premier servi. Lorsqu'un client DHCP n'est plus prsent sur le rseau pendant une priode dfinie, la configuration expire et est remise dans le lot d'adresses IP disponibles pour d'autres clients. Ubuntu est livr avec un serveur et un client DHCP. Le serveur est l'application dhcpd (dynamic host configuration protocol daemon). L'application cliente fournie avec Ubuntu est dhclient et doit tre installe sur tous les ordinateurs devant tre configurs automatiquement. Les deux programmes sont faciles installer et configurer et seront automatiquement dmarrs lors du dmarrage du systme. 40

Rseau

7.1. Installation
Pour installer dhcpd, excutez la commande suivante dans un terminal :

sudo apt-get install dhcpd

Vous lirez le message suivant, qui vous explique quoi faire ensuite :

Veuillez noter que si vous installez le serveur DHCP pour la premire fois, il vous faudra le configurer. Merci d'arrter le dmon serveur DHCP (/etc/init.d/dhcp stop), de modifier /etc/dhcpd.conf selon vos besoins et votre configuration particulire, et de redmarrer le dmon serveur DHCP (/etc/init.d/dhcp start). Il faudra galement modifier /etc/default/dhcp pour dfinir les interfaces que dhcpd devrait couter. Par dfaut, il coute eth0. NOTE : Les messages de dhcpd sont envoys vers syslog. Consultez y les messages de diagnostic. Dmarrage du serveur DHCP : chec du dmarrage de dhcpd - consultez syslog pour un diagnostic.

7.2. Configuration
Le message d'erreur par lequel l'installation se termine peut tre droutant, mais les tapes suivantes vous aideront configurer le service : Le plus souvent, vous voudrez allouer les adresses IP alatoirement. Ceci peut tre fait avec la configuration suivante :

# Sample /etc/dhcpd.conf # (add your comments here) default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "mydomain.org"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; range 192.168.1.150 192.168.1.200; }

Le serveur DHCP attribuera alors tout client une adresse IP comprise entre 192.168.1.10 et 192.168.1.100 ou 192.168.1.150 et 192.168.1.200. Cette adresse IP sera alloue pour 600 secondes si le client ne rclame pas d'autre dure. Dans le cas contraire, la dure maximale d'allocation 41

Rseau (permise) sera de 7200 secondes. Le serveur "conseillera" galement au client d'utiliser les valeurs 255.255.255.0 comme masque de sous-rseau, 192.168.1.255 comme adresse de broadcast, 192.168.1.254 comme adresse de routeur / passerelle, et 192.168.1.1 et 192.168.1.2 pour les serveurs DNS. Si vous avez besoin de spcifier un serveur WINS pour vos clients Windows, vous devrez par exemple utiliser l'option netbios-name-servers.

option netbios-name-servers 192.168.1.1;

Les paramtres de configuration dhcpd sont tirs du mini-manuel DHCP, que vous pouvez trouver ici [http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/fr/html-1page/DHCP.html].

7.3. Rfrences
FAQ DHCP [http://www.dhcp-handbook.com/dhcp_faq.html]

42

Rseau

8. Service de nom de domaine (DNS)


Le service de nom de domaine (DNS) est un service Internet qui tablit la correspondance entre les adresses IP et les noms de domaines pleinement qualifis (FQDN : Fully Qualified Domain Name). Ainsi, le DNS vite d'avoir se rappeler des adresses IP. Les ordinateurs sur lesquels s'excutent les DNS sont appels des serveurs de nom. Ubuntu est fourni avec BIND (Berkley Internet Naming Daemon), le programme le plus couramment utilis pour grer un serveur de nom sur Linux.

8.1. Installation
Pour installer le service dns, excutez la commande suivante dans un terminal :

sudo apt-get install bind

8.2. Configuration
Les fichiers de configuration DNS sont enregistrs dans le rpertoire /etc/bind. Le fichier principal de configuration est /etc/bind/named.conf. Le contenu du fichier de configuration par dfaut est affich ci-dessous :

// This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind/README.Debian for information on the // structure of BIND configuration files in Debian for BIND versions 8.2.1 // and later, *BEFORE* you customize this configuration file. // include "/etc/bind/named.conf.options"; // reduce log verbosity on issues outside our control logging { category lame-servers { null; }; category cname { null; }; }; // prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "localhost" { type master; file "/etc/bind/db.local"; };

43

Rseau

zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; // add local zone definitions here include "/etc/bind/named.conf.local";

La ligne include spcifie le nom du fichier contenant les options du DNS. La ligne directory du fichier d'options indique au DNS o chercher les fichiers. Tous les fichiers utiliss par BIND auront un chemin relatif ce rpertoire. Le fichier nomm /etc/bind/db.root dcrit les serveurs de nom racine dans le monde. Les serveurs changent au cours du temps, c'est pourquoi le fichier /etc/bind/db.root doit tre mis jour rgulirement. La section zone dfinit le serveur matre, et est stocke dans le fichier mentionne par l'tiquette file. Chaque zone contient trois enregistrement de ressources (RR=Ressource Record): SOA, NS et PTR. Le SOA est l'acronyme de Start Of Authority (origine de l'autorit). Le "@" est une notation spciale qui signifie origine. NS (Name Server) est l'enregistrement d'un serveur de nom. PTR est un pointeur sur un nom du domaine. Pour dmarrer le serveur DNS, dans un terminal lancer la commande suivante :

sudo /etc/init.d/bind start

Vous pouvez vous rfrer la documentation indique dans la section rfrences pour plus de dtails.

8.3. Rfrences
Guide d'administration DNS [http://www.tldp.org/HOWTO/DNS-HOWTO.html]

44

Rseau

9. CUPS - Serveur d'impression


Le systme principal d'impression sous Ubuntu est le Common UNIX Printing System (CUPS). Ce systme d'impression, qui est librement disponible et portable, est devenu le nouveau standard pour imprimer dans la plupart des distributions Linux. CUPS organise les tches d'impression, les met en file d'attente, et rend possible l'impression en rseau en utilisant le standard d'impression Internet Printing Protocol (IPP). Il offre un large support pour un trs grand nombre d'imprimantes, allant des imprimantes matricielles aux imprimantes laser, en passant par de nombreux autres types. CUPS offre galement le support PostScript Printer Description (PPD - description d'imprimante PostScript) et l'auto-dtection des imprimantes rseaux, sans oublier une interface de configuration web simple et des outils d'administration.

9.1. Installation
Pour installer CUPS sur votre ordinateur Ubuntu, utilisez simplement sudo suivi de la commande apt-get et spcifiez comme premier paramtre les paquets installer. Une installation complte de CUPS demande de nombreux paquets du fait des dpendances, mais ils peuvent tre tous spcifis sur la mme ligne de commande. Saisissez la commande suivante dans un terminal pour installer CUPS :

sudo apt-get install cupsys cupsys-client

Aprs une authentification avec votre mot de passe, les paquets devront se tlcharger et s'installer sans erreur. Une fois ceci effectu, le serveur CUPS sera dmarr automatiquement. Pour la rsolution des problmes, vous pouvez voir les erreurs du serveur CUPS dans son fichier journal :/var/log/cups/error_log. Si ce fichier ne vous donne pas assez d'informations pour diagnostiquer les problmes que vous rencontrez, vous pouvez augmenter la verbosit du fichier journal de CUPS en modifiant l'instruction LogLevel du fichier de configuration (dont nous parlerons plus en dtail ensuite) par debug voir mme debug2 , ce qui enregistrera toutes les informations. Si vous avez effectu ce changement, n'oubliez pas de revenir la configuration par dfaut une fois votre problme rsolu, afin d'viter que le fichier journal ne devienne norme.

9.2. Configuration
Le comportement du systme commun d'impression sous Linux est configur par les directives contenues dans le fichier /etc/cups/cupsd.conf. La syntaxe du fichier de configuration de CUPS est identique au fichier principal de configuration du serveur HTTP Apache, les utilisateurs dj habitus diter les fichiers Apache devraient donc se sentir l'aise. Quelques exemples de modifications que vous pourriez souhaiter apporter vont tre prsents ici. Avant de modifier le fichier de configuration, vous devriez faire une copie de la configuration originale et la protger en criture. Vous disposerez ainsi des paramtres par dfaut en guise de rfrence que vous pourrez rutiliser au besoin. 45

Rseau Copiez le fichier /etc/cups/cupsd.conf et protgez-le en criture en excutant dans un terminal la commande suivante :

sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original sudo chmod a-w /etc/cups/cupsd.conf.original

ServerAdmin : Pour configurer le courriel de l'administrateur du serveur CUPS, ditez simplement le fichier de configuration /etc/cups/cupsd.conf avec votre diteur prfr, et modifiez la ligne ServerAdmin. Par exemple, si vous tes l'administrateur du serveur CUPS, et que votre courriel est 'bjoy@somebigco.com', alors la ligne ServerAdmin doit tre modifie de cette manire :

ServerAdmin bjoy@somebigco.com

Pour des exemples supplmentaires de directives de configuration du serveur CUPS, consultez le manuel associ en tapant la commande suivante dans un terminal :

man cupsd.conf

chaque modification du fichier de configuration /etc/cups/cupsd.conf, vous devrez redmarrer le serveur CUPS en tapant dans un terminal la commande suivante :

sudo /etc/init.d/cupsys restart

Une autre partie de la configuration du serveur CUPS est ralise dans le fichier /etc/cups.d/ports.conf : Listen: Par dfaut sur Ubuntu, l'installation du serveur CUPS n'coute que sur l'interface loopback l'adresse IP 127.0.0.1. Afin que le serveur CUPS coute sur l'adresse IP d'une interface rseau relle, vous devez ajouter une directive Listen, qui spcifie un nom d'hte, une adresse IP, ou une paire adresse IP/port. Par exemple, si votre serveur CUPS a l'adresse IP 192.168.10.250 sur un rseau local et que vous souhaitez le rendre accessible d'autres systmes du sous-rseau, il faut modifier le fichier /etc/cups/cups.d/ports.conf et rajouter une directive Listen, comme cela :

Listen 127.0.0.1:631 # Directive d'coute existante sur l'interface loopback Listen /var/run/cups/cups.sock # Directive d'coute existante sur un socket Listen 192.168.10.250:631 # Directive d'coute sur l'interface rseau local, port 631 (IPP)

Dans l'exemple ci-dessus, vous pouvez commenter ou supprimer la rfrence l'adresse loopback (127.0.0.1) si vous ne voulez pas que cupsd coute sur cette interface, mais prfrez qu'il n'coute que sur les interfaces Ethernet du rseau local. Pour activer l'coute sur toutes les interfaces rseau auxquelles un nom d'hte donn est li, y compris l'interface loopback, vouz pourriez crer une entre Listen pour le nom d'hte socrates comme cela :

46

Rseau
Listen socrates:631 # Directive d'coute sur toutes les interfaces du nom d'hte 'socrates'

ou en omettant la directive Listen et en utilisant Port, comme cela :

Port 631 # Ecouter sur le port 631 de toutes les interfaces

9.3. Rfrences
Site Internet de CUPS [http://www.cups.org/]

47

Rseau

10. HTTPD - serveur Internet Apache2


Apache est le serveur Web le plus couramment utilis sur les systmes Linux. Les serveurs Web sont utiliss pour dlivrer les pages Web demandes par les ordinateurs clients. Les clients demandent et affichent les pages Web en utilisant des logiciels de navigation sur le Web, tel que Firefox, Opera ou Mozilla. Les utilisateurs entrent une URL (Uniform ressource Locator) pour pointer sur un serveur Web au moyen d'un nom de domaine pleinement qualifi (FQDN : Fully Qualified Domain Name) et d'un chemin vers la ressource dsire. Par exemple, pour voir la page d'accueil du site web Ubuntu [http://www.ubuntu.com] un utilisateur entrera seulement le nom de domaine (FQDN). Pour obtenir une informations spcifique sur le support payant [http://www.ubuntu.com/support/paid], un utilisateur entrera le nom de domaine (FQDN) suivi du chemin de la ressource. La mthode la plus communment utilise pour le transfert de pages web est le Protocole de Transfert d'Hyper Texte (dont l'acronyme anglais est HTTP). Les protocoles tels que le Protocol de Tansfert d'Hyper Texte sur Sockets Scurises (HTTPS) et le Protocole de Transfert de Fichiers (FTP) un protocol permettant d'envoyer et de tlcharger des fichiers sont galement supports. Le serveur web Apache sont frquemment utiliss en combinaison avec la base de donne MySQL, le language de script de Prtraitement Hyper Texte (PHP), et d'autres languages de scripts populaires tels que le Python et le Perl. Cette configuration, d

10.1. Installation
Le serveur web Apache2 est disponible sous Ubuntu. Pour l'installer : Dans un terminal, saissisez cette commande :

sudo apt-get install apache2

10.2. Configuration
Apache est configur par le biai de directives dans les fichiers textes de configuration. Le fichier principal est appelapache2.conf. De plus, d'autres fichiers de configurations peuvent Include et les caract Le serveur lit galement un fichier contenant les types mimes des documents; le nom de ce fichier est donn par la directive TypesConfig dont la valeur par dfaut est mime.types. Le fichier de configuration par dfaut d'Apache2 est /etc/apache2/apache2.conf. Vous pouvez diter ce fichier afin de configurer le serveur Apache2. Vous pouvez configurer le numro de port, la racine des documents, les modules, les fichiers de traces, les htes virtuels, etc.

48

Rseau 10.2.1. Rglages de base Cette section donne les paramtres essentiels de la configuration du serveur Apache2. Pour de plus amples dtails, rfrez vous la documentation Apache2 [http://httpd.apache.org/docs/2.0/]. Apache2 contient par dfaut une configuration des htes virtuels couvrant les besoins classiques. C'est dire qu'il est configur avec un seul hte virtuel (utlisant la directive VirtualHost) qui peut tre modifi, utilis tel quel si vous ne disposez que d'un seul site, ou encore utilis comme modle pour d'autres htes virtuels si vous disposez de plusieurs sites. Utilis comme tel, l'hte virtuel par dfaut sera votre site par dfaut ou le site que les utilisateurs verront si l'URL entre ne correspond aucun de vos sites dfinis par des directives ServerName. Pour modifier l'hte virtuel par dfaut, ditez le fichier /etc/apache2/sites-available/default. Si vous souhaitez configurer un nouvel hte virtuel ou un site, copiez ce fichier dans le mme rpertoire avec un nom de votre choix. Par exemple, sudo cp /etc/apache2/sites-available/default /etc/apache2/sitesavailable/mynewsite ditez le nouveau fichier pour configurer le nouveau site en utilisant les directives dcrites ci-dessus. La directive ServerAdmin spcifie l'adresse mail qui figurera comme adresse de l'administrateur du serveur. La valeur par dfaut est webmaster@localhost. Cette valeur devrait tre remplace par une adresse dont vous tes destinataire (dans le cas o vous tes l'administrateur du serveur). Si votre site rencontre un problme, Apache2 affichera un message d'erreur contenant cette adresse mail afin de lui rapporter le problme. Cette directive est placer dans les fichiers de configuration de vos sites situs dans /etc/apache2/sites-available. La directive Listen prcise le port, et de manire optionelle l'adresse IP, sur lesquel Apache2 coute. Si l'adresse IP n'est pas spcifie, Apache coutera sur toutes les adresses IP assignes la machine. La valeur par dfaut de la directive Listen est 80. Modifiez la en 127.0.0.1:80 afin qu'Apache2 n'coute que sur l'interface locale et ne soit pas accessible depuis internet, en 81 (par exemple) afin de modifier le port sur lequel Apache2 coute, ou laissez la valeur par dfaut dans la majorit des cas. Cette directive se situe dans son propre fichier /etc/apache2/ports.conf La directive ServerName est optionnelle et prend pour valeur le FQDN auquel devrait rpondre votre site. L'hte virtuel par dfaut ne dispose pas de directive ServerName : il rpond alors toutes les requtes pour lesquelles aucune correspondance avec la directive ServerName des autres htes virtuels n'a t trouve. Si vous avez achet le domaine ubunturocks.com et que vous souhaitez l'hberger sur votre serveur Ubuntu, la valeur par dfaut de la directive ServerName dans l'hte virtuel correspondant devrait tre ubunturocks.com. Ajoutez cette directive au nouvel hte virtuel cr prcdemment (/etc/apache2/sites-available/mynewsite). Comme beaucoup de personnes pensent que le prfixe www est d'usage, vous pouvez dsirer que votre site rponde galement l'adresse www.ubunturocks.com. Utilisez la directive ServerAlias dans ce but. Vous pouvez galement utiliser les caractres jocker au sein de la directive ServerAlias. Par exemple, *.ubunturocks.com permettra La directive DocumentRoot prcise l'emplacement o Apache doit chercher les fichiers du site. La valeur par dfaut est /var/www. Aucun site n'est configur cet emplacement, mais si vous dcommentez la directive RedirectMatch dans le fichier de configuration 49

Rseau les requtes seront alors rediriges vers /var/www/apache2-default o se trouve le site par dfaut d'Apache2. Modifiez cette valeur dans le fichier de configuration de votre hte virtuel, et n'oubliez pas de crer le rpertoire si ncessaire.
/etc/apache2/apache2.conf

Le contenu du rpertoire /etc/apache2/sites-available n'est pas utilis par Apache2. Des liens symboliques dans /etc/apache2/sites-enabled pointent vers les configurations de sites disponibles situs dans le rpertoire "available". Pour crer ces liens symboliques, il faut utiliser la commande a2ensite (activation d'un site Apache2 en anglais) comme suit : sudo a2ensite mynewsite o le fichier de configuration de votre site est /etc/apache2/sites-available/mynewsite. De manire symtrique, il faut utiliser a2dissite pour dsactiver le site. 10.2.2. Rglages par dfaut Cette section explique la configuration par dfaut du serveur Apache2. Par exemple, si vous ajoutez un hte virtuel, les paramtres dfinis l'intrieur de l'hte virtuel sont utilises dans cet hte virtuel. Pour une directive qui n'est pas dfinie l'intrieur de l'hte virtuel, la valeur par dfaut est utilise. La directive DirectoryIndex stipule la page par dfaut qui doit tre servie lorsqu'un utilisateur demande l'index d'un rpertoire en spcifiant un slash final (/) la fin du nom d'un rpertoire. Par exemple, lorsqu'un utilisateur demande la page http://www.example.com/this_directory/, il ou elle obtiendra ou bien la page spcifie par la directive DirectoryIndex si elle existe, ou bien un listing du rpertoire gnr par le serveur si l'option Indexes est spcifie, ou bien une permission non accorde si aucun des deux cas prcdents ne se vrifie. Le serveur essaiera de trouver l'une des pages donnes dans la directive DirectoryIndex et renverra la premire trouve. S'il ne trouve pas une de ces pages et si l'option Indexes est active pour ce rpertoire, le serveur gnrera et renverra une liste au format HTML des sous-rpertoires et fichiers prsents dans ce rpertoire. La valeur par dfaut se trouvant dans le fichier /etc/apache2/apache2.conf est " index.html index.cgi index.pl index.php index.xhtml". Si Apache2 trouve un fichier dans le rpertoire demand qui correspond l'un de ces noms, le premier d'entre eux sera affich. La directive ErrorDocument vous permet de spcifier le fichier qu'Apache utilise pour des erreurs spcifiques. Par exemple, si un utilisateur fait une requte sur une ressource qui n'existe pas, une erreur 404 sera gnre, et avec la configuration par dfaut Apache2, le fichier /usr/share/apache2/error/HTTP_NOT_FOUND.html.var sera affich. Ce fichier n'est pas dans le rpertoire racine du serveur (DocumentRoot), mais il y a une directive Alias dans /etc/apache2/apache2.conf qui redirige les requtes errones vers /usr/share/apache2/error/. Pour voir une liste des directives ErrorDocument par dfaut, utilisez la commande : grep ErrorDocument /etc/apache2/apache2.conf Par dfaut, le serveur crit le journal des transferts dans /var/log/apache2/access.log. Vous pouvez modifier cela sur la base d'un journal par site dans vos fichiers de configuration d'hte virtuel (virtual host) avec la directive CustomLog, ou l'omettre en acceptant la valeur par dfaut spcifie dans /etc/apache2/apache2.conf. Vous pouvez galement spcifier le fichier ou le journal des erreurs est enregistr, via la directive ErrorLog, qui a pour valeur par dfaut 50

Rseau
/var/log/apache2/error.log.

Celui-ci reste distinct du journal des transferts afin d'aider la rsolution des dysfonctionnements de votre serveur Apache2. Vous pouvez galement spcifier le LogLevel (la valeur par dfaut est "warn", N.d.T. : le niveau des enregistrements correspond aux avertissements) et LogFormat(format des enregistrements) (voyez le fichier
/etc/apache2/apache2.conf

pour la valeur par dfaut).

Certaines directives sont spcifies par rpertoire plutt que par serveur. Option est l'une de ces directives. Une section pour un rpertoire est encadr par des balises de type XML, par exemple :
<Directory /var/www/mynewsite># ...# </Directory>

Les directives Option placs dans une section pour un rpertoire acceptent une ou plusieurs de ces valeurs (parmi d'autres), spares par des espaces : ExecCGI - Autorise l'excution des scripts CGI. Les scripts CGI ne sont pas excuts si cette option n'est pas choisie. La plupart des fichiers ne doivent pas tre excuts en tant que scripts CGI. Cela pourrait tre trs dangereux. Les scripts CGI doivent tre placs dans un rpertoire spar et extrieur votre DocumentRoot, et seul ce rpertoire devrait avoir l'option ExecCGI active. L'emplacement par dfaut des scripts CGI est /usr/lib/cgi-bin. Includes - Autorise les inclusions ct serveur (server-side includes). Les inclusions ct serveur (server-side includes) permettent un fichier HTML d'inclure d'autres fichiers. Ce n'est pas une option courante. Pour plus d'informations voyez le Howto Apache2 SSI [http://httpd.apache.org/docs/2.0/howto/ssi.html]. IncludesNOEXEC - Autorise les inclusions ct serveur (SSI), mais dsactive les commandes #exec et #include dans les scripts CGI. Indexes - Affiche une liste mise en forme du contenu du rpertoire si aucun index de rpertoire (DirectoryIndex), comme index.html, n'existe dans ce dossier. Pour des raisons de scurit, ceci ne devrait habituellement pas tre activ, et cela ne devrait certainement pas tre activ dans votre rpertoire racine de documents (DocumentRoot). Si vous tes certain de vouloir que les utilisateurs voient le contenu complet d'un rpertoire, activez cette option avec prudence dans une section pour ce rpertoire. Multiviews - Support de la ngociation de contenu multiviews ; cette otion est dsactive par dfaut pour des raisons de scurit. Voyez la documentation Apache2 sur la ngociation de contenu [http://httpd.apache.org/docs/2.0/content-negotiation.html] SymLinksIfOwnerMatch - Ne suit les liens symboliques que si le fichier ou rpertoire cible a le mme propritaire que le lien. 10.2.3. Paramtres des htes virtuels Les htes virtuels vous permettent de faire fonctionner diffrents serveurs sur la mme machine, pour diffrentes adresses IP, diffrents noms d'htes, ou des ports diffrents. Par exemple, vous pouvez 51

Rseau faire fonctionner le site web http://www.example.com et le site web http://www.anotherexample.com sur le mme serveur web en utilisant les htes virtuels. Cette option correspond la directive <VirtualHost pour l'hNameVirtualHost pour des h Le jeu de directives pour un hte virtuel ne s'applique que cet hte virtuel en particulier. Si une directive est dfinie globalement pour le serveur et n'est pas dfinie dans les paramtres de l'hte virtuel, les paramtres par dfaut s'appliquent. Par exemple, vous pouvez dfinir l'adresse de courriel du webmaster globalement, et ne pas dfinir d'adresses individuelles pour chaque hte virtuel. La valeur de la directive DocumentRoot doit tre le rpertoire racine (qui contient index.html par exemple) pour l'hte virtuel. Le rpertoire racine par dfaut est /var/www. La directive ServerAdmin dans la section VirtualHost est l'adresse du courriel utilise dans le pied de page des pages d'erreurs si vous choisissez d'afficher un pied de page avec une adresse de courriel dans les pages d'erreurs. 10.2.4. Paramtres du serveur Cette section explique comment effectuer les rglages de base du serveur. LockFile - La directive LockFile dfinit le chemin vars le fichier lockfile utilis lorsque le serveur est compil avec soit USE_FCNTL_SERIALIZED_ACCEPT, soit USE_FLOCK_SERIALIZED_ACCEPT. Ce fichier doit tre enregistr sur le disque local. On peut laisser la valeur par dfaut tant que le rpertoire des journaux ne se situe pas sur un partage NFS. Dans ce cas, la valeur par dfaut doit tre modifie pour un emplacement sur le disque local et en lecture uniquement pour le super-utilisateur (root). PidFile - La directive PidFile dfinit le fichier dans lequel le serveur enregistre son ID de processus (pid : process ID). Ce fichier ne doit tre accessible en lecture que par le super-utilisateur (root). Dans la plupart des cas, la valeur par dfaut peut tre conserve. User - La directive User dfinit le numro d'utilisateur (userid) utilis par le serveur pour rpondre aux requtes. Ce paramtrage dtermine les accs au serveur. Un fichier inaccessible cet utilisateur sera galement inaccessible aux visiteur de votre site web. La valeur par dfaut pour la directive User est www-data. A moins que vous ne sachiez exactement ce que vous faites, ne dfinissez jamais la directive User root. Utiliser root (super-utilisateur) comme valeur pour User crera d'normes trous de scurit dans votre serveur web. La directive Group est similaire la directive User. Elle dfinit le groupe sous lequel le serveur web rpondra aux requtes. Le groupe par dfaut est galement www-data. 10.2.5. Modules d'Apache Apache est un serveur modulaire. Ceci implique que seules les fonctionnalits de base sont prsentes dans le cur du serveur. Les fonctionnalits tendues sont disponibles au travers de modules qui 52

Rseau peuvent tre chargs par Apache. Par dfaut, un groupe de modules de base est inclut dans le serveur au moment de la compilation. Si le serveur est compil pour utiliser des modules chargs dynamiquement, alors les modules peuvent tre compils sparment, et ajouts tout moment en utilisant la directive LoadModule. Autrement, Apache doit tre recompil pour ajouter ou supprimer des modules. La compilation Ubuntu d'Apache autorise le chargement dynamique des modules. Les directives de configuration peuvent tre conditionne la prsence d'un module en utilisant un lment <IfModule>. Vous pouvez installer des modules Apache supplmentaires et les utiliser avec votre serveur web. Vous pouvez installer les modules Apache en utilisant la commande apt-get. Par exemple, pour installer le module Apache2 pour l'authentification MySQL, vous pouvez excuter la commande suivante dans une console :

sudo apt-get install libapache2-mod-auth-mysql

Une fois votre module install, il sera disponible dans le rpertoire /etc/apache2/mods-available. Vous pouvez utiliser la commande a2enmod pour activer le module. Vous pouvez utiliser la commande a2dismod pour dsactiver le module. Une fois le module activ, il sera disponible dans le rpertoire /etc/apache2/mods-enabled.

10.3. Configuration HTTPS


Le module mod_ssl ajoute une fonctionnalit importante au serveur Apache2 : la capacit de crypter les communications. Ainsi, lorsque votre navigateur communique en utilisant le cryptage SSL, le prfixe https:// est utilis en dbut d'url dans la barre d'adresse. Le module mod_ssl est disponible dans le paquet apache2-common. Si vous avez install ce paquet, vous pouvez excuter la commande suivante dans une console pour activer le module mod_ssl :

sudo a2enmod ssl

10.3.1. Certificats et scurit Pour configurer votre serveur scuris, utilisez le cryptage de cl publique pour crer une paire de cls prive/publique. Dans la plupart des cas, vous envoyez une requte de certification (incluant votre cl publique), prouvant l'identit de votre compagnie et le paiement d'une autorit de certification (CA : Certficate Authorty). L'autorit de certification vrifie votre requte de certification et votre identit, et vous renvoie un certificat pour votre serveur scuris. Alternativement, vous pouvez crer votre propre certificat auto-sign. Remarquez cependant, que les certificats auto-signs ne devraient pas tre utiliss dans un environnement de production. Les certificats auto-signs ne sont pas accepts automatiquement par le navigateur de l'utilisateur. Les utilisateurs reoivent un avertissement du navigateur leur demandant s'ils acceptent le certificat pour crer une connexion scurise. Une fois que vous avez un certificat auto-sign ou un certificat sign par l'autorit de certification (CA) de votre choix, vous devez l'installer sur votre serveur scuris. 53

Rseau 10.3.2. Types de certificats Vous avez besoin d'une cl et d'un certificat pour faire fonctionner votre serveur scuris, ceci signifie que vous pouvez soit gnrer un certificat auto-sign, soit acheter un certificat sign par une autorit de certification (CA). Un certificat sign par CA fournit deux fonctionnalits importantes pour votre serveur : Les navigateurs reconnaissent (gnralement) automatiquement le certificat et permettent l'tablissement d'une connexion scurise sans intervention de l'utilisateur. Lorsqu'une autorit de certification (CA) met un certificat, cela garanti l'identit de l'organisation qui fournit les pages web au navigateur. La plupart des navigateurs qui supportent le SSL ont une liste des CAs dont les certificats sont automatiquement accepts. Si le navigateur rencontre un certificat mis par un autorit de certification qui n'est pas dans la liste, le navigateur demande l'utilisateur s'il accepte ou s'il dcline la connexion. Vous pouvez gnrer un certificat auto-sign pour votre serveur scuris, mais soyez conscient qu'un certificat auto-sign ne fournit pas la mme fonctionnalit qu'un certificat sign par CA. Un certificat auto-sign n'est pas automatiquement reconnu par la plupart des navigateurs du Web, et un certificat auto-sign n'offre aucune garantie concernant l'identit de l'organisation qui fournit le site web. Un certificat sign par CA fournit ces deux fonctionnalits importantes pour un serveur scuris. Le processus de rcupration d'un certificat depuis un CA est assez simple. En voici un rapide aperu : 1. Crez une paire de clefs priv et publique. 2. Crez une requte de certificat base sur la cl publique. La requte de certificat contient l'information concernant votre serveur et la socit qui l'hberge. 3. Envoyez votre requte de certificat, avec les documents prouvant votre identit, l'autorit de certification (CA). Nous ne pouvons pas vous dire quelle autorit de certification choisir. Votre dcision peut tre base sur votre expriences passe, ou sur l'exprience de vos amis ou collgues, ou simplement sur des considrations financires. Une fois l'autorit de certification choisie, vous devez suivre les instructions qu'ils fournissent sur la procdure d'obtention du certificat. 4. Quand l'autorit de certification est sre que vous tes celui que vous prtendez tre, elle vous envoie un certificat numrique. 5. Installez ce certificat sur votre serveur scuris, et commencez prendre en charge les connexions scurises. Que vous ayez obtenu votre certificat d'une autorit de certification, ou qu'il s'agisse d'un certificat auto-sign, la premire tape consiste gnrer une cl. 10.3.3. Gnration d'une Demande de Signature de Certificat (Certificate Signing Request ou CSR) Pour gnrer la requte de signature de certificat (CSR : Certificate Signing Request), vous devez crer votre propre cl. Vous pouvez lancer la commande suivante dans une console pour crer la cl :

54

Rseau
openssl genrsa -des3 -out server.key 1024

Generating RSA private key, 1024 bit long modulus .....................++++++ .................++++++ unable to write 'random state' e is 65537 (0x10001) Enter pass phrase for server.key:

Vous pouvez maintenant saisir votre mot de passe. Pour une meilleure scurit, il doit contenir au minimum huit caractres. La longueur minimum lorsque vous spcifiez -des3 (algorithme de cryptage) est de quatre caractres. Il devrait contenir des chiffres et/ou des signes de ponctuation et ne pas se trouver dans un dictionnaire de mots. Rappelez vous galement que votre mot de passe est sensible la casse (NdT : au sens typographique majuscules/minuscules) Saisissez nouveau votre mot de passe pour vrification. Une fois ressaisi correctement, la cl du serveur est gnre et stocke dans le fichier server.key. Vous pouvez galement lancer votre serveur web scuris sans mot de passe. C'est pratique car vous n'aurez pas saisir votre mot de passe chaque fois que vous dmarrez votre serveur web scuris. Mais c'est hautement inscuris et une clef compromise signifie que le serveur lui-mme sera compromis. En tout cas, vous pouvez choisir d'excuter votre serveur web scuris sans mot de passe en enlevant l'argument -des3 pendant la phase de gnration ou l'aide de la commande suivante dans une console :

openssl rsa -in server.key -out server.key.insecure

Une fois la commande ci-dessus excute, la cl non-scurise sera stoke dans le fichier server.key.insecure. Vous pouvez utiliser ce fichier pour gnrer la CSR (requte de certificat sign) sans mot de passe. Pour crer un CSR, lancer la commande suivante dans un terminal :

openssl req -new -key server.key -out server.csr

Il va vous demander de saisir votre mot de passe. Si vous avez saisi le mot de passe correct, il vous demandera de saisir le nom de la compagnie, le nom du site, votre courriel, etc. Une fois tous ces points renseigns, votre CSR sera cre et stock dans le fichier server.csr. Vous pouvez transmettre cette CSR une autorit de certification (CA). L'autorit de certification va utiliser cette CSR et fournir un certificat. D'un autre ct, vous pouvez crer un certificat auto-sign en utilisant cette CSR. 10.3.4. Cration d'un Certificat Auto-sign (Self-Signed Certificate ou SSC) Pour crer le certificat auto-sign, utilisez la commande suivante l'invite d'un terminal : 55

Rseau

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

La commande ci-dessus vous demandera de saisir votre mot de passe. Une fois le mot de passe correct entr, votre certificat sera cr et stock dans le fichier server.crt. Si votre serveur doit tre utilis dans un environnement de production, vous avez probablement besoin d'un certificat sign par une autorit de certification. Il n'est pas recommand d'utiliser un certificat auto-sign. 10.3.5. Installation du certificat Vous pouvez installer la cl du fichier server.key et le certificat du fichier server.crt ou le certificat mis par l'autorit de certification, en excutant les commandes suivantes dans une console :

sudo cp server.crt /etc/ssl/certs sudo cp server.key /etc/ssl/private

Vous devriez ajouter les quatre lignes suivantes au fichier /etc/apache2/sites-available/default ou au fichier de configuration pour votre hte virtuel scuris. Vous devriez les placer dans la section VirtualHost. Elles devraient tre situes sous la ligne DocumentRoot :

SSLEngine on SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key

HTTPS devrait couter le port 443. Vous devriez ajouter la ligne suivante au fichier :
/etc/apache2/ports.conf

Listen 443

10.3.6. Accder au serveur Une fois votre certificat install, vous devriez redmarrer votre serveur web. Vous pouvez excuter la commande suivante dans une console pour redmarrer votre serveur web :
sudo /etc/init.d/apache2 restart

Vous devez saisir votre mot de passe, et vous en souvenir, chaque fois que vous redmarrez votre serveur web. Votre mot de passe vous sera demand. Une fois le mot de passe correct saisi, le serveur web scuris sera dmarr. Vous pouvez accder aux pages web du serveur scuris en tapant https://your_hostname/url/ dans la barre d'adresse de votre navigateur. 56

Rseau

10.4. Rfrences
Documentation d'Apache2 [http://httpd.apache.org/docs/2.0/] Documentation du Mod SSL [http://www.modssl.org/docs/]

57

Rseau

11. PHP5 - Langage de script


PHP est un langage de script gnraliste adapt au dveloppement Web. Le script PHP peut tre incorpor dans du HTML. Cette section explique comment installer et configurer PHP5 sur un systme Ubuntu avec Apache2 et MySQL. Cette section suppose que vous avez install et configur le serveur Web Apache2 et le serveur de base de donnes MySQL. Vous pouvez vous rfrer aux sections sur Apache2 et sur MySQL dans ce document pour installer et configurer Apache2 et MySQL.

11.1. Installation
PHP5 est disponible sur Ubuntu Linux. Pour installer PHP5 vous pouvez saisir la commande suivante dans un terminal :

sudo apt-get install php5-common php5 libapache2-mod-php5

Vous pouvez excuter les scripts PHP5 depuis une ligne de commande. Pour excuter des scripts PHP5 depuis une ligne de commande, vous devez installer le paquet php5-cgi. Pour installer php5-cgi, vous pouvez saisir la commande suivante dans un terminal :

sudo apt-get install php5-cgi

Pour utiliser MySQL avec PHP5 vous devez installer le paquet php5-mysql. Pour installer php5-mysql, vous pouvez saisir la commande suivante dans un terminal :

sudo apt-get install php5-mysql

Rciproquement, pour utiliser PostgreSQL avec PHP5 vous devez installer le paquet php5-pgsql. Pour installer php5-pgsql, vous pouvez saisir la commande suivante dans un terminal :

sudo apt-get install php5-pgsql

11.2. Configuration
Une fois PHP5 install, vous pouvez excuter des scripts PHP5 depuis votre navigateur Web. Si vous avez install le paquet php5-cgi, vous pouvez les excuter dans un terminal. Par dfaut, le serveur Web Apache2 est configur pour excuter les scripts PHP5. En d'autres termes, le module PHP5 est automatiquement activ dans le serveur Web Apache2 quand vous installez le module. Veuillez vrifier si les fichiers /etc/apache2/mods-enabled/php5.conf et /etc/apache2/mods-enabled/php5.load existent bien. S'ils n'existent pas, vous pouvez activer le module en utilisant la commande a2enmod. 58

Rseau Une fois que vous avez install les paquets en rapport avec PHP5 et activ le module PHP5 d'Apache2, vous devez redmarrer le serveur Web Apache2 pour pouvoir excuter des scripts PHP5. Vous pouvez excuter la commande suivante dans un terminal pour redmarrer votre serveur Web :
sudo /etc/init.d/apache2 restart

11.3. Tests
Pour tester votre installation, vous pouvez excuter le script phpinfo de PHP5, suivant :

<?php print_r (phpinfo()); ?>

Vous pouvez enregistrer le contenu dans un fichier phpinfo.php et le placer dans le rpertoire DocumentRoot du serveur Web Apache2. Quand vous pointerez votre navigateur sur http://hostname/phpinfo.php, il affichera les valeurs de divers paramtres de configuration de PHP5.

59

Rseau

12. Squid - Serveur proxy


Squid est un serveur mandataire/cache web trs complet qui fournit des services de cache et de relais pour le protocole HTTP (Hyper Text Transport Protocol), le protocole FTP (File Transfer Protocol), et d'autres protocoles rseau courants. Squid peut grer le cache et le relais des requtes SSL (Secure Sockets Layer), agir en tant que cache pour les consultations DNS (Domain Name Server), et agir en tant que cache transparent. Squid supporte galement une large varit de protocoles de cache, comme ICP (Internet Cache Protocol), HTCP (Hyper Text Caching Protocol), CARP (Cache Array Routing Protocol), et WCCP (Web Cache Coordination Protocol). Le serveur mandataire Squid est une excellente solution pour divers besoins de relais et de cache, son usage s'tend de la succursale aux rseaux d'entreprise tout en fournissant des mcanismes de contrle d'accs tendus et modulaires et en surveillant les paramtres critiques via le protocole SNMP (Simple Network Management Protocol). Lorsque vous slectionnez un ordinateur pour utiliser en tant que serveur mandataire Squid ddi, ou un serveur de cache, assurez vous que le systme est configur avec une grande quantit de mmoire physique, car Squid maintient un cache en mmoire pour accrotre les performances.

12.1. Installation
Pour installer le serveur Squid, utilisez la commande suivante l'invite d'un terminal :

sudo apt-get install squid squid-common

12.2. Configuration
Squid est configur en ditant les directives contenues dans le fichier /etc/squid/squid.conf. Les exemples suivants illustrent certaines modifications de directives qui peuvent affecter le comportement du serveur Squid. Pour une configuration plus avance de Squid, voyez la section rfrences. Avant de modifier le fichier de configuration, vous devriez en faire une copie protge contre l'criture, ainsi vous aurez les paramtres d'origine comme rfrence, et r-utilisables si ncessaire. Copiez le fichier /etc/squid/squid.conf et protegez le en criture en excutant la commande suivante dans un terminal :

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original sudo chmod a-w /etc/squid/squid.conf.original

Pour que votre serveur Squid coute sur le port TCP 8888 la place du port par dfaut 3128, modifiez la directive http_port comme ceci : http_port 8888

60

Rseau Pour donner un nom d'hte spcifique votre serveur Squid, changez la directive visible_hostname. Ce nom d'hte n'as pas forcment besoin d'tre le mme que le nom d'hte de la machine. Dans cet exemple il est dfini comme tant weezie visible_hostname weezie A nouveau, en utilisant le contrle d'accs Squid, vous pouvez configurer l'utilisation des services Internet mandats par Squid pour n'tre disponible que pour les utilisateurs disposant de certaines adresses IP. Par exemple, nous n'allons autoriser l'accs que pour les utilisateurs du sous rseau 192.168.42.0/24 : Ajoutez ce qui suit en bas de la section ACL de votre fichier /etc/squid/squid.conf : acl fortytwo_network src 192.168.42.0/24 Ajoutez ensuite ce qui suit, en haut de la section http_access de votre fichier /etc/squid/squid.conf : http_access allow fortytwo_network En utilisant les excellentes fonctionnalits de contrle d'accs de Squid, vous pouvez configurer l'usage des services Internet mandats par Squid pour n'tre accessibles que pendant les heures de bureau. Par exemple, nous restreindrons l'accs pour les employs d'un socit qui travaillent du lundi au vendredi, entre 9h00 et 17h00, et qui utilisent le sous rseau 10.1.42.0/42 : Ajoutez ce qui suit en bas de la section ACL de votre fichier /etc/squid/squid.conf : acl biz_network src 10.1.42.0/24 acl biz_hours time M T W T F 9:00-17:00 Ajoutez ensuite ce qui suit, en haut de la section http_access de votre fichier /etc/squid/squid.conf : http_access allow biz_network biz_hours Aprs avoir effectu les changements dans le fichier /etc/squid/squid.conf, enregistrez le fichier et redmarrez le serveur squid afin que les modifications soit effectives, en utilisant la commande suivante dans une console :

sudo /etc/init.d/squid restart

12.3. Rfrences
Site internet de Squid [http://www.squid-cache.org/]

61

Rseau

13. Systme de contrle de version


Le contre de version est l'art de grer les modification dans l'information. Cela a longtemps t un outil crucial pour les dveloppeurs, qui passent leur temps effectuer de petites modifications sur leurs logiciels et les annuler le lendemain. Mais l'utilit du contrle de version logiciel s'tend largement au-del du monde du dveloppement de logiciels. Partout o vous pourrez trouver des personnes qui utilisent l'informatique pour grer une information qui est rgulirement modifie, le contrle de version trouvera sa place.

13.1. Subversion
Subversion est un systme open source de contrle de version. En utilisant Subversion, vous pouvez enregistrer l'historique des fichiers sources et des documents. Il gre les fichiers et les rpertoires dans le temps. Une arborescence des fichiers est place dans un dpt centralis. Ce dpt est a peu prs identique un serveur de fichier ordinaire, sauf qu'il conserve trace de chaque changement effectu sur les fichiers et rpertoires. 13.1.1. Installation Pour fournir l'accs un dpt Subversion en utilisant le protocole HTTP, vous devez installer et configurer un serveur web. Il s'avre qu'Apache2 fonctionne avec Subversion. Reportez vous la section HTTP de la rubrique Apache2 pour installer et configurer Apache2. Pour fournir l'accs un dpt Subversion en utilisant le protocole HTTPS, vous devez installer et configurer un certificat numrique sur votre serveur web Apache2. Reportez vous la section HTTPS de la rubrique Apache2 pour installer et configurer un certificat numrique. Pour installer Subversion, utilisez la commande suivante l'invite d'un terminal :

sudo apt-get install subversion libapache2-svn

13.1.2. Configuration du serveur Ces tapes supposent que vous ayez install sur votre systme les paquets mentionns ci-dessus. Cette section explique comment crer un dpt Subversion et accder au projet. 13.1.2.1. Crer un dpt Subversion Le dpt Subversion peut tre cr en utilisant la commande suivante dans une console :

svnadmin create /path/to/repos/project

13.1.3. Modes d'accs Les dpts Subversion sont accessibles (vrifis) par de nombreuses mthodes diffrentes, sur un disque local, ou au travers de protocole rseau divers. L'emplacement d'un dpt est cependant, 62

Rseau toujours une URL. Le tableau indique comment les diffrents schmas d'URL sont relis aux mthodes d'accs disponibles.

Tableau 4.1. Modes d'accs


Schma file:// http:// Mthode d'accs accs direct au dpt (sur disque local) Accs via le protocole WebDAV au serveur web Apache2 fournissant Subversion Identique http://, mais avec cryptage SSL Accs via un protocol personnalis un serveur svnserve Indentique svn://, mais au travers un tunnel SSH

https:// svn://

svn+ssh://

Dans cette section, nous verrons comment configurer Subversion pour toutes ces mthodes d'accs. Nous voyons ici les bases. Pour une utilisation plus avance, rfrez-vous au svn book [http://svnbook.red-bean.com/] (NdT : livre non traduit en franais pour l'heure). 13.1.3.1. Accs direct au dpt (file://) C'est la plus simple des mthodes d'accs. Elle ne ncessite aucun serveur Subversion pour tre excute. Cette mthode d'accs est utilise lors d'un accs Subversion depuis la mme machine. La syntaxe de la commande, saisie dans un terminal, est la suivante :

svn co file:///chemin/vers/depot/nomduprojet

ou

svn co file://localhost/chemin/vers/depot/nomduprojet

Si vous ne spcifiez pas le nom d'hte, il y a trois barres obliques (///), deux pour le protocole (file, dans ce cas) plus la premire barre oblique de l'arborescence des fichiers. Si vous spcifiez le nom d'hte, vous devez utiliser deux barres obliques (//). Les permissions du dpt dpendent des permissions du systme de fichiers. Si l'utilisateur a les droits d'accs en lecture et criture, alors il peut extraire et dposer sur le serveur. 13.1.3.2. Accs par le protocole WebDAV (http://) Pour accder au dpt Subversion en utilisant le protocole WebDAV, vous devez configurer votre serveur web Apache 2. Vous devez ajouter les fragments de code suivants dans votre fichier /etc/apache2/apache2.conf : 63

Rseau
<Location /svn> DAV svn SVNPath /chemin/vers/depot AuthType Basic AuthName "Nom du dpt" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>

Ensuite, vous devez crer le fichier /etc/subversion/passwd. Ce fichier contient les informations d'authentification des utilisateurs. Pour ajouter une entre, par exemple ajouter un utilisateur, vous pouvez excuter la commande suivante dans un terminal :

htpasswd2 /etc/subversion/passwd nom_utilisateur

Cette commande vous demande de saisir le mot de passe. Une fois le mot de passe entr, l'utilisateur est ajout. Ds lors, pour accder au dpt, vous pouvez utiliser la commande suivante :
svn co http://nomduserveur/svn

Le mot de passe est transmis en clair, comme texte simple. Si vous craignez les fureteurs de mot de passe, nous vous conseillons d'utiliser un chiffrement SSL. Pour plus d'information, veuillez vous rfrer au chapitre suivant. 13.1.3.3. Accs par le protocole WebDAV avec un chiffrement SSL (https://) Accder au dpt Subversion via le protocole WebDAV avec cryptage SSL (https://) est similaire http:// sauf que vous devez installer et configurer un certificat numrique sur votre serveur web Apache2. Vous pouvez installer un certificat numrique mis par une autorit de certification comme Verisign. Autrement, vous pouvez installer votre propre certificat auto-sign. Cette tape suppose que vous avez install et configur un certificat numrique sur votre serveur web Apache2. Maintenant, pour accder au dpt Subversion, veuillez vous rfrer la section ci-dessus ! Les mthodes d'accs sont exactement les mmes, hormis le protocole. Vous devez utiliser https:// pour accder au dpt Subversion. 13.1.3.4. Accs via un protocole personnalis (svn://) Une fois le dpt Subversion cr, vous pouvez configurer le contrle d'accs. Vous pouvez diter le fichier /path/to/repos/project/conf/svnserve.conf pour cela. Par exemple, pour activer l'authentification, vous pouvez dcommenter les lignes suivantes dans le fichier de configuration :
# [general] # password-db = passwd

64

Rseau Aprs avoir dcomment ces lignes, vous pouvez grer la liste d'utilisateurs dans le fichier passwd. ditez donc le fichier passwd dans le mme rpertoire et ajoutez le nouvel utilisateur. La syntaxe se prsente ainsi :
username = password

Pour plus de dtails, rfrez-vous au fichier. Maintenant, pour accder Subversion via le protocole personnalis svn://, soit de la mme machine, soit d'une autre, vous pouvez excuter svnserver en utilisant la commande svnserve. La syntaxe se prsente ainsi :
$ # # # svnserve -d --foreground -r /path/to/repos -d -- daemon mode --foreground -- run in foreground (useful for debugging) -r -- root of directory to serve

For more usage details, please refer to: $ svnserve --help

Une fois la commande excute, Subversion dmarre en coutant le port par dfaut (3690). Pour accder au dpt du projet, vous devez excuter la commande suivante depuis un terminal :

svn co svn://nom_hote/projet project --username nom_utilisateur

Suivant la configuration du serveur, il vous demande un mot de passe. Une fois que vous vous tes authentifi, il vrifie le code sur le dpt Subversion. Pour synchroniser le dpt du projet avec votre copie locale, vous pouvez excuter la sous-commande update. La syntaxe de cette commande, saisie dans un terminal, est la suivante :

cd repertoire_du_projet ; svn update

Pour plus d'informations sur l'utilisation de chaque sous-commande de Subversion, vous pouvez vous rfrer au manuel. Par exemple, pour en savoir plus sur la commande co (checkout), excutez la commande suivante dans un terminal :
svn co help

13.1.3.5. Accs par un protocole personnalis avec un chiffrement SSL (svn+ssh://) La configuration et le processus du serveur est le mme que pour la mthode svn://. Pour plus de dtails, veuillez vous rfrer au chapitre prcdent. Dans cette tape, nous supposons que vous avez suivi l'tape prcdente et que vous avez dmarr le serveur Subversion en utilisant la commande svnserve. De mme, nous supposons que le serveur ssh s'excute sur cette machine et que les connexions entrantes y sont autorises. Pour vous en assurer, essayez de vous connecter la machine en utilisant 65

Rseau ssh. Si vous pouvez vous identifier, alors tout est parfait. Si vous ne pouvez pas vous identifier, rsolvez le problme avant de continuer. Le protocole svn+ssh:// est utilis pour accder au dpt Subversion en utilisant un chiffrement SSL. Le transfert de donnes est chiffr en utilisant cette mthode. Pour accder au dpt du projet (pour une vrification par exemple), vous devez utiliser la syntaxe suivante :

svn co svn+ssh://hostname/var/svn/repos/project

Vous devez utiliser le chemin complet (/chemin/vers/dpt/projet) pour accder au dpt Subversion en utilisant cette mthode d'accs. Suivant la configuration du serveur, il vous demande un mot de passe. Vous devez saisir le mot de passe que vous utilisez pour vous identifier via ssh. Une fois que vous vous tes authentifi, il vrifie le code sur le dpt Subversion.

13.2. Serveur CVS


CVS est un systme de gestion de version. Vous pouvez l'utiliser pour enregistrer l'historique des fichiers sources. 13.2.1. Installation Dans un terminal, saisissez la commande suivante pour installer cvs :

sudo apt-get install cvs

Aprs avoir install cvs, vous devez installer xinetd pour pouvoir dmarrer ou arrter le serveur cvs. l'invite de commande, saisissez la commande suivante pour installer xinetd :

sudo apt-get install xinetd

13.2.2. Configuration Une fois que vous avez install cvs, le dpt sera automatiquement initialis. Par dfaut, le dpt se trouve dans le rpertoire /var/lib/cvs. Vous pouvez changer ce chemin en excutant la commande suivante :

cvs -d /votre/nouveau/dpt/cvs init

Une fois le dpt initial paramtr, vous pouvez configurer xinetd pour qu'il dmarre le serveur CVS. Copiez les lignes suivantes dans le fichier /etc/xinetd/cvspserver.

service cvspserver { port = 2401

66

Rseau
socket_type = stream protocol = tcp user = root wait = no type = UNLISTED server = /usr/bin/cvs server_args = -f --allow-root /var/lib/cvs pserver disable = no }

Prenez bien soin de modifier le dpt si vous avez chang son rpertoire par dfaut (/var/lib/cvs). Une fois que vous avez configur xinetd, vous pouvez dmarrer le serveur cvs en excutant la commande suivante :

sudo /etc/init.d/xinetd start

Pour vous assurer que le serveur CVS est bien en cours d'excution, saisissez la commande suivante :

sudo netstat -tap | grep cvs

Quand vous excutez cette commande, vous devriez voir apparatre la ligne suivante ou quelque chose de similaire :

tcp 0 0 *:cvspserver *:* LISTEN

partir de l, vous pouvez continuer en ajoutant des utilisateurs, de nouveaux projets ou en grant le serveur CVS. CVS permet l'utilisateur d'ajouter des utilisateurs indpendamment du systme d'exploitation install. La manire la plus simple est probablement de passer par Utilisateurs Linux pour CVS, bien que cela puisse poser des problmes de scurit. Veuillez consulter le manuel de CVS pour plus d'informations. 13.2.3. Ajouter des projets Cette section dtaille comment ajouter un nouveau projet au dpt CVS. Crez le rpertoire et ajoutez-y le document et les fichiers sources ncessaires. Puis, utilisez la commande suivante pour ajouter votre projet au dpt CVS :

cd votre/projet cvs import -d :pserver:nomdutilisateur@nomdhote.com:/var/lib/cvs -m "Importation de mon projet dans

Vous pouvez utiliser la variable d'environnement CVSROOT pour stocker le rpertoire racine de CVS. Une fois la variable d'environnement CVSROOT exporte, vous pouvez vous dispenser d'utiliser l'option -d lors de l'emploi de la commande CVS ci-dessus. 67

Rseau la chaine de caractres nouveau_projet est une balise indiquant l'identit du diffuseur et ouverture est une balise de version. Elles n'ont aucune utilit dans ce contexte, mais elles doivent tre prsentes car CVS les exige. Lors de l'ajout d'un nouveau projet, l'utilisateur CVS par lequel vous passez doit possder les droits d'criture sur le dpt CVS (/var/lib/cvs). Par dfaut, le groupe src possde les droits d'criture sur le dpt CVS. Vous avez donc la possibilit d'ajouter l'utilisateur ce groupe et il pourra alors ajouter et grer les projets l'intrieur du dpt CVS.

13.3. Rfrences
Site internet de Subversion [http://subversion.tigris.org/] Livre sur Subversion [http://svnbook.red-bean.com/] Manuel de CVS [http://ximbiot.com/cvs/manual/cvs-1.11.21/cvs_toc.html]

68

Rseau

14. Bases de donnes


Ubuntu met disposition deux serveurs de bases de donnes. Ils sont : MySQL PostgreSQL Ils sont disponibles dans le dpt principal. Cette section dtaille comment installer et configurer ces deux serveurs.

14.1. MySQL
MySQL est un serveur de base de donnes multi-processus, multi-utilisateurs, rapide et stable. Il est conu pour rpondre aux besoins de systmes de production essentiels soumis des charges importantes, aussi bien que pour une intgration dans des logiciels grande diffusion. 14.1.1. Installation Pour installer MySQL, excutez la commande suivante dans un terminal :

sudo apt-get install mysql-server mysql-client

Une fois l'installation termine, le serveur MySQL devrait dmarrer automatiquement. Vous pouvez utiliser la commande suivante l'invite d'un terminal pour vrifier si le serveur MySQL fonctionne :

sudo netstat -tap | grep mysql

Quand vous excutez cette commande, vous devriez voir apparatre la ligne suivante ou quelque chose de similaire :

tcp 0 0 localhost.localdomain:mysql *:* LISTEN -

Si le serveur ne fonctionne pas correctement, saisissez la commande suivante pour le dmarrer :

sudo /etc/init.d/mysql restart

14.1.2. Configuration Par dfaut, le mot de passe administrateur n'est pas dfini. Une fois MySQL install, la premire chose faire est de configurer le mot de passe administrateur. Pour ce faire, utilisez les commandes suivantes :

sudo mysqladmin -u root password nouveau_mot_de_passe_sql

69

Rseau
sudo mysqladmin -p -u root -h localhost password nouveaumotdepasse

Vous pouvez diter le fichier /etc/mysql/my.cnf afin de configurer les rglages de base - fichier journal, numro de port, etc. Consultez le fichier /etc/mysql/my.cnf pour plus de dtails.

14.2. PostgreSQL
PostgreSQL est un systme de gestion de bases de donnes relationnelles objet qui a les mme fonctionnalits que les systmes commerciaux de gestion de bases de donnes traditionnels avec les amliorations que l'on peut trouver dans les systmes SGBD de nouvelle gnration. 14.2.1. Installation Pour installer PostgreSQL, excutez la commande suivante dans un terminal :

sudo apt-get install postgresql

Une fois que l'installation est termine, vous devez configurer le serveur PostgreSQL suivant vos besoins, bien que la configuration par dfaut soit utilisable. 14.2.2. Configuration Par dfaut, la connexion via TCP/IP est dsactive. PostgreSQL supporte de nombreuses mthodes d'authentification des clients. Par dfaut c'est la mthode d'authentification IDENT qui est utilise. Veuillez consulter le Guide d'administration de PostgreSQL [http://docs.postgresqlfr.org/8.1/admin.html]. Le paragraphe suivant part du principe que vous dsirez activer les connexions TCP/IP et utiliser la mthode MD5 pour l'authentification des clients. Les fichiers de configuration de PostgreSQL sont enregistrs dans le rpertoire /etc/postgresql/<version>/main. Par exemple, si vous installez PostgreSQL 7.4, les fichiers de configuration sont enregistrs dans le rpertoire /etc/postgresql/7.4/main. Pour configurer l'authentification par ident, ajoutez des entres dans le fichier
/etc/postgresql/7.4/main/pg_ident.conf.

Pour activer les connexions TCP/IP, modifiez le fichier /etc/postgresql/7.4/main/postgresql.conf. Trouvez la ligne #tcpip_socket = false et transformez-la en tcpip_socket = true. Vous pouvez aussi modifier tous les autres paramtres, si vous savez ce que vous faites! Pour plus d'informations, rfrez-vous au fichier de configuration ou la documentation de PostgreSQL. Par dfaut, les certificats des utilisateurs ne sont pas paramtrs pour une authentification MD5 des clients. C'est pourquoi il est tout d'abord ncessaire de configurer le serveur PostgreSQL pour qu'il utilise l'authentification trust des clients, puis de se connecter la base de donnes, 70

Rseau de configurer le mot de passe et enfin de revenir l'ancienne configuration pour utiliser l'authentification MD5 des clients. Pour activer l'authentification trust des clients, modifiez le fichier /etc/postgresql/7.4/main/pg_hba.conf. Dcommentez toutes les lignes existantes utilisant l'authentification ident et MD5 des clients et ajoutez la ligne suivante :

local all postgres trust sameuser

Ensuite, excutez la commande suivante pour dmarrer le serveur PostgreSQL :

sudo /etc/init.d/postgresql start

Une fois le serveur PostgreSQL dmarr, excutez la commande suivante l'invite d'un terminal afin de vous connecter la base de donne PostgreSQL servant d'exemple par dfaut.

psql -U postgres -d template1

La commande ci-dessus permet la connexion la base de donnes PostgreSQL template1 en tant qu'utilisateur postgres. Une fois connect au serveur PostgreSQL, vous serez face une invite de commande SQL. Vous pouvez alors utiliser la commande SQL suivante l'invite de psql afin de configurer le mot de passe de l'utilisateur postgres.

template1=# ALTER USER postgres with encrypted password 'your_password';

Aprs configuration du mot de passe, ditez le fichier /etc/postgresql/7.4/main/pg_hba.conf afin d'utiliser l'authentification MD5 : Commentez la ligne trust rcemment ajoute et ajoutez la ligne suivante :

local all postgres md5 sameuser

La configuration ci-dessus n'est absolument pas complte. Veuillez vous rfrer au Guide de l'administrateur PostgreSQL [http://www.postgresql.org/docs/8.1/static/admin.html] pour configurer d'autres paramtres.

71

Rseau

15. Services de Courriel


La transmission d'un courriel d'une personne une autre travers un rseau ou par Internet ncessite la mise en oeuvre de nombreux systmes travaillant ensemble. Chacun de ces systmes doit tre correctement configur pour que cette tche soit ralise. L'expditeur utilise un Mail User Agent (MUA), ou client courriel, afin d'envoyer le message travers un ou plusieurs Mail Transfer Agents (MTA), le dernier d'entre eux le remettant un Mail Delivery Agent (MDA) pour distribution dans la boite lettres du destinataire, d'o il sera retir par le client courriel du destinataire, gnralement par l'intermdiaire d'un serveur POP3 ou IMAP.

15.1. Postfix
Postfix est le Service de Transfert de Courriel (MTA) par dfaut d'Ubuntu. Il est conu pour tre sr autant que facile et rapide configurer. Il est compatible avec le MTA sendmail. Cette section dtaille l'installation et la configuration de postfix. Elle explique aussi comment en faire un serveur SMTP utilisant une connexion scurise (afin d'assurer la scurit des courriels envoys). 15.1.1. Installation Pour installerpostfix avec les fonctions SMTP-AUTH et Transport Layer Security (TLS), utilisez la commande suivante:

sudo apt-get install postfix

Appuyez simplement sur la touche Entre chaque fois que le processus d'installation vous posera une question, la configuration sera faite plus prcisment lors de la prochaine tape. 15.1.2. Configuration de base Pour configurerpostfix, utilisez la commande suivante:

sudo dpkg-reconfigure postfix

L'interface utilisateur sera alors affiche. Dans chaque cran, slectionnez les valeurs suivantes : OK Site Internet AUCUN courriel.exemple.fr courriel.exemple.fr, localhost.localdomain, localhost Non 127.0.0.0/8 Oui 0 + 72

Rseau AUCUN(E) Remplacer courriel.exemple.fr par le nom d'hte de votre serveur de messagerie.

15.1.3. Authentification SMTP Les prochaines tapes sont la configuration de postfix pour qu'il utilise SASL pour le SMTP AUTH (authentification sur le serveur SMTP). Au lieu de modifier le fichier de configuration directement, vous pouvez utiliser la commande postconf pour ajuster tous les paramtres de postfix. Les paramtres de configuration sont enregistrs dans le fichier /etc/postfix/main.cf. Par la suite si vous voulez modifier un paramtre en particulier, vous pouvez soit utiliser une commande, soit le changer manuellement dans le fichier. 1. Configurez Postfix pour qu'il demande une authentification (SMTP AUTH) en utilisant SASL (saslauthd) :

postconf -e 'smtpd_sasl_local_domain =' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous'

postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_ postconf -e 'inet_interfaces = all'

Ouvrez le fichier /etc/postfix/sasl/smtpd.conf et ajoutez les lignes suivantes la fin du fichier :

pwcheck_method: saslauthd mech_list: plain login

2.

Ensuite, configurez le certificat numrique pour TLS. Quand des questions vous seront poses, suivez les instructions et rpondez-y de faon approprie.

openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 sudo mv smtpd.key /etc/ssl/private/ sudo mv smtpd.crt /etc/ssl/certs/ sudo mv cakey.pem /etc/ssl/private/ sudo mv cacert.pem /etc/ssl/certs/

Vous pouvez recevoir le certificat numrique d'une autorit de certification. Sinon, vous pouvez le crer vous-mme. Rfrez-vous Section 10.3.4, Cration d'un Certificat Auto-sign (Self-Signed Certificate ou SSC) [55] pour plus de dtails. 73

Rseau 3. Configurez Postfix pour qu'il utilise un chiffrement par TLS la fois pour les courriels entrants et sortants :

postconf -e 'smtpd_tls_auth_only = no' postconf -e 'smtp_use_tls = yes' postconf -e 'smtpd_use_tls = yes' postconf -e 'smtp_tls_note_starttls_offer = yes' postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key' postconf postconf postconf postconf -e -e -e -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt' 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem' 'smtpd_tls_loglevel = 1' 'smtpd_tls_received_header = yes'

postconf -e 'smtpd_tls_session_cache_timeout = 3600s' postconf -e 'tls_random_source = dev:/dev/urandom' postconf -e 'myhostname = courriel.exemple.fr'

Aprs avoir excut toutes les commandes, le SMTP AUTH est configur avec postfix. Le certificat auto-sign a t cr pour TLS et il est configur avec postfix. Maintenant, le fichier /etc/postfix/main.cf doit ressembler a [../sample/postfix_configuration]. La configuration initiale de postfix est complte. Excutez la commande suivante pour dmarrer le dmon postfix :
sudo /etc/init.d/postfix start

Le dmon postfix est maintenant install, configur et fonctionne correctement. Postfix prend en charge SMTP AUTH comme dfini dans la RFC2554 [ftp://ftp.isi.edu/in-notes/rfc2554.txt]. Il est bas sur SASL [ftp://ftp.isi.edu/in-notes/rfc2222.txt]. Cependant, il est toujours ncessaire de paramtrer l'authentification SASL avant de pouvoir utiliser SMTP. 15.1.4. Configuration de SASL Libsasl2, sasl2-bin et libsasl2-modules sont ncessaire pour activer l'authentification (SMTP AUTH) via SASL. Vous pouvez installer ces applications si vous ne les avez pas dj installes.

sudo apt-get install libsasl2 sasl2-bin

Quelques modifications sont ncessaires pour que tout fonctionne correctement. En raison du fait que Postfix s'excute dans un environnement restreint au rpertoire /var/spool/postfix, SASL besoin d'tre configur pour qu'il s'excute dans la fausse racine (/var/run/saslauthd devient /var/spool/postfix/var/run/saslauthd) :

mkdir -p /var/spool/postfix/var/run/saslauthd rm -rf /var/run/saslauthd

Pour activer saslauthd, ditez le fichier /etc/default/saslauthd, et modifiez ou ajoutez le paramtre START. Afin de configurer saslauthd pour qu'il s'excute dans une fausse racine, ajoutez les 74

Rseau paramtres PWDIR, PIDFILE et PARAMS. Pour finir, configurez le paramtre MECHANISMS selon votre souhait. Le fichier doit ressembler cela :

# This needs to be uncommented before saslauthd will be run # automatically START=yes PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" # You must specify the authentication mechanisms you wish to use. # This defaults to "pam" for PAM support, but may also include # "shadow" or "sasldb", like this: # MECHANISMS="pam shadow" MECHANISMS="pam"

Si vous le prfrez, vous pouvez utiliser shadow au lieu de pam. Cela slectionne le transfert des mots de passe hach par MD5, ce qui est parfaitement sr. Le nom d'utilisateur et le mot de passe ncessaires pour l'authentification seront ceux des utilisateurs du systme que vous utilisez sur le serveur. Ensuite, mettez jour l'"tat" dpkg de /var/spool/portfix/var/run/saslauthd. Le script d'initialisation de saslauthd utilise ce paramtre pour crer le rpertoire manquant avec les permissions et le propritaire appropris :

dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

15.1.5. Tests La configuration de SMTP AUTH est complte. Il est maintenant temps de dmarrer et de tester la configuration. Vous pouvez excuter la commande suivante pour dmarrer le dmon SASL :
sudo /etc/init.d/saslauthd start

Pour vrifier si SMTP-AUTH et TLS fonctionnent correctement, excutez la commande suivante :


telnet courriel.exemple.fr 25

Aprs avoir tabli la connexion au serveur de courriel postfix, saisissez :


ehlo courriel.exemple.fr

Si vous voyez les lignes suivantes parmi d'autres, alors tout fonctionne correctement. Saisissez quit pour quitter.

250-STARTTLS

75

Rseau
250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME

15.2. Exim4
Exim4 est un autre agent de transfert de courriel (MTA : Message Transfer Agent) dvelopp l'Universit de Cambridge pour tre utilis sur des systmes Unix connects internet. Exim peut tre install la place de sendmail, mais la configuration de exim est compltement diffrente de celle de sendmail. 15.2.1. Installation Pour installer exim4, excutez la commande suivante :

sudo apt-get install exim4 exim4-base exim4-config

15.2.2. Configuration Pour configurer exim4, excutez la commande suivante :

sudo dpkg-reconfigure exim4-config

L'interface utilisateur s'affichera. Elle vous permettra de configurer de nombreux paramtres. Par exemple, dans exim4 les fichiers de configuration sont diviss en de multiples fichiers. Si vous dsirez les runir en un seul fichier, vous pouvez modifier la configuration en ce sens travers cette interface. Tous les paramtres que vous ajuster avec l'interface de configuration sont enregistrs dans le fichier /etc/exim4/update-exim4.conf.conf. Si vous souhaitez les modifier, soit vous excutez nouveau l'assistant de configuration, soit vous ditez manuellement ce fichier avec votre diteur de texte favori. La configuration tant faite, vous pouvez excuter la commande suivante pour rgnrer le fichier de configuration principal :

sudo update-exim4.conf

Le fichier de configuration principal sera gnr et stock dans /var/lib/exim4/config.autogenerated. aucun moment, vous ne devez diter manuellement le fichier de configuration principal /var/lib/exim4/config.autogenerated, car il est mis jour automatiquement chaque fois que vous excutez update-exim4.conf Vous pouvez excutez la commande suivante pour dmarrer le dmon exim4.

sudo /etc/init.d/exim4 start

76

Rseau faire : Cette section doit couvrir la configuration SMTP AUTH avec exim4.

15.3. Serveur Dovecot


Dovecot est un serveur de rception de courrier (MDA=Mail Delivery Agent), conu avec la scurit comme souci principal. Il prend en charge la majorit des formats de botes lettres : mbox ou Maildir. Cette section explique comment le paramtrer pour en faire un serveur imap ou pop3. 15.3.1. Installation Pour installer dovecot, excutez la commande suivante dans un terminal :

sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d

15.3.2. Configuration Pour configurer dovecot, vous pouvez modifier le fichier /etc/dovecot/dovecot.conf. Vous pouvez choisir le protocole que vous souhaitez utiliser. Il peut tre de type pop3, pop3s (pop3 scuris), imap ou imaps (imap scuris). La description de ces protocoles dpasse le champ de ce guide. Pour plus d'informations, rfrez-vous aux articles de wikipedia sur le POP3 [http://fr.wikipedia.org/wiki/Post_Office_Protocol] et l'IMAP [http://fr.wikipedia.org/wiki/Internet_Message_Access_Protocol]. L'IMAPS et le POP3S sont plus srs que les simples IMAP et POP3 car ils utilisent un chiffrement SSL pour tablir une connexion. Une fois que vous avez choisi un protocole, modifiez la ligne suivante dans le fichier /etc/dovecot/dovecot.conf :

protocols = pop3 pop3s imap imaps

Le protocole s'activera lorsque dovecot sera dmarr. Ensuite, ajoutez la ligne suivante dans la section pop3 du fichier /etc/dovecot/dovecot.conf :

pop3_uidl_format = %08Xu%08Xv

Puis, choisissez la boite aux lettres que vous utilisez. Dovecot prend en charge les formats maildir et mbox. Ce sont les formats de boite aux lettres les plus couramment utiliss. Ils ont chacun leurs propres avantages qui sont prsents sur le site web de dovecot [http://dovecot.org/doc/configuration.txt]. Une fois que vous avez choisi le type de votre boite aux lettres, ditez le fichier /etc/dovecot/dovecot.conf et modifiez la ligne suivante :

default_mail_env = maildir:~/Maildir # (pour maildir) ou default_mail_env = mbox:~/mail:INBOX=/var/spool/mail/%u # (pour mbox)

77

Rseau Vous devez configurer votre agent de transfert de courriel (MTA : Mail Transport Agent) pour transfrer les courriels entrants vers ce type de boite aux lettres si il est diffrent de celui que vous avez configur. Une fois que vous avez configur dovecot, dmarrez le dmon dovecot afin de tester votre configuration :
sudo /etc/init.d/dovecot start

Si vous avez activ l'imap ou le pop3, vous pouvez aussi essayer de vous connecter avec les commandes telnet localhost pop3 ou telnet localhost imap2. Si vous voyez quelque chose comme ce qui suit, alors l'installation est une russite :

bhuvan@rainbow:~$ telnet localhost pop3 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. +OK Dovecot ready.

15.3.3. Configuration SSL de Dovecot Pour configurer dovecot pour l'usage du protocole SSL, vous pouvez diter le fichier /etc/dovecot/dovecot.conf et modifier les lignes suivantes :

ssl_cert_file = /etc/ssl/certs/dovecot.pem ssl_key_file = /etc/ssl/private/dovecot.pem ssl_disable = no disable_plaintext_auth = no

Les fichiers cert et key sont crs automatiquement par dovecot lorsque vous l'installez. Merci de noter que ces cls ne sont pas signes et retourneront des erreurs "signature erronne" lors de la connexion depuis un client. Pour viter cela, vous pouvez utiliser vos propres certificats SSL. 15.3.4. Configuration du pare-feu pour un serveur de courrier lectronique Pour accder votre serveur de courrier depuis un autre ordinateur, vous devez configurer votre pare-feu pour permettre les connexions au serveur travers les ports ncessaires. IMAP - 143 IMAPS - 993 POP3 - 110 POP3S - 995

15.4. Mailman
Mailman est un programme libre permettant la gestion de discussions par courrier lectronique et de listes de bulletins d'information lectroniques. De nombreuses listes de diffusion libres (dont toutes 78

Rseau les listes de diffusion Ubuntu [http://lists.ubuntu.com]) utilisent Mailman comme logiciel de gestion de liste de diffusion. Il est puissant, facile installer et grer. 15.4.1. Installation Mailman offre aux administrateurs et utilisateurs une interface web. Il ncessite donc la prsence d'apache et du support de mod_perl. Mailman utilise un serveur de courrier externe pour envoyer et recevoir les messages. Il fonctionne parfaitement avec les serveurs de courrier suivants : Postfix Exim Sendmail Qmail Nous allons voir comment installer Mailman, le serveur apache et le serveur de courriels Exim. Si vous dsirez installer Mailman associ un serveur de courriers diffrent, veuillez consulter la section "rfrences". 15.4.1.1. Apache2 Pour installer apache2, merci de consulter Section 10.1, Installation [48]. 15.4.1.2. Exim4 Pour installer Exim4, excutez les commandes suivantes dans un terminal :

sudo apt-get install exim4 sudo apt-get install exim4-base sudo apt-get install exim4-config

Une fois exim4 install, les fichiers de configuration sont stocks dans le rpertoire /etc/exim4. Par dfaut, dans Ubuntu les fichiers de configuration de exim4 sont diviss en plusieurs fichiers. Vous pouvez changer ce comportement en modifiant le paramtre suivant dans le fichier
/etc/exim4/update-exim4.conf

dc_use_split_config='true' 15.4.1.3. Mailman Pour installer Mailman, utilisez la commande suivante l'invite d'un terminal :

sudo apt-get install mailman

Elle copie les fichiers d'installation dans le rpertoire /usr/lib/cgi-bin/mailman, installe les scripts CGI dans le rpertoire /usr/lib/cgi-bin/mailman, cre l'utilisateur linux list et cre le groupe linux list. Le processus Mailman sera la proprit de cet utilisateur. 79

Rseau 15.4.2. Configuration Cette section suppose que vous ayez install Mailman, Apache2 et Exim4 avec succs. Maintenant, vous avez juste besoin de les configurer. 15.4.2.1. Apache2 Une fois Apache2 install, vous pouvez ajoutez les lignes suivantes dans le fichier /etc/apache2/apache2.conf :

Alias /images/mailman/ "/usr/share/images/mailman/" Alias /pipermail/ "/var/lib/mailman/archives/public/"

Mailman utilise Apache2 pour excuter ses scripts CGI. Les scripts CGI de Mailman sont installs dans le rpertoire /usr/lib/cgi-bin/mailman. C'est pourquoi l'URL de Mailman sera http://hostname/cgi-bin/mailman/. Vous pouvez modifier le fichier /etc/apache2/apache2.conf si vous souhaitez changer ce comportement. 15.4.2.2. Exim4 Une fois Exim4 install, vous pouvez dmarrer le serveur Exim grce la commande suivante entre l'invite d'un terminal :

sudo apt-get /etc/init.d/exim4 start

Afin que Mailman utilise Exim4, vous devez de configurer Exim4. Comme mentionn prcdemment, par dfaut, Exim4 utilise de multiples fichiers de configuration, de types diffrents. Pour plus de dtails, veuillez vous rfrer au site internet de Exim [http://www.exim.org]. Pour excuter Mailman, il nous faut ajouter un nouveau fichier de configuration aux types de configuration suivants : Principal Transport Routeur Exim cre un fichier de configuration principal en triant tous ces petits fichiers de configuration. C'est pourquoi, l'ordre de ces fichiers de configuration est trs important. 15.4.2.3. Principal Tous les fichiers de configuration appartenant la catgorie principale sont rangs dans le rpertoire /etc/exim4/conf.d/main/. Vous pouvez ajouter le contenu suivant un nouveau fichier, appel 04_exim4-config_mailman :

# start # Home dir for your Mailman installation -- aka Mailman's prefix # directory. # On Ubuntu this should be "/var/lib/mailman"

80

Rseau
# This is normally the same as ~mailman MM_HOME=/var/lib/mailman # # User and group for Mailman, should match your --with-mail-gid # switch to Mailman's configure script. Value is normally "mailman" MM_UID=list MM_GID=list # # Domains that your lists are in - colon separated list # you may wish to add these into local_domains as well domainlist mm_domains=hostname.com # # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # # These values are derived from the ones above and should not need # editing unless you have munged your mailman installation # # The path of the Mailman mail wrapper script MM_WRAP=MM_HOME/mail/mailman # # The path of the list config file (used as a required file when # verifying list addresses) MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck # end

15.4.2.4. Transport Tous les fichiers de configuration appartenant la catgorie transport sont rangs dans le dossier /etc/exim4/conf.d/transport/. Vous pouvez ajouter le contenu suivant un nouveau fichier, appel 40_exim4-config_mailman :

mailman_transport: driver = pipe command = MM_WRAP \ '${if def:local_part_suffix \ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ {post}}' \ $local_part current_directory = MM_HOME home_directory = MM_HOME user = MM_UID group = MM_GID

15.4.2.5. Routeur Tous les fichiers de configuration appartenant la catgorie routeur sont rangs dans le dossier /etc/exim4/conf.d/router/. Vous pouvez ajouter le contenu suivant un nouveau fichier, appel 101_exim4-config_mailman :

mailman_router:

81

Rseau
driver = accept require_files = MM_HOME/lists/$local_part/config.pck local_part_suffix_optional local_part_suffix = -bounces : -bounces+* : \ -confirm+* : -join : -leave : \ -owner : -request : -admin transport = mailman_transport

L'ordre des fichiers de configuration des catgories principale et transport est indiffrent. Mais l'ordre des fichiers de la catgorie routeur doit tre respect. Ce fichier particulier doit apparatre avant le fichier 200_exim4-config_primary. Ces deux fichiers de configuration contiennent le mme type d'information. Le premier fichier est prioritaire. Pour plus de dtails, veuillez vous reporter la section "rfrences" 15.4.2.6. Mailman Une fois Mailman install, vous pouvez l'utiliser grce la commande suivante :

sudo /etc/init.d/mailman start

Une fois Mailman install, vous devriez crer la liste de diffusion par dfaut. Utilisez la commande suivante pour crer la liste de diffusion :

sudo /usr/sbin/newlist mailman

Enter the email address of the person running the list: bhuvan at ubuntu.com Initial mailman password: To finish creating your mailing list, you must edit your /etc/aliases (or equivalent) file by adding the following lines, and possibly running the `newaliases' program: ## mailman mailing list mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" Hit enter to notify mailman owner... #

Nous avons configur exim pour qu'il reconnaisse tous les courriels issus de Mailman. Il n'est donc pas indispensable de crer de nouvelles entres dans /etc/aliases. Si vous avez procd des 82

Rseau modifications des fichiers de configuration, merci de vous assurer de redmarrer ces services avant de passer la section suivante. 15.4.3. Administration Nous supposons que vous avez fait une installation par dfaut. Les scripts cgi de mailman sont toujours dans le rpertoire /usr/lib/cgi-bin/mailman/. Mailman fournit un outil d'administration web. Pour accder cette page, ouvrez avec votre navigateur l'adresse suivante : http://hostname/cgi-bin/mailman/admin La liste de diffusion par dfaut, mailman, apparatra sur cet cran. Si vous cliquez sur le nom de la liste, il vous sera demand votre mot de passe d'authentification. Si vous entrez le bon mot de passe, alors vous pourrez modifier les paramtres d'administration de cette liste de diffusion. Vous pouvez crer une nouvelle liste de diffusion, en ligne de commande, avec l'utilitaire /usr/sbin/newlist. Sinon, vous pouvez aussi crer une nouvelle liste de diffusion en utilisant l'interface web. 15.4.4. Utilisateurs Mailman fournit aux utilisateurs une interface web. Pour accder cette page, ouvrez avec votre navigateur l'adresse suivante : http://hostname/cgi-bin/mailman/listinfo La liste de destinataires par dfaut, mailman, apparatra sur cet cran. Si vous cliquez sur le nom de la liste, vous verrez apparatre le formulaire d'inscription. Vous pourrez alors saisir votre adresse lectronique, votre nom (non obligatoire) et votre mot de passe afin de vous inscrire. Un courriel de confirmation vous sera adress. Vous pourrez alors suivre les instruction incluses pour vous inscrire. 15.4.5. Rfrences GNU Mailman - Manuel d'installation [http://www.list.org/mailman-install/index.html] Guide partique - Utiliser Exim4 avec Mailman 2.1 [http://www.exim.org/howto/mailman21.html]

83

Rseau

16. Synchronisation temporelle avec NTP


Cette page dcrit diffrentes mthodes pour maintenir votre ordinateur l'heure. C'est utile pour les serveurs, mais n'est pas ncessaire (ou souhait) pour des machines de bureau. NTP est un protocole TCP/IP permettant de synchroniser les horloges travers un rseau. De manire basique, un client demande l'heure actuelle un serveur et l'utilise pour ajuster sa propre horloge. Derrire cette description simple se cache une grande complexit ; il y a plusieurs niveaux de serveurs NTP, dans le premier niveau les serveurs NTP sont connects des horloges atomiques (souvent via le signal GPS) et les serveurs du deuxime et troisime niveau se rpartissent la charge du traitement des requtes travers internet. C'est pourquoi le logiciel client est bien plus complexe que ce que vous pouvez penser. Il doit dterminer les dlais de communication et ajuster l'horloge de manire ne pas perturber tous les autres processus qui s'excutent sur le serveur. Mais, heureusement, toute cette complexit n'est pas visible pour vous ! Ubuntu dispose de deux mthodes pour mettre jour automatiquement votre horloge : ntpdate et ntpd.

16.1. Ntpdate
Par dfaut, Ubuntu utilise ntpdate et l'excutera lors de l'initialisation pour mettre jour votre horloge en utilisant le serveur NTP d'Ubuntu. Comme une horloge de serveur est susceptible de se dcaler considrablement entre deux redmarrages, il peut tre judicieux de corriger l'horloge de temps en temps. La faon la plus simple pour faire cela est d'utiliser cron pour l'excuter tous les jours. Avec votre diteur de texte favori, crez un fichier /etc/cron.daily/ntpdate contenant :
ntpdate ntp.ubuntu.com

16.2. Ntpd
Ntpdate est un utilitaire un peu brut ; il peut uniquement ajuster l'horloge une fois par jour en faisant une grosse correction. Le dmon NTP ntpd est beaucoup plus subtil. Il calcul la drive de l'horloge de votre systme et l'ajuste continuellement, aussi il n'y a pas de corrections importantes qui peuvent entraner des journaux incohrents par exemple. Cela utilise un peu de puissance de traitement et de mmoire, mais pour un serveur moderne c'est ngligeable. Pour paramtrer ntpd :
sudo apt-get install ntp-simple

16.3. Modifier les serveurs de temps


Dans les deux cas prcdant, votre systme utilisera par dfaut le serveur NTP d'Ubuntu l'adresse ntp.ubuntu.com. C'est correct, mais vous pouvez vouloir utiliser plusieurs serveurs afin d'augmenter la prcision et l'endurance du systme et vous voulez peut-tre utiliser des serveurs qui sont plus 84

Rseau proche de chez vous. Pour faire cela avec ntpdate, changez le contenu de /etc/cron.daily/ntpdate par :
ntpdate ntp.ubuntu.com pool.ntp.org

Et pour ntpd ditez /etc/ntp.conf pour y inclure les lignes des serveurs supplmentaires :
ntp.ubuntu.com server pool.ntp.org

Vous avez peut-tre remarqu pool.ntp.org dans l'exemple prcdant. C'est une trs bonne ide d'utiliser un serveur DNS rpartition de charge pour renvoyer un serveur NTP depuis un pool (groupe de serveurs), en rpartissant la charge entre plusieurs serveurs diffrents. Encore mieux, il y a des pools pour diffrentes rgions, par exemple, si vous habitez en France, alors vous pouvez utiliser fr.pool.ntp.org au lieu de pool.ntp.org. Regardez sur http://www.pool.ntp.org/ pour plus de dtails. Vous pouvez aussi rechercher sur Internet des serveurs NTP dans votre rgion, et les rajouter votre configuration. Pour tester si un serveur fonctionne, saisissez uniquement sudo ntpdate ntp.nom.serveur dans un terminal et regardez ce qui se passe.

16.4. Pages connexes


Le support de NTP [http://ntp.isc.org/bin/view/Support/WebHome] FAQ et guides sur NTP [http://www.ntp.org/ntpfaq/NTP-a-faq.htm]

85

Chapitre 5. Rseaux Windows


Les rseaux informatiques sont souvent composs de systmes divers, et bien qu'un rseau uniquement compos d'ordinateurs de bureaux et de serveurs Ubuntu soit certainement amusant, certains environnements rseaux comportent a la fois des ordinateurs sous Ubuntu et d'autres sous Microsoft Windows fonctionnant ensemble en harmonie. Cette section du Server Guide Ubuntu introduit les principes et outils utiliss pour la configuration de votre serveur Ubuntu et l'change de ressources rseaux avec des ordinateurs sous Windows.

86

Rseaux Windows

1. Introduction
Pour tablir avec succs un rseau entre votre systme Ubuntu et des clients Windows, il faut fournir et intgrer les services utiliss couramment dans les environnements Windows. Ces services permettent aux ordinateurs ey aux utilisateurs prsents sur le rseau de partager de l'information et des donnes. Ils peuvent tre classifis en trois catgories principales selon leur fonctionnalit. Services de partage de fichiers et d'imprimantes. Utiliser le protocole Server Message Block (SMB) pour faciliter le partage de fichiers, de dossiers, de volumes et d'imprimantes travers le rseau. Services d'annuaire. Partager l'information vitale sur les ordinateurs et utilisateurs du rseau avec des technologies telles que le Lightweight Directory Access Protocol (LDAP) et le Microsoft Active Directory. Authentification et accs. tablir l'identit d'un ordinateur ou d'un utilisateur et dterminer l'information laquelle l'ordinateur ou l'utilisateur a l'autorisation d'accder en utilisant des principes et technologies telles les droits d'accs sur les fichiers, les politiques de groupes, et le service d'authentification Kerberos. Heureusement, votre systme Ubuntu fournit tous ces outils pour partager des ressources rseaux avec des clients Windows. Une des principaux logiciels fourni avec Ubuntu est la suite d' applications SAMBA et le serveur SMB pour les rseaux Windows. Cette section du Server Guide Ubuntu vous explique rapidement l'installation et la configuration des applications et utilitaires serveur SAMBA. De la documentation plus dtaille propos de SAMBA dpasse le but de ce guide mais existe sur le site web de SAMBA [http://www.samba.org].

87

Rseaux Windows

2. Installer SAMBA
A l'invite systme, entrez la commande suivante pour installer les applications serveur SAMBA :

sudo apt-get install samba

88

Rseaux Windows

3. Configurer SAMBA
Vous pouvez configurer le serveur SAMBA en ditant le fichier /etc/samba/smb.conf pour modifier les paramtres par dfaut ou en ajouter de nouveaux. Des informations supplmentaires sur chaque paramtre sont disponibles dans les commentaires du fichier /etc/samba/smb.conf ou en regardant la page manuel du fichier /etc/samba/smb.conf en entrant la commande suivante dans un terminal :

man smb.conf

Avant de modifier le fichier de configuration, vous devriez faire une copie du fichier originel et le protger contre l'criture pour avoir les paramtres originels comme rfrence et ainsi le rutiliser si ncessaire. Sauvegardez le fichier /etc/samba/smb.conf :

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.originel

Maintenant, ditez le fichier /etc/samba/smb.conf et faites vos modifications.

3.1. Serveur
En supplment de la suite logicielle SAMBA pour le partage de fichiers et d'imprimantes, Ubuntu inclut aussi d'autres applications serveur puissantes destines fournir des fonctionnalits rseau supplmentaires et similaires celles fournies par les serveurs Windows aux clients Windows. Par exemple, Ubuntu offre une gestion centralise des ressources rseau telles que les ordinateurs ou les utilisateurs grce Directory Services (services d'annuaire), et facilite l'identification et la gestion des permissions des ordinateurs et des utilisateurs grce Authentication Services (services d'authentification). Les sections suivantes voqueront plus en dtails SAMBA et les technologies associes, telles que le serveur Lightweight Directory Access Protocol (LDAP) ou le serveur d'authentification Kerberos. Vous apprendrez aussi quelques directives de configuration disponibles pour SAMBA qui facilitent l'intgration dans un rseau comportant des clients et des serveurs Windows. 3.1.1. Active Directory Active Directory est une implmentation propritaire de Microsoft des services d'annuaire et est utilis pour partager l'information sur les ressources du rseau et ses utilisateurs. En plus de fournir une source centralise de cette information, Active Directory agit aussi comme une autorit centralise de scurit et d'authentification pour le rseau. Active Directory, qui combine des capacits traditionnellement trouves dans des systmes d'annuaire distincts et spcialiss, simplifie l'intgration, la gestion et la scurit des ressources rseau. Le paquet SAMBA peut tre configur pour utiliser les services Active Directory d'un contrleur de domaine Windows. 89

Rseaux Windows 3.1.1.1. LDAP L'application serveur LDAP fournit les fonctionnalits de service d'annuaire (Directory Services) aux ordinateurs Windows d'une manire trs similaire aux services Microsoft Active Directory. Ces services comprennent la gestion des identits et des relations entre ordinateurs, utilisateurs, et groupes d'ordinateurs ou d'utilisateurs qui font partie du rseau. Ils procurent une manire cohrente de dcrire, localiser et grer ces ressources. L'implmentation libre de LDAP disponible pour votre systme Ubuntu se nomme OpenLDAP. Sur Ubuntu, les processus serveur responsables du traitement des requtes OpenLDAP et de la propagation des donnes d'un serveur LDAP un autre sont slapd et slurpd. OpenLDAP peut tre utilis conjointement avec SAMBA pour fournir les services de partage des fichiers, d'imprimantes et les services d'annuaire tout comme le ferait un contrleur de domaine Windows pour autant que SAMBA soit compil avec le support LDAP. 3.1.1.2. Kerberos Le systme de scurisation des authentifications Kerberos est un service standardis fournissant une authentification aux ordinateurs et aux utilisateurs grce un serveur centralis qui accorde des tickets d'autorisation crypts. Ceux-ci sont accepts comme authentification par tout autre ordinateur utilisant Kerberos. Parmi les avantages de l'authentification avec Kerberos, on peut citer l'authentification rciproque, l'authentification par procuration, l'interoprabilit et une gestion simplifie des relations de confiance. Les processus serveurs principaux qui grent l'authentification Kerberos et l'administration de la base de donnes Kerberos sous Ubuntu sont krb5kdc et kadmin. SAMBA peut utiliser Kerberos comme mcanisme pour authentifier des ordinateurs et des utilisateurs aux cts d'un contrleur de domaine Windows. cette fin, il faut que Kerberos soit install sur le systme Ubuntu, et le fichier /etc/samba/smb.conf doit tre modifi pour choisir le mode convenable de realm et security. Par exemple, modifiez le fichier /etc/samba/smb.conf et ajoutez les valeurs : realm = NOM_DOMAINE security = ADS dans le fichier, et enregistrez-le. Assurez-vous de remplacer l'expression NOM_DOMAINE de l'exemple ci-dessus par le nom rel de votre propre domaine Windows. Vous devrez redmarrer les dmons SAMBA pour appliquer ces changements. Redmarrez les dmons SAMBA en entrant la commande suivante dans un terminal :

sudo /etc/init.d/samba restart

3.1.2. Comptes d'ordinateurs Les comptes d'ordinateur sont utiliss dans Directory Services pour identifier de manire unique les ordinateurs d'un rseau, et sont traits de la mme manire que les utilisateurs en terme de scurit. 90

Rseaux Windows Les comptes d'ordinateurs peuvent avoir des mots de passe tout comme les comptes utilisateurs, et font l'objet d'une autorisation pour accder aux ressources du rseau. Par exemple, si un utilisateur du rseau avec un compte valide pour un rseau en particulier essaye de s'authentifier partir d'un ordinateur qui n'a pas de compte d'ordinateur valide, suivant la politique mise en uvre sur le rseau, il peut lui tre refus l'accs si cet ordinateur ne fait pas partie des ordinateurs autoriss. Un compte d'ordinateur peut tre ajout au fichier de mots de passe SAMBA, pourvu que le nom de l'ordinateur ajouter existe dj comme un nom de compte d'utilisateur valide dans la base de donnes locale. Pour ajouter un compte d'ordinateur ou de machine au fichier de mots de passe SAMBA, il faut utiliser la commande smbpasswd dans un terminal comme ceci :

sudo smbpasswd -a -m NOM_ORDINATEUR

Assurez-vous de remplacer la chane COMPUTER_NAME dans l'exemple ci-dessus avec le nom de l'ordinateur pour lequel vous voulez ajouter un compte de machine. 3.1.3. Permissions de fichier Les permissions de fichiers dfinissent les droits explicites qu'un ordinateur ou un utilisateur a sur un dossier, fichier ou groupe de fichiers particulier. De telles permissions peuvent tre dfinies en ditant le fichier /etc/samba/smb.conf et en spcifiant explicitement les permissions d'un partage de fichiers dfini. Par exemple, si vous avez dfini un partage SAMBA intitul sourcedocs et souhaitez donner les droits en lecture seule au groupe d'utilisateurs appel planning, mais souhaitez autoriser l'accs au partage en criture par le groupe appel auteurs et l'utilisateur nomm richard, alors vous pouvez diter le fichier /etc/samba/smb.conf, et ajouter les lignes suivantes sous l'entre [sourcedocs] : read list = @planning write list = @auteurs, richard Sauvegardez /etc/samba/smb.conf pour que les changements prennent effet. Une autre possibilit pour les droits d'accs est de dclarer des permissions administratives pour une ressource partage particulire. Les utilisateurs ayant des permissions administratives peuvent lire, crire, ou modifier toute information contenue dans la ressource pour laquelle ils ont explicitement reu ce type de droits. Par exemple, si vous voulez donner l'utilisateur melissa des permissions administratives sur le partage sourcedocs de l'exemple, vous devez diter le fichier /etc/samba/smb.conf et ajouter la ligne suivante sous l'entre [sourcedocs] : admin users = melissa Sauvegardez /etc/samba/smb.conf pour que les changements prennent effet.

3.2. Clients
Ubuntu comporte des applications clientes et des capacits pour accder aux ressources partages grce au protocole SMB. Par exemple, l'utilitaire nomm smbclient permet d'accder aux systmes 91

Rseaux Windows de fichiers partags distance d'une faon similaire un client FTP. Pour accder un rpertoire partag connu comme documents, propos par un ordinateur sous Windows, nomm bill, on utilisera smbclient, avec une commande de ce type dans un terminal :

smbclient //bill/documents -U <nomutilisateur>

Il vous sera alors demand le mot de passe de l'utilisateur spcifi aprs le paramtre -U, et aprs la russite de l'authentification, vous obtiendrez une invite vous permettant de manipuler ou transfrer des fichiers avec une syntaxe semblable celle d'un client FTP en mode texte. Pour plus d'informations sur l'utilitaire smbclient, consultez la page du manuel avec la commande :

man smbclient

Le montage d'une ressource rseau fournie par le protocole SMB est aussi possible grce la commande mount. Par exemple, pour monter un rpertoire nomm code-projet disponible sur un serveur Windows developpement pour l'utilisateur toto sur votre systme Ubuntu dans le rpertoire /mnt/pcode, vous devrez entrer la commande suivante l'invite :

mount -t smbfs -o username=toto //developpement/code-projet- /mnt/pcode

Il vous sera alors demand d'entrer le mot de passe utilisateur, et aprs vous tre authentifi, le contenu de la ressource partage sera accessible localement via le point de montage spcifi par le dernier argument de la commande mount. Pour dconnecter la ressource partage, utilisez simplement la commande umount comme vous le feriez avec n'importe quel autre systme de fichiers mont. Par exemple :

umount /mnt/pcode

3.2.1. Comptes d'utilisateurs Les comptes d'utilisateurs dfinissent des personnes avec un certain niveau d'autorisation pour utiliser un certain ordinateur et des ressources rseau. Typiquement, dans un environnement rseau, un compte d'utilisateur est fourni chaque personne autorise accder un ordinateur ou un rseau, o des politiques de scurit et des permissions dfinissent alors de quels droits explicites ce compte d'utilisateur dispose. Pour dfinir des utilisateurs rseau SAMBA sur votre systme Ubuntu, vous pouvez utiliser la commande smbpasswd. Par exemple, pour ajouter un utilisateur SAMBA votre systme Ubuntu avec le nom d'utilisateur toto, vous pourriez entrer ceci l'invite de commande :

smbpasswd -a toto

L'application smbpasswd vous demandera alors d'entrer un mot de passe pour l'utilisateur : 92

Rseaux Windows

Nouveau mot de passe SMB :

Entrez le mot de passe que vous dsirez fixer pour l'utilisateur, et l'application smbpasswd vous demandera de confirmer le mot de passe:
Retapez le nouveau mot de passe SMB :

Confirmez le mot de passe et smbpasswd ajoutera une entre pour l'utilisateur au fichier de mots de passe SAMBA. 3.2.2. Groupes Les Groupes dfinissent un ensemble d'ordinateurs ou d'utilisateurs qui ont un niveau d'accs commun des ressources rseau particulires, et offrent une certaine granularit dans le contrle d'accs de telles ressources. Par exemple, si un groupe qa est dfini et contient les utilisateurs freda, danika, et rob, et un second groupe support est dfini et contient les utilisateurs danika, jeremy et vincent, alors certaines ressources rseau configures pour autoriser l'accs au groupe qa autoriseraient par consquent l'accs freda, danika et rob, mais pas jeremy ou vincent. Comme l'utilisateur danika appartient aux deux groupes qa et support, elle sera capable d'accder aux ressources configures comme accessibles par les deux groupes, tandis que tous les autres utilisateurs n'auront accs qu'aux ressources autorisant explicitement le groupe dont ils font partie. Lors de la dfinition de groupes dans le fichier de configuration de SAMBA, /etc/samba/smb.conf, la syntaxe reconnue est l'ajout d'un prfixe "@" au nom de groupe. Par exemple, si vous souhaitez dfinir un groupe nomm sysadmin dans une certaine section du fichier /etc/samba/smb.conf, vous
devez entrer le nom de groupe @sysadmin.

3.2.3. Stratgie de groupe Les stratgies de groupes dfinissent certains rglages de configuration SAMBA en rapport avec le domaine ou le groupe de travail auquel appartient le compte d'ordinateur, ainsi que d'autres rglages globaux du serveur SAMBA. Par exemple, si le serveur SAMBA appartient au groupe de travail Windows appel NIVEAU1, le fichier /etc/samba/smb.conf pourrait alors tre modifi de la manire suivante : workgroup = NIVEAU1 Enregistrez le fichier et redmarrez les dmons SAMBA pour appliquer le changement. D'autres rglages de stratgie globale importants comprennent la chane du serveur qui dfinit le nom serveur NETBIOS qui sera annonc aux autres machines du rseau Windows par votre systme Ubuntu. C'est le nom par lequel votre systme Ubuntu sera reconnu par les clients Windows et d'autres ordinateurs capables de parcourir le rseau avec le protocole SMB. De plus, vous pouvez indiquer le nom et l'emplacement du fichier journal du serveur SAMBA en utilisant la directive log file dans le fichier /etc/samba/smb.conf. 93

Rseaux Windows Quelques directives supplmentaires influenant la stratgie de groupe globale concernent la spcification de la nature globale des ressources partages. Par exemple, l'emplacement de certaines directives sous la section [global] du fichier /etc/samba/smb.conf concernera toutes les ressources partages, sauf si une directive identique remplace celle-ci sous la section d'une ressource partage particulire. Vous indiquez que tous les partages peuvent tre parcourus par tous les clients du rseau en plaant la directive browseable, qui prend une valeur boolenne, sous la section [global] du fichier /etc/samba/smb.conf. C'est--dire que si vous modifiez le fichier en ajoutant la ligne : browseable = true sous la section [global] de /etc/samba/smb.conf, tous les partages offerts par votre systme Ubuntu via SAMBA pourront tre parcourus par tous les clients autoriss, sauf si un partage particulier contient une directive browseable = false qui prendra le pas sur la directive globale. Les directives public et writeable sont d'autres exemples qui fonctionnent de la mme manire. La directive public prend une valeur boolenne et dtermine si une ressource partage particulire est visible par tous les clients, autoriss ou non. La directive writeable prend galement une valeur boolenne et dtermine si une ressource partage particulire est accessible en criture par n'importe quel client du rseau.

94

Annexe A. Creative Commons by Attribution-ShareAlike 2.0


CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. License THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. 1. Definitions. a. "Collective Work" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work in its entirety in unmodified form, along with a number of other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License. b. "Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or sound recording, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered a Derivative Work for the purpose of this License. c. "Licensor" means the individual or entity that offers the Work under the terms of this License. d. "Original Author" means the individual or entity who created the Work. e. "Work" means the copyrightable work of authorship offered under the terms of this License. f. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received

95

Creative Commons by Attribution-ShareAlike 2.0 express permission from the Licensor to exercise rights under this License despite a previous violation. g. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. 2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws. 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: a. to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work as incorporated in the Collective Works; b. to create and reproduce Derivative Works; c. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission the Work including as incorporated in Collective Works; d. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission Derivative Works. e. For the avoidance of doubt, where the work is a musical composition: i. "Performance Royalties Under Blanket Licenses." Licensor waives the exclusive right to collect, whether individually or via a performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digital performance (e.g. webcast) of the Work. ii. "Mechanical Rights and Statutory Royalties." Licensor waives the exclusive right to collect, whether individually or via a music rights society or designated agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from the Work ("cover version") and distribute, subject to the compulsory license created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions). f. "Webcasting Rights and Statutory Royalties." For the avoidance of doubt, where the Work is a sound recording, Licensor waives the exclusive right to collect, whether individually or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other jurisdictions). The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. All rights not expressly granted by Licensor are hereby reserved. 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: 96

Creative Commons by Attribution-ShareAlike 2.0 a. You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any reference to such Licensor or the Original Author, as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any reference to such Licensor or the Original Author, as requested. b. You may distribute, publicly display, publicly perform, or publicly digitally perform a Derivative Work only under the terms of this License, a later version of this License with the same License Elements as this License, or a Creative Commons iCommons license that contains the same License Elements as this License (e.g. Attribution-ShareAlike 2.0 Japan). You must include a copy of, or the Uniform Resource Identifier for, this License or other license specified in the previous sentence with every copy or phonorecord of each Derivative Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Derivative Works that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder, and You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Derivative Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Derivative Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Derivative Work itself to be made subject to the terms of this License. c. If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and give the Original Author credit reasonable to the medium or means You are utilizing by conveying the name (or pseudonym if applicable) of the Original Author if supplied; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and in the case of a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). Such credit may be implemented in any reasonable manner; provided, however, that in the case

97

Creative Commons by Attribution-ShareAlike 2.0 of a Derivative Work or Collective Work, at a minimum such credit will appear where any other comparable authorship credit appears and in a manner at least as prominent as such other comparable authorship credit. 5. Representations, Warranties and Disclaimer UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. Termination a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works or Collective Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 8. Miscellaneous a. Each time You distribute or publicly digitally perform the Work or a Collective Work, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. b. Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without 98

Creative Commons by Attribution-ShareAlike 2.0 further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, neither party will use the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. Creative Commons may be contacted at http://creativecommons.org/.

99

Annexe B. GNU Free Documentation License


Version 1.2, November 2002 Copyright 2000,2001,2002 Free Software Foundation, Inc. Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Version 1.2, November 2002

100

GNU Free Documentation License

1. PREAMBLE
The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

101

GNU Free Documentation License

2. APPLICABILITY AND DEFINITIONS


This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary 102

GNU Free Documentation License formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

103

GNU Free Documentation License

3. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies.

104

GNU Free Documentation License

4. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

105

GNU Free Documentation License

5. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

GNU FDL Modification Conditions


A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. 106

GNU Free Documentation License L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M.Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

107

GNU Free Documentation License

6. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".

108

GNU Free Documentation License

7. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

109

GNU Free Documentation License

8. AGGREGATION WITH INDEPENDENT WORKS


A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

110

GNU Free Documentation License

9. TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

111

GNU Free Documentation License

10. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

112

GNU Free Documentation License

11. FUTURE REVISIONS OF THIS LICENSE


The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

113

GNU Free Documentation License

12. ADDENDUM: How to use this License for your documents


To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

Sample Invariant Sections list


Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this:

Sample Invariant Sections list


with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

114