Vous êtes sur la page 1sur 19

Formation CAFA GNU/Linux

EMOP Rseaux

FORMATION CAFA -- EMOP -- GNU/LINUX

Prsentation des serveurs DNS DHCP FTP


sur les distributions Debian Woody 3.0 Mandrake Linux 9.1/9.2

Formateur : Olivier DARTOIS

olivier.dartois@ac-limoges.fr

Olivier DARTOIS

Page 1

Formation CAFA GNU/Linux

EMOP Rseaux

Sommaire
1. Introduction et pr-requis........................................................................................................ 3 2. Les commandes de gestion des paquetages.............................................................................4 2.1 Les commandes apt et dpkg sous Debian............................................................. 4 2.2 Les commandes rpm et urpmi sous Mandrake......................................................4 2.3 Installation des paquetages supplmentaires.................................................................... 5 3. Le serveur DNS Bind (Bekerley Internet Name Daemon)......................................................6 3.1 Prsentation...................................................................................................................... 6 3.2 Installation du serveur Bind 9 sous Debian 3.0................................................................ 6 3.3 Installation du serveur Bind 9 sous Mandrake 9.1........................................................... 7 3.4 Modifification du fichier named.conf et cration des fichiers de zones...........................7 3.5 Tests et configuration des clients................................................................................... 10 3.6 Utilisation de Webmin avec Bind.................................................................................. 10 3.7 Extensions possibles et liens.......................................................................................... 11 4. Le serveur DHCP de l'ISC (Internet Software Consortium)................................................. 12 4.1 Prsentation.................................................................................................................... 12 4.2 Installation du serveur DHCP sous Debian 3.0.............................................................. 12 4.3 Installation du serveur DHCP sous Mandrake 9.1......................................................... 12 4.4 Cration du fichier dhcpd.conf....................................................................................... 12 4.5 Tests et configurations des clients..................................................................................14 4.6 Utilisation de Webmin avec ISC DHCP........................................................................ 14 4.7 Extensions possibles et liens.......................................................................................... 14 5. Le serveur FTP ProFTP.........................................................................................................14 5.1 Prsentation.................................................................................................................... 14 5.2 Installation du serveur ProFTP sous Debian 3.0............................................................ 14 5.3 Installation du serveur ProFTP sous Mandrake 9.1........................................................15 5.4 Cration de fichier proftpd.conf..................................................................................... 15 5.5 Tests du serveur ProFTP................................................................................................ 18 5.6 Utilisation de Webmin avec ProFTPd............................................................................19 5.7 Extensions possibles et liens.......................................................................................... 19 6. Conclusion............................................................................................................................ 19

Olivier DARTOIS

Page 2

Formation CAFA GNU/Linux

EMOP Rseaux

1. Introduction et pr-requis
Nous allons tudier la mise en oeuvre de trois services :

le service DNS (Domain Name System) avec le logiciel Bind, le service DHCP (Dynamic Host Configuration Protocol) avec le logiciel de l'Internet Software Consorcium ISC DHCP, le service FTP (File Transfert Protocol) avec le logiciel ProFTP.

Nous installerons ces services sur deux types de configuration :


sur des ordinateurs installs avec une distribution Debian 3.0 Woody, sur des ordinateurs installs avec une distribution Mandrake Linux 9.1/9.2.

Les ordinateurs seront pr-installs avec ces distributions partir d'Internet. Les distributions seront installs en version de base , c'est--dire avec le minimum de paquetages. L'installation du systme X-Window et d'un gestionnaire de fentre n'est absolument pas ncessaire mais peut faciliter la configuration (diteur en mode graphique, gestionnaire de fichiers, etc.)1 Vous pouvez rester en mode texte et utiliser l'diteur de texte Vi pour saisir les fichiers de configuration. En effet, seul un diteur de texte et un interprteur de commandes sont ncessaires. Aprs l'installation des distributions, nous obtenons l'occupation disque suivante :

pour la debian : 121 Mb (sans systme X-Window), pour la mandrake : 163 Mb (sans systme X-Window).

Nous installerons donc manuellement les paquetages ncessaire la formation la demande . Les commandes de bases du systme GNU/Linux (cd, mkdir, ls, more, etc.), l'arborescence, la gestion des droits sont considrs comme acquis pour cette formation. Nous installerons aussi un serveur ssh ainsi que webmin. Nous pourrons donc contrler distance notre serveur soit :

en utilisant un client ssh sous GNU/Linux ou Putty sous Windows, un navigateur web (Mozilla, Konqueror ou InternetExplorer).

1 Pour la mandrake, l'installation s'effectue partir de la disquette d'amorage network.img (attention 68Mo de ram minimum pour ce type d'installation) puis se poursuit partir d'Internet. Il faut slectionner l'installation minimum avec le support de urpmi. Pour la Debian, l'installation s'effectue partir du CD1 puis se poursuit sur Internet. Il suffit de ne prendre aucun paquetage pour obtenir l'installation minimum. Les mises jour de scurit, pour ces deux distributions, sont faites par le biais d'Internet lors de l'installation.
Olivier DARTOIS Page 3

Formation CAFA GNU/Linux

EMOP Rseaux

2. Les commandes de gestion des paquetages


Nous allons installer les paquetages ncessaire la demande afin de ne pas surcharger notre systme. Pour cela nous allons utiliser le systme de gestion des paquetages de chaque distribution.

pour la debian, les paquetages portent l'extension deb et seront grs par les commandes dpkg et apt , pour la mandrake, les paquetages portent l'extension rpm et seront grs par les commandes rpm et urpmi .

Nous allons dtailler l'utilisation de ces commandes pour chacunes des distributions.

2.1 Les commandes apt et dpkg sous Debian


La distribution maintient une base de donnes sur les paquetages installs/installables. La commande apt est configur par apt.conf situ dans /etc/apt et utilise le fichier sources.list qui indique ou tlcharger des paquetages supplmentaires (pour plus d'information, consulter la page de manuel : man sources.list). Aprs toute modification du fichier sources.list, il faut mettre jour la base de donnes avec la commande : apt-get update.

Lister les paquetages installs : dpkg -l "*"|more ou dpkg -l "x*"|more pour lister tous les paquetages commencant par la lettre x , Afficher la description d'un paquetage : apt-cache show nom_paquetage, Rechercher un paquetage : apt-cache search "ce_que_vous_voulez", Installer un paquetage : apt-get install nom_paquetage, Rinstaller ou rgler un problme d'installation : apt-get install --reinstall nom_paquetage ou apt-get -f install, Retirer un paquetage : apt-get remove nom_paquetage, Retirer un paquetage et tous les fichiers de configuration : apt-get remove --purge nom_paquetage, Mise jour de la distribution (par exemple pour des mises jour de scurit) : apt-get update suivi de apt-get upgrade, Faire le mnage des paquetages tlchargs dans /var/cache/apt/archives et / var/cache/apt/archives/partial : apt-get clean.

N'oubliez pas de consulter les pages de manuel : man dpkg, man apt-get, man aptcache, etc... Toutes les commandes prcdentes doivent tre utilises en tant qu'utilisateur root . Une documentation simple sur la gestion des paquetages, en franais, de Nicolas Boos sur http://www.debianworld.org/Docs_admin_apt.php

2.2 Les commandes rpm et urpmi sous Mandrake


La commande urpmi et ses drivs utilisent le fichier /etc/urpmi/urpmi.cfg pour installer des paquetages supplmentaires. Aprs toute modification du fichier urpmi.cfg, il faut mettre jour la base de donnes avec la commande : urpmi.update -a.
Olivier DARTOIS Page 4

Formation CAFA GNU/Linux

EMOP Rseaux

Lister les paquetages installs : rpm -qa|more ou rpm -qa|grep x pour lister tous les paquetages contenant la lettre x , Afficher la description d'un paquetage : rpm -qi nom_paquetage, Rechercher un paquetage : urpmq ce_que_vous_voulez2, Installer un paquetage : urpmi nom_paquetage, Retirer un paquetage : urpme nom_paquetage, Rechercher un fichier dans un paquetage : urpmf nom_fichier, Mise jour de la distribution (par exemple pour des mises jour de scurit) : urpmi.update -a suivi de urpmi --auto-select, Faire le mnage des paquetages tlchargs dans /var/cache/urpmi/rpms : urpmi --clean.

N'oubliez pas de consulter les pages de manuel : man urpmi, man urmpq, man urpmf, etc... Toutes les commandes prcdentes doivent tre utilises en tant qu'utilisateur root . Une documentation simple sur la gestion des paquetages, en anglais, de JW Robinson sur http://www.dunelm.org.uk/.

2.3 Installation des paquetages supplmentaires


Nous allons installer le serveur ssh et webmin. Pour la distribution debian, vous tapez : root@tux#apt-get install ssh root@tux#apt-get install webmin webmin-core Pour la distribution mandrake, vous tapez : root@tux#urpmi sshd root@tux#/etc/init.d/sshd start root@tux#urpmi webmin root@tux#/etc/init.d/webmin start Rpondez aux diffrentes questions qui pourrait vous tre pos, en particulier avec la debian. Vous pouvez tester le serveur ssh, par exemple sous Windows avec Putty. Connectez-vous en tant qu'utilisateur root . Toujours depuis votre machine Windows, connectez-vous sur le serveur webmin. Tapez l'adresse suivante dans votre navigateur : https://adresse_ip_serveur:10000/ puis identifiezvous en tant qu'utilisateur root . Sous debian, une version minimale de webmin est install, nous rajouterons par la suite les modules manquant.

2 Vous devez saisir un mot sans espace, ni guillemet.


Olivier DARTOIS Page 5

Formation CAFA GNU/Linux

EMOP Rseaux

3. Le serveur DNS Bind (Bekerley Internet Name Daemon)


Nous utiliserons la version 9 de Bind. Les fichiers de configurations donnes en exemple sont issus d'une configuration utilisant Bind 8. Ils doivent fonctionner tels quels mais n'ont jamais t test sur le long terme. Les principales diffrences entre ces deux versions de Bind sont relatives la scurit, en particulier les transferts de zones entre dns primaire et secondaire.

3.1 Prsentation
Un serveur DNS est un serveur qui transforme une adresse du type http://www.ac-limoges.fr en adresse IP 195.83.100.1. Le serveur DNS indique aussi le serveur SMTP (serveur de messagerie) qui est autoris recevoir les messages pour votre domaine (vous crivez toto@ac-limoges.fr et pas toto@proxy.ac-limoges.fr). La premire raison d'avoir un serveur DNS dans un tablissement est de disposer d'un serveur cache DNS afin d'acclrer les requtes. La seconde raison, la plus intressante pour nous, est de simplifier l'adressage des machines internes l'tablissement. Nous allons travailler avec le domaine fictif monetab 3, ainsi les lves taperont www.monetab pour accder au serveur web de l'tablissement, ftp.monetab pour accder au serveur ftp, etc... plutt que de retenir des adresses IP.

3.2 Installation du serveur Bind 9 sous Debian 3.0


Dans un shell, installez les paquetages bind9, dnsutils, bind9doc : root@tux# apt-get install bind9 dnsutils bind9-doc Le paquetage bind9 installe le serveur named lui-mme, dnsutils les utilitaires de tests du serveur de nom (dig en particulier), bind9-doc la documentation du serveur. Le fichier de configuration de named est /etc/bind/named.conf. La documentation se trouve dans /usr/share/doc/bind/. Les fichiers de configuration par dfaut sont installs dans /etc/bind/ :

named.conf db.root db.local db.127 db.255 et db.0

: le fichier de configuration du serveur DNS, : contient les adresses IP des serveurs racines, : fichier de zone pour l'interface de boucle local (loopback), : fichier pour la rsolution inverse de l'interface de boucle local, : fichier optionnel pour tre conforme la RFC (optionnel).

Nous ne modifierons que le fichier named.conf pour l'adapter nos besoins.

3 Nous n'utiliserons pas de nom de domaine complet , par exemple monetab.fr. En effet, un domaine n'existe au sens lgal que s'il a t dpos. De plus, le rectorat a prvu le nommage des tablissements comme un sous domaine de ac-limoges.fr.
Olivier DARTOIS Page 6

Formation CAFA GNU/Linux

EMOP Rseaux

3.3 Installation du serveur Bind 9 sous Mandrake 9.1


Dans un shell, installez les paquetages bind, caching-nameserver: root@tux#urpmi bind caching-nameserver Le paquetage bind installe le serveur named lui-mme et les utilitaires de tests du serveur de nom (dig en particulier), caching-nameserver le fichier named.conf pour raliser un cache DNS. Le fichier de configuration de named est /etc/named.conf. La documentation se trouve dans /usr/share/doc/bind-9.2.2/. Les fichiers de configuration par dfaut sont installs dans /var/named/ :

named.ca named.local

: contient les adresses IP des serveurs racines, : fichier de zone pour l'interface de boucle local (loopback).

3.4 Modifification du fichier named.conf et cration des fichiers de zones


Nous allons nous placer dans le cas d'un tablissement qui aura comme nom de domaine monetab. L'adressage IP sera en 192.168.0.* (dans l'acadmie 10.187.*.*). Le serveur dns sera aussi serveur cache dns4. Dans cet tablissement, nous aurons :

un serveur dns avec le nom ns.monetab, un serveur ftp avec le nom ftp.monetab.

Tous ces services seront hbergs sur une seule et mme machine qui portera le nom monserveur.monetab. L'adresse IP de cette machine sera 192.168.0.1. Un serveur web sera hberg sur une machine portant le nom tux.monetab. L'adresse IP de cette machine sera 192.168.0.2. Cette machine aura comme alias www.monetab. Les machines clientes s'tendront de 192.168.0.31 192.168.0.244. Nous allons donc crer deux fichiers de zones :

monetab monetab.rev nom de la machine.

: fichier qui indique la correspondance nom machine adresse IP, : fichier de zone inverse qui fait correspondre l'adresse IP avec le

Vous crerez ces fichiers dans les rpertoires adquates pour chaque distribution. Nous allons examiner le fichier de configuration named.conf de la distribution debian, le commenter et rajouter nos modifications. Le fichier de configuration de la mandrake est quasiment identique sauf qu'il intgre la cl de l'utilitaire rndc et les chemins des fichiers de zones sont relatifs /var/named. N'oubliez pas de consulter l'aide en ligne : man named.conf
4 Le cache du serveur dns n'existe qu'en mmoire. Si vous arrtez le service named (ou teignez la machine), vous perdez toutes les correspondances noms-adresse ip qu'a pu enregistrer le serveur.
Olivier DARTOIS Page 7

Formation CAFA GNU/Linux


// Fichier exemple named.conf options { directory "/var/cache/bind"; forward first; forwarders { 193.252.19.3; 193.252.19.4; }; };

EMOP Rseaux

Les signes // , # , /*.....*/ introduisent un commentaire. options gre les options globales du serveur. directory indique le chemin par dfaut pour les fichiers de zones (attention debian diffrent de mandrake). forward indique que les requtes dns peuvent tre rsolus par les dns de votre fai. Ceux-ci sont indiqus avec forwarders et les adresses IP des dns (ici ceux de wanadoo). zone dfinit les options s'appliquant des zones particulires. Ici la zone . dfinit les serveurs racines d'Internet. type hint est spcifique cette zone, c'est l'endroit pour dbuter les recherches. file indique le fichier qui contient les renseignements sur cette zone. La zone localhost doit tre dfini pour le rseau loopback. type master dclare ce serveur comme tant un serveur primaire. Si vous avez un serveur secondaire, il faudra mettre type slave. La zone 127.in-addr.arpa dfinit la zone de rsolution inverse pour le rseau de boucle locale (loopback). La zone monetab dfinit la zone de rsolution directe pour l'tablissement. Le fichier contenant les renseignements de cette zone sera /etc/bind/monetab en chemin absolu. Le paramtre notify indique si le serveur bind primaire doit informer le serveur secondaire des changements de cette zone. Pour l'instant, nous n'avons qu'un serveur primaire donc l'option est no. La zone 0.168.192.in-addr.arpa permet la rsolution inverse pour l'tablissement. Remarque importante : si votre tablissement suit le plan d'adressage du rectorat (10.187.XX.XX), vous avez donc une adresse de classe A priv, la dclaration se fera donc comme suit et ceci quelque soit votre masque de sous-rseau :
zone "10.in-addr.arpa" { etc...

// --- Fichier tronqu --// Zone pour les serveur racines d'Internet zone "." { type hint; file "/etc/bind/db.root"; };

// Les zones locales zone "localhost" { type master; file "/etc/bind/db.local"; };

zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; // --- Fichier tronqu --// Rajout de nos zones zone "monetab" { type master; file "/etc/bind/monetab"; notify no; };

zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/monetab.rev"; notify no; };

Pour rcuprer le fichier des serveurs de noms racine d'Internet, connectez-vous sur ftp://ftp.rs.internic.net/domain et rapatriez le fichier named.root. puis remplacer l'ancien fichier (db.root ou named.ca) par celui que vous venez de tlcharger en le renommant.

Olivier DARTOIS

Page 8

Formation CAFA GNU/Linux

EMOP Rseaux

Il faut maintenant crer les deux fichiers de zones :


$TTL 3D ; Fichier de configuration de la zone monetab ; Nom du fichier : monetab @ IN SOA monserveur.monetab. postmaster.monetab. ( ; numro de srie YYYYMMDDNN

La ligne $TTL3D est obligatoire avec bind9 et indique le temps maximum qu'il peut garder en cache ce fichier (ici 3 jours = 3Day). Les commentaires commencent par ; . Normalement les valeurs n'ont pas tre chang. Vous incrmentez le numro de srie (NN) chaque modification pour que les autres serveurs de noms soient informs. @ indique que l'on parle de cet ordinateur.

2003061401 8H 2H 1W 1D )

; rafraichissment toutes les 8 heures ; nouvel essai toutes les 2 heures ; expiration dans 1 semaine ; temps de vie minimal 1 journe

@ @ @

IN IN IN

A NS NS

192.168.0.1 monserveur monserveur.monetab.

On indique l'adresse IP de cette machine et ensuite le nom du serveur de nom. De ces trois lignes, seule la dernire est vraiment ncessaire. On dclare ensuite les noms de machine et leur adresse IP. Les alias sont dclars avec la directive CNAME. Un alias ne doit jamais pointer sur un autre alias mais sur la machine d'origine.

localhost monserveur ns ftp

IN IN CNAME CNAME

A A

127.0.0.1 192.168.0.1 monserveur monserveur

tux www

IN CNAME

192.168.0.2 tux

$TTL 3D ; Fichier de configuration de la zone inverse ; Nom du fichier : monetab.rev @ IN SOA monserveur.monetab. postmaster.monetab. (

Nous renseignons la zone 0.168.192 donc les pointeurs (PTR) se rfrrent cette adresse. Nous aurons donc le dernier octet de l'adresse correspondant chaque machine et son nom complet termin par un point. Remarque importante : si vous avez un adressage en 10.187.XX.XX, la dclaration inverse des adresses IP de machines se fera de la manire suivante (par exe. Pour 10.187.36.1) :
1.36.187 IN PTR monserveur.monetab.

2003061401 8H 2H 1W 1D ) @ IN NS monserveur.monetab.

1 2

IN IN

PTR PTR

monserveur.monetab. tux.monetab.

Modifiez le fichier /etc/resolv.conf de la manire suivante : search monetab nameserver 127.0.0.1 Vrifiez que dans le fichier /etc/nsswitch.conf, vous ayez une ligne du type : hosts: files dns Vous pouvez alors lancer le serveur dns avec la commande :

Olivier DARTOIS

Page 9

Formation CAFA GNU/Linux

EMOP Rseaux

root@tux#/etc/init.d/{named|bind9} start (ou si le serveur tait dj lancer /etc/init.d/named stop puis /etc/init.d/named start). Ceci n'est valable qu'au premier lancement, ensuite vous pouvez (devez ??) utiliser rndc (man rndc) avec la commande suivante : rndc {start|stop|reload} Pour savoir si le serveur dns est bien actif, vous visualisez les processus avec le nom named , s'il n'apparat pas (et mme s'il apparat d'ailleurs), visualisez les journaux systmes : root@tux#ps ax|grep named root@tux#tail /var/log/messages root@tux#tail /var/log/syslog root@tux#tail /var/log/daemons/info

3.5 Tests et configuration des clients


Depuis votre serveur linux, tapez : root@tux#ping root@tux#ping root@tux#ping root@tux#ping root@tux#ping ns ns.monetab ftp.monetab monserveur www

La dernire ligne ne doit normalement pas provoquer de rponse de la machine concerne vu qu'elle n'existe pas. Par contre la rsolution de nom doit fonctionner. Pour tester plus finement, utilisez l'utilitaire dig (man dig) : root@tux#dig root@tux#dig root@tux#dig root@tux#dig monetab. NS ftp.monetab. -x 192.168.0.2 www.monetab. ANY

Configurez votre poste windows pour qu'il utilise comme serveur dns le serveur que vous venez de configurer. Puis faites quelques tests avec la commande ping. Si vous fixez l'adresse IP de la machine cliente 192.168.0.31. Modifiez les fichiers de configuration pour l'enregistrer sous le nom clientwin et comme alias crosoft (n'oubliez pas la zone de rsolution inverse), relancez named puis testez nouveau (rsolution directe et inverse). Sous Windows NT/XP, vous disposez de la commande nslookup.

3.6 Utilisation de Webmin avec Bind


Euh, y a pas d'interface graphique pour grer tout !!! Si, vous pouvez utiliser Webmin et son module de gestion pour Bind8+. Sous debian, il faut installer le module correspondant:

Olivier DARTOIS

Page 10

Formation CAFA GNU/Linux

EMOP Rseaux

root@tux#apt-get install webmin-bind Sous mandrake, le module est dj disponible. Connectez-vous webmin depuis un navigateur, identifiez-vous en tant que root puis cliquez sur l'onglet serveur puis sur l'icne bind8. Quasiment toutes les oprations sont faisables depuis l'interface. Pour ma part, je n'utilise que les possibilits d'ajout de machines et de redmarrage du serveur. Vous cliquez alors sur le nom de votre zone (ici monetab) enfin vous cliquez sur l'icne A (Adresse) et vous compltez les champs. Vrifiez que la case Mettre jour l'adresse inverse soit sur Oui pour que la zone de rsolution inverse soit mise jour. Enfin cliquez sur le bouton Crer . Il faut ensuite relancez bind avec le bouton Appliquer tous les changements sur la page d'accueil du module bind.

3.7 Extensions possibles et liens


Vous pouvez monter un serveur dns secondaire qui sera esclave du serveur dns primaire. Vous pouvez aussi chrooter le dmon named. Votre serveur sera alors plus difficile attaquer mme si l'on dcouvre une faille dans bind. Vous pouvez configurer le serveur dns avec des ACL pour qu'il ne rponde qu' certaines adresses IP. Enfin vous pouvez masquer le nom du type du serveur dns. Quelques commandes tester et commenter : root@tux#dig ac-limoges.fr NS root@tux#dig ac-limoges.fr MX root@tux#dig @ac-limoges.fr version.bind text chaos Quelques liens : Bind : http://www.isc.org/products/BIND Un guide de l'AFNIC (obsolte) : http://www.nic.fr/guides/ Le DNS-HOWTO : http://www.tldp.org/HOWTO/DNS-HOWTO.html Une prsentation complte du DNS Bind : http://www.dns.net/dnsrd/ Le livre DNS and BIND chez O'Reilly De plus, j'ai utilis : Hors-srie Linux France Magazine Fvrier/Mars 2002 (Compltez l'installation de votre serveur Internet), article Monter un serveur DNS . Hors-srie MISC N2 : Scuriser un serveur DNS Bind. La documentation de Philippe CHADEFAUX sur : http://www.ac-creteil.fr/reseaux/systemes/linux/outils-tcp-ip/Linux-dns.html

Olivier DARTOIS

Page 11

Formation CAFA GNU/Linux

EMOP Rseaux

4.Le serveur DHCP de l'ISC (Internet Software Consortium)


Nous allons utiliser la version 3 du serveur DHCP (Dynamic Host Configuration Protocol).

4.1 Prsentation
Un serveur DHCP permet de dlivrer de manire automatique une adresse IP valide sur le rseau priv de l'tablissement. De plus, il permet aussi de fournir la passerelle, les serveurs de noms, le nom de domaine, le serveur WINS si vous utilisez SAMBA en tant que serveur NT, etc... Il peut aussi dlivrer de manire statique une adresse IP pour une (ou plusieurs) machine (s) en fonction de l'adresse MAC (adresse pseudo-unique sur 48bit).

4.2 Installation du serveur DHCP sous Debian 3.0


Dans un shell, installez le paquetages dhcp3-server : root@tux# apt-get install dhcp3-server Le fichier de configuration de dhcpd est /etc/dhcp3/dhcpd.conf. Le fichier d'inscription des clients est /var/lib/dhcp3/dhcpd.leases. La documentation se trouve dans /usr/share/doc/dhcp3-server/. Pour indiquer sur quel interface rseau (eth0, eth1, etc.), le serveur dhcp doit rpondre, ditez et modifiez le fichier /etc/default/dhcp3-server. Le dmon dhcp se gre avec les commandes : /etc/init.d/dhcp3-server {start|stop|restart|status}.

4.3 Installation du serveur DHCP sous Mandrake 9.1


Dans un shell, installez les paquetages dhcp-server : root@tux#urpmi dhcp-server Le fichier de configuration de dmonstration de dhcpd est /etc/dhcpd.conf.sample. Le fichier d'inscription des clients est /var/lib/dhcp/dhcpd.leases. La documentation se trouve dans /usr/share/doc/dhcp-common-3.0/. Pour indiquer sur quel interface rseau (eth0, eth1, etc.), le serveur dhcp doit rpondre, ditez le fichier /etc/init.d/dhcpd et modifiez la ligne INTERFACES="". Le dmon dhcp se gre avec les commandes : /etc/init.d/dhcpd {start|stop|restart|condrestart|status}.

4.4 Cration du fichier dhcpd.conf


Vous pouvez dj regarder les fichiers exemples de la mandrake ou de la debian. Prenons comme exemple celui de la debian : root@tux#more /etc/dhcpd.conf Nous allons nous en inspirer pour crer notre fichier. Si nous prenons notre rseau prcdent comme exemple, les machines clientes s'tendent de 192.168.0.31 192.168.0.244. Le serveur dns sera en 192.168.0.1 (et nous passerons par la mme occasion le dns primaire de wanado),
Olivier DARTOIS Page 12

Formation CAFA GNU/Linux

EMOP Rseaux

la passerelle en 192.168.0.254, le nom de domaine est monetab et le masque de sousrseau 255.255.255.0. Cela nous donne le fichier dhcpd.conf suivant :
ddns-update-style none;

Les commentaires commencent avec le signe # . ddns-update-style permet de faire du dns dynamique avec bind. Ici vous ne vous servirez pas de cette fonction (paramtre none). subnet et netmask indique pour quel rseau vous souhaitez dlivrer des adresses IP (attention, vous mettez l'adresse de rseau 192.168.0.0). Les options sont prcdes du mot cl option:

subnet 192.168.0.0 netmask 255.255.255.0 {

option routers 192.168.0.254; option broadcast-address 192.168.0.255;

option domain-name "monetab"; option domain-name-servers ns.nometab, 193.252.19.3;

routers indique l'adresse de la passerelle, broadcast-address l'adresse de diffusion, domain-name le nom de domaine comme prcis dans le serveur dns, domain-name-servers les noms ou les adresses IP des serveurs dns (s'il y a plusieurs serveurs dns, sparez-les par une virgule).

range 192.168.0.31 192.168.0.244; default-lease-time 21600; max-lease-time 43200;

# Fixer une adresse IP une machine

host tux { hardware ethernet 12:34:56:78:AB:CD; fixed-address 192.168.0.2; option domain-name-servers 193.252.19.4; } }

range indique la plage d'adresse IP dlivr par le serveur DHCP. default-lease-time et max-lease-time indiquent respectivement le temps de valadit de l'adresse IP lorsque le client n'a pas demand une dure spcifique et le temps maximum de validit d'une adresse IP (la demande de dure de la part du client ne peut pas dpasser cette dure).

Si vous avez un serveur NT/Samba qui fait office de serveur WINS, vous rajouterez l'option option netbios-name-servers adresse_ip. Si vous dsirez attribuer toujours la mme adresse une machine, vous rajoutez une section host suivi du nom dns de la machine (ce nom n'a rien voir avec le nom netbios de la machine). Il faut alors relever l'adresse MAC de la carte (ifconfig sous GNU/Linux, ipconfig sous WinNT/XP, winipcfg sous Win9X) puis indiquez l'adresse IP dsir avec le paramtre fixed-address. Vous pouvez rajouter des paramtres spcifiques pour un hte qui viendront craser les paramtres globaux. Dans notre exemple, nous changeons le serveur dns (dns secondaire de wanadoo). Vous devez redmarrer le serveur DHCP. Puis vrifiez son bon lancement : root@tux#ps ax|grep dhcp root@tux#tail /var/log/messages root@tux#tail /var/log/syslog root@tux#tail /var/log/daemons/info

Olivier DARTOIS

Page 13

Formation CAFA GNU/Linux

EMOP Rseaux

4.5 Tests et configurations des clients


Sous mandrake, vous pouvez suivre votre serveur dhcp avec la commande dhcpstatus. Configurez votre client windows pour qu'il obtienne une adresse IP automatiquement. Visualisez le fichier /var/lib/dhcp/dhcp-leases du cot GNU/Linux et visualisez le bail obtenu du cot Windows (ipconfig /all sous WinNT/XP ou winipcfg sous Win9X).

4.6 Utilisation de Webmin avec ISC DHCP


Sous debian, le module de gestion de dhcp est valable pour la version 2. Nous allons donc mettre jour notre distribution Woody pour qu'elle supporte une version plus rcente de Webmin. Editez le fichier /etc/apt/sources.list et rajoutez la ligne suivante :
deb http://www.fs.tum.de/~bunk/debian woody/bunk-1 main contrib non-free

ensuite tapez les commandes suivantes : root@tux#apt-get update root@tux#apt-get upgrade root@tux#apt-get install webmin-dhcp Lors de la mise jour des paquetages, il vous sera pos diffrentes questions, validez systmatiquement avec la touche Entre . Sous mandrake, le module est dj disponible. Connectez-vous webmin depuis un navigateur, identifiez-vous en tant que root puis cliquez sur l'onglet serveur puis sur l'icne serveur DHCP. Quasiment toutes les oprations sont faisables depuis l'interface. Sous debian, il faut adapter lgrement les emplacements des fichiers pour l'excutable dhcpd et dhcpd.conf. Lorsque vous tes dans le module de gestion du DHCP, cliquez sur le lien Configuration du module puis modifiez les lignes Fichier de configuration du serveur DHCP en /etc/dhcp3/dhcpd.conf et Excutable du serveur DHCP en /usr/sbin/dhcpd3-server . N'oubliez de sauvegarder votre configuration en cliquant sur le bouton Sauvegarder . Vous cliquez sur l'icne de votre rseau pour en diter les caractristiques (modification de l'adresse du rseau, du masque, de la plage d'adresses disponibles,...). Si vous souhaitez rajouter des machines avec un adressage statique, cliquez sur Ajouter une nouvelle machine puis ditez les champs nom de la machine , adresse matriel (adresse MAC) , adresse IP fixe et Machine assigne sous-rseau .

4.7 Extensions possibles et liens


La suite logique de cette prsentation serait de lier le serveur dns et dhcp pour raliser un serveur dns dynamique. Des exemples de cette configuration sont prsents dans les deux distributions. Quelques liens : ISC DHCP : http://www.isc.org/products/DHCP Le DHCP-HOWTO : http://www.tldp.org/HOWTO/mini/DHCP/index.html
Olivier DARTOIS Page 14

Formation CAFA GNU/Linux

EMOP Rseaux

5. Le serveur FTP ProFTP


Nous allons utiliser la version 1.2.5 de ProFTP.

5.1 Prsentation
Le service FTP est trs souvent mis la disposition des utilisateurs pour faire des tlchargements en download et moins souvent en upload . Cependant, il est plus facile de mettre en place un rpertoire de tlchargement de manire scuris avec un serveur FTP qu'avec un serveur web et php. Il permet aussi de grer plus finement l'occupation de la bande passante.

5.2 Installation du serveur ProFTP sous Debian 3.0


Dans un shell, installez les paquetages proftpd proftpd-doc : root@tux# apt-get install proftpd proftpd-doc Mettre le serveur en mode standalone , vous pouvez avoir un accs anonyme au serveur FTP en rpondant par l'affirmative aux questions de l'installeur debian. Demandez l'installeur de modifier le fichier proftpd.conf pour nous. Le fichier de configuration de ProFTP est /etc/proftpd.conf. La documentation se trouve dans /usr/share/doc/proftpd-doc/. Le dmon dhcp se gre avec les commandes : /etc/init.d/proftpd {start|stop|restart|reload|status}. Si vous avez activ l'accs ftp anonyme, le rpertoire de cet accs sera dans /home/ftp.

5.3 Installation du serveur ProFTP sous Mandrake 9.1


Dans un shell, installez les paquetages proftpd proftpd-anonymous : root@tux#urpmi proftpd proftpd-anonymous Les fichiers de configuration de ProFTP sont /etc/proftpd.conf et /etc/proftpdanonymous.conf. La documentation se trouve dans /usr/share/doc/proftpd/. Le dmon dhcp se gre avec les commandes : /etc/init.d/proftpd {start|stop|restart|reload|status}. Si vous avez activ l'accs ftp anonyme, le rpertoire de cet accs sera dans /var/ftp.

5.4 Cration de fichier proftpd.conf


Tout d'abord, il faut vrifier l'existence du fichier /etc/ftpusers. Tous les comptes lists dans ce fichier ne seront pas autoriss se connecter au service ftp. Nous allons nous placer dans le cas suivant :

les utilisateurs ont un accs ftp leur compte, ils peuvent lister le contenu de leur compte mais il ne sont autoriss qu' crire dans le rpertoire public_html (rpertoire ou ils peuvent dposer leur page web et que apache gre lors d'un accs du type : http://monserveur/~dartoiso/). C'est un choix de ma part, vous pouvez en changer ! Un accs ftp anonyme sera disponible (pour stocker tous les utilitaires Windows et
Page 15

Olivier DARTOIS

Formation CAFA GNU/Linux

EMOP Rseaux

GNU/Linux, les images iso de distributions, etc...) en tlchargement (dowload). Les utilisateurs ont aussi la possibilit d'uploader des fichiers dans le rpertoire incoming mais ils ne peuvent lister le contenu de ce rpertoire (le tri de ce qui a t tlcharg revient l'administrateur du ftp). Il faut crer l'arborescence de notre serveur ftp avec les commandes suivantes (adapt une debian, pour une mandrake le rpertoire racine est /var/ftp) : root@tux#cd /home/ftp root@tux#mkdir -p pub/linux pub/windows incoming root@tux#chown -R ftp:nogroup /home/ftp/ La syntaxe du fichier de configuration est assez proche de celle d'apache. Le fichier de configuration peut tre coup en contexte de configuration :

server config : tout ce qui concerne les paramtres de fonctionnement du serveur, Global : tous les rglages par dfaut des entits qui suivent, <Anonymous> : le contexte pour le serveur anonyme, <VirtualHost> : le contexte d'un hte virtuel (hbergement de plusieurs serveurs FTP sur une seule machine), <Limit> : permet de limiter les commandes ou l'accs un contexte de configuration, <Directory> : permet de configurer l'accs des rpertoires.

Server config ne sera pas entre crochet car il est implicite. Nous allons donc avoir le fichier de configuration /etc/proftpd.conf suivant :

Olivier DARTOIS

Page 16

Formation CAFA GNU/Linux


# Fichier de configuration du serveur ProFTP

EMOP Rseaux

Les commentaires commencent avec le signe # . ServerName reprsente le nom du serveur qui s'affiche la connexion. ServerType indique le mode de fonctionnement du serveur (standalone, inetd). Standalone est plus adapt car il permet de scuriser le serveur. DeferWelcome on permet de na pas afficher de messages de bienvenue tant que l'utilisateur ne s'est pas authentifi. ServerIdent off : ne renvoie pas d'information sur le serveur lorsqu'une connexion est tablie, juste FTP server ready . ShowSymlinks on montre les liens symboliques. MultilineRFC2228 permet une meilleur compatibilit avec les clients http. DefaultServer on permet de supporter les serveurs virtuels. AllowOverwrite on permet de rcire les fichiers. Tous les paramtres Timeout permettent de couper une connexion s'il n'y a pas d'activit. MaxLoginAttempts limite le nombre de tentatives de connexion errones. DefaultRoot ~ permet d'enfermer chaque utilisateur dans son rpertoire racine. Port 21 : le port standard d'coute du serveur FTP. Dans un serveur virtuel, vous pouvez changer ce port. MaxInstances limite le nombre de processus fils simultanes (protection DOS, ne fonctionne qu'en mode standalone). User et Group indique avec quels droits le serveur FTP doit tourner (le moins possible). Pour tous les rpertoires sous la racine du serveur FTP, les masques seront de 022 pour les fichiers et 022 pour les rpertoires (soit rwxr-xr-x). Pour le rpertoire personnel de chaque utilisateur (<Directory ~>), nous allons limiter toutes les oprations de lecture/criture (<Limit READ WRITE>) avec le paramtre DenyAll. Puis pour le rpertoire public_html, nous limitons le nombre d'actions possibles (<Limit WRITE STOR RNFR DELE>), celles-ci seront excutables par tout le monde (AllowAll). Je vous conseille trs vivement de consulter la documentation de ProFTP et en particulier la commande Limit qui dtaille toutes les commandes FTP.

ServerName ServerType DeferWelcome ServerIdent

"Serveur FTP de monetab" standalone on off

ShowSymlinks MultilineRFC2228 DefaultServer AllowOverwrite

on on on on

TimeoutNoTransfer TimeoutStalled TimeoutIdle

600 600 1200

LsDefaultOptions MaxLoginAttempts

"-l" 3

DefaultRoot

# Dcommenter cette ligne si vous utilisez NIS ou # LDAP pour valiser les mots de passe : #PersistentPasswd off

Port

21

MaxInstances

30

User Group

nobody nogroup

<Directory /*> Umask AllowOverwrite </Directory> 022 on 022

<Directory ~> <Limit READ WRITE> DenyAll </Limit> </Directory>

<Directory ~/public_html> <Limit WRITE STOR RNFR DELE> AllowAll </Limit> </Directory>

Olivier DARTOIS

Page 17

Formation CAFA GNU/Linux


<Anonymous ~ftp> User ftp

EMOP Rseaux

Nous crons ici notre serveur ftp anonyme. Les fichiers auront les droits de ftp et du group nogroup. UserAlias permet de mettre un alias l'utilisateur ftp, ici ce sera anonymous. RequireValidShell off : Les personnes qui se connectent au serveur ftp anonyme n'ont pas besoin d'avoir un shell valide sur la machine. MaxClients limite le nombre de connexions simultanes. MaxClientsPerHost limite le nombre de connexion simultanes d'un mme utilisateur. DisplayLogin affiche le message welcome.msg la connexion. DisplayFirstChdir affiche le fichier .message qui se trouve dans le rpertoire de destination chaque changement de rpertoire. Nous limitons l'accs en criture tout le rpertoire du ftp anonyme. Pour le rpertoire incoming et ces sous-rpertoires, nous limitons d'abord tout puis nous autorisons seulement la commande STOR (c'est dire le transfert de fichiers). La commande ls ne fonctionnera pas dans ce rpertoire.

Group nogroup UserAlias anonymous ftp RequireValidShell off

MaxClients MaxClientsPerHost DisplayLogin DisplayFirstChdir

10 2 welcome.msg .message

<Directory *> <Limit WRITE> DenyAll </Limit> </Directory> <Directory incoming/*> <Limit ALL> DenyAll </Limit> <Limit STOR> AllowAll </Limit> </Directory> </Anonymous>

Je vous rappelle nouveau, que le fichier prcdent n'est qu'un exemple. Il faut absolument lire la documentation de ProFTP. Vous allez maintenant relancer (ou lancer sur la mandrake) le serveur proftp. Puis vrifiez dans les fichiers log que le serveur est bien lanc.

5.5 Tests du serveur ProFTP


Depuis votre machine GNU/Linux, vous pouvez tester votre serveur ftp avec la commande ftp. Testez tout d'abord la connexion anonyme puis avec un utilisateur du systme. Pour la connexion anonyme : ftp localhost, nom : anonymous, mot de passe : bidon@bidon. Puis faites des tests avec les commandes put get cd. Pour la connexion avec un utilisateur, il faut que cet utilisateur existe sur le systme (adduser toto et passwd toto) puis il faut crer dans son rpertoire home le rpertoire public_html. Testez enfin la connexion au serveur ftp, vrifiez que vous arrivez bien dans votre rpertoire puis que vous pouvez crire uniquement dans le rpertoire public_html. Installez sous Windows un client FTP quelconque puis testez votre serveur. Si la configuration du serveur dhcp est correcte, celui-ci doit envoyer l'adresse ip du serveur dns. Le serveur dns doit normalement avoir un alias vers ftp.monetab. Sous GNU/Linux, utilisez les commandes ftpwho (man ftpwho) et ftpcount (man ftpcount)pour suivre les connexions votre serveur FTP.
Olivier DARTOIS Page 18

Formation CAFA GNU/Linux

EMOP Rseaux

5.6 Utilisation de Webmin avec ProFTPd


Sous Mandrake, le module est install. Sous debian, le module n'existe pas dans la version stable, il faut donc installer la version test de webmin. Enfin installez le module pour ProFTPd : apt-get install webmin-proftpd Connectez-vous webmin depuis un navigateur, identifiez-vous en tant que root puis cliquez sur l'onglet serveur puis sur l'icne serveur ProFTPD server. Quasiment toutes les oprations sont faisables depuis l'interface.

5.7 Extensions possibles et liens


Il faut savoir que le service ftp ne crypte pas les donnes. Votre mot de passe transite donc en clair entre votre machine cliente et le serveur. D'aprs ce que j'ai lu sur le site de proftp, il est possible de crypter le canal de commande (port 21) mais pas les donnes. L'authentification peut se faire avec LDAP ou une base de donnes (PostgresSQL, MySQL). Il faut savoir qu'il existe aussi d'autres serveurs FTP (wu-ftp le plus vieux, vsftp pour very secure ftp, etc...). Liens : Le site officiel de ProFTP : http://www.proftpd.net

6. Conclusion
Cet ensemble de service a t mis en place au sein du lyce Turgot Limoges. Il fonctionne maintenant, suivant les sections, depuis 2 ans. Nous allons amliorer notre installation par la suite en essayant de passer un maximum de chose en crypt puis si la machine EOLE est rapidement install, nous basculerons toute l'authentification vers un annuaire LDAP.

Olivier DARTOIS

Page 19