3 Installation d'un service réseau
Vous avez le choix entre plusieurs services réseaux. Vous pouvez
en installer plusieurs mais entendez-vous avec les autres binômes
pour commencer chacun avec un service différent.
3.1 Serveur de comptes
Votre but est de transformer votre machine virtuelle en serveur
de comptes :
-
les répertoires des utilisateurs seront centralisés sur votre
machine et exportés par NFS,
- les autres machines s'identifieront auprès de votre serveur grâce
à une base LDAP.
Commencez par exporter le répertoire /home de votre machine
sur les autres machines. Il vous faut vérifier que le paquetage
nfs-server est installé sur votre machine et modifier le
fichier /etc/exports. Vous pourrez ensuite changer le fichier
/etc/fstab sur les autres machines pour qu'elles montent
votre répertoire /home.
Ensuite construisez votre base LDAP. La première chose à faire est
d'installer le paquetage openldap. Ensuite le minimum est de
modifier les entrées suffix, rootdn et rootpw dans
le fichier /etc/openldap/slapd.conf. Enfin vous devez entrer
les utilisateurs et les groupes dans la base LDAP par défaut.
Pour cela vous pouvez utiliser l'utilitaire ldapadd qui utilise
le format d'entrée LDIF. La ligne suivante vous donne un exemple
d'utilisation de ldapadd :
ldapadd -D "cn=Manager, ..." -W < fichier.ldif
Les trois entrées principales pour une base
LDAP d'identification sont :
dn: o=<organisation>,c=<pays>
o: <Description de l'organisation>
objectclass: top
objectclass: organizationalUnit
et
dn: ou=People,o=<organisation>,c=<pays>
ou: People
objectclass: top
objectclass: organizationalUnit
et
dn: ou=Group,o=<organisation>,c=<pays>
ou: Group
objectclass: top
objectclass: organizationalUnit
où <organisation> et pays sont à remplacer par des chaines
de caractères adéquates.
Un exemple de définition d'utilisateur et un exemple de définition de
groupe au format LDIF sont donnés ci-dessous :
dn: uid=rex,ou=People,o=eudil,c=fr
cn: Xavier Redon
objectclass: top
objectclass: posixAccount
objectclass: shadowAccount
uid: rex
uidnumber: 1151
gidnumber: 1011
loginshell: /bin/bash
homedirectory: /home/imaEns/rex
userpassword: {crypt}WxeGZeaVV8v4.
shadowlastchange: 11030
shadowmax: 99999
shadowwarning: 7
dn: cn=imaEns,ou=Group,o=eudil,c=fr
objectclass: top
objectclass: posixGroup
cn: imaEns
userpassword: {crypt}x
gidnumber: 1011
Pour vérifier si votre base LDAP est bien formée, utilisez l'utilitaire
ldapsearch comme dans les exemples ci-dessous :
$ ldapsearch -L -b "o=eudil, c=fr" "uid=rex"
$ ldapsearch -L -b "o=eudil, c=fr" "cn=imaEns"
Vous pouvez aussi utiliser le carnet d'adresses de Netscape pour tester
la base LDAP.
Pour terminer il faut configurer le système d'identification PAM sur
chaque machine pour utiliser LDAP en plus des fichiers Unix classiques
d'identification. Le fichier principal du module libpam-ldap
est /etc/pam_ldap.conf, il faut aussi ajouter pam_ldap.so
dans la pile d'identification des commandes listées dans
/etc/pam.d.
3.2 Serveur d'accès à Internet
Vous devez donner accès à l'Internet aux machines de votre réseau.
Comme vous l'avez constaté, il est impossible d'utiliser les prises
réseaux normales d'une salle de TP car elles sont connectées sur des
ports de commutateurs configurés pour le VLAN STUDENTS.
Il faut donc se servir d'une prise spécialement configurée pour le
VLAN TP. La difficulté vient de la nécessité de laisser la
machine réelle sur le VLAN STUDENTS tout en mettant la machine
virtuelle sur le VLAN TP. Il faut donc deux cartes réseau.
La première manipulation que vous allez faire est d'ajouter une seconde
carte réseau à votre machine de TP. Ensuite vous allez modifier la
configuration de votre machine virtuelle pour utiliser cette seconde
carte réseau. Utilisez l'éditeur de configuration et faites passer
l'adaptateur réseau de la machine virtuelle du mode "bridged network"
au mode "custom" et spécifiez le périphérique spécial /dev/vmnet2.
Connectez la seconde carte Ethernet à la prise ad hoc de la salle de TP
et vérifiez que votre machine virtuelle a bien un accès total à Internet.
Il serait possible de faire de même pour chaque machine de votre réseau
mais cela nécessite autant de prises dans le VLAN TP ou un élément
de type commutateur. Vous allez faire plus économique en utilisant votre
machine virtuelle comme passerelle vers l'Internet pour les autres machines
virtuelles. Vous allez commencer par utiliser votre machine comme un pont
puis comme un routeur.
Pour utiliser votre machine virtuelle comme pont il faut :
-
déclarer deux interfaces réseau à votre machine (une en mode
"bridged network" et une en mode "custom"),
- inclure les mécanismes de pontage dans le noyau Linux de votre
machine virtuelle,
- ajouter le paquetage bridgex à votre système.
Jouez un peu avec la commande brcfg pour obtenir le résultat souhaité.
Désactivez le pont et tentez de réaliser le même comportement avec
une table de routage. Pour activer le routage sur une machine Linux
il faut modifier le contenu du fichier /proc/sys/net/ipv4/ip_forward.
Devez-vous faire des modifications sur les autres machines virtuelles ?
Si oui, lesquelles ? Modifiez la politique de routage de votre machine
pour interdire la sortie vers l'extérieur pour une seule machine virtuelle
tout en permettant aux autres d'accéder à Internet.
Utilisez la commande ipchains pour interdire les connections par
telnet sur les machines extérieures.
Comment faire pour autoriser une machine réelle de la salle de TP à accéder
complétement à Internet ?
3.3 Serveur DNS
Votre but est de configurer un serveur DNS pour votre réseau de TP.
Vérifiez que le paquetage bind est bien installé sur votre machine
et suivez les indications ci-après :
-
définissez les noms des machines de votre mini-réseau,
- pensez à définir aussi les adresses inverses,
- votre DNS doit être secondaire pour les zones
eudil.fr et priv.eudil.fr,
- n'oubliez pas de définir correctement les RR MX pour que le serveur
de messagerie de votre réseau puisse fonctionner correctement,
- insérez des alias pour le service de messagerie, pour le serveur FTP,
et pour le serveur Web,
- mettez à jour le fichier /etc/resolv.conf des autres machines.
Vérifiez que votre DNS est connu à l'échelle de l'Internet.
3.4 Serveur de messagerie
Vous devez installer les serveurs de messagerie pour votre
réseau de TP. Vérifiez que les paquetages sendmail et
ipopd sont bien installé sur votre système.
À l'aide du kit de Jussieu configurez la messagerie sur votre
machine virtuelle. Cette configuration doit respecter les points suivants :
-
tous les messages doivent passer par votre machine ;
- chaque utilisateur de votre mini-réseau doit avoir une
adresse du type
Prénom.Nom@tp.eudil.fr ;
- le champ Reply-to: des messages envoyés par vos
utilisateurs doit être, lui aussi, normalisé ;
- un alias doit être créé pour l'ensemble des utilisateurs
du mini-réseau.
Vous vérifierez la validité de votre configuration par des échanges de
messages avec Poitiers. Je ne doute pas que le serveur de messagerie sera vite
installé, profitez du temps restant pour installer un serveur POP,
vérifiez avec un lecteur de messagerie, sur un autre machine virtuelle,
que l'envoi et la réception de messages se fait sans problème.
3.5 Serveur Samba
Mettez en place un serveur Samba sur votre machine. Vérifiez que le paquetage
samba est bien installé. Pour tester votre configuration de Samba, vous
installerez un système NT4 sur une autre machine de TP.
Configurez Samba de façon à respecter les points suivants :
-
votre machine doit être le contrôleur pour le domaine TpEudil,
- les utilisateurs doivent pouvoir utiliser leurs compte Unix comme
lecteur réseau Z:,
- exportez le répertoire Unix /tmp comme disque réseau en lecture
et écriture pour tout utilisateur de NT,
- faites en sorte que les utilisateurs de NT puissent utiliser le
lecteur de disquettes du serveur Samba,
- changez le fichier de configuration de Samba pour que le répertoire
/tmp soit monté automatiquement à la connexion des utilisateurs,
- modifiez la configuration du partage de /tmp pour qu'un fichier
sous Linux garde la trace des connexions des utilisateurs NT (la
date et l'identification de l'utilisateur suffisent).
Dans un second temps vous allez configurer le serveur Samba pour qu'il
offre un service d'impression aux utilisateurs Unix et NT. Vérifiez
que le paquetage lprng est installé. Passez par les étapes
suivantes :
-
connectez une imprimante à votre machine virtuelle,
- mettez à jour le fichier /etc/printcap pour définir
l'imprimante,
- déclarez cette imprimante sur les autres machine du réseau
de TP,
- faites en sorte que les utilisateurs NT puissent imprimer
eux-aussi.
3.6 Serveur HTTP
Vous devez mettre en place un serveur HTTP. Vérifiez que le
paquetage apache est bien installé et réalisez ce qui vous
est demandé :
-
écrivez rapidement une page HTML de présentation,
- ajoutez une adresse fantôme à votre machine virtuelle
et créez deux serveurs Web virtuels (voir la documentation
à l'URL http://www.apache.org),
- écrivez une seconde page de présentation pour le second
serveur Web,
- à l'aide d'un fichier .htaccess protégez l'une des
deux pages de présentation avec un identifiant et un mot
de passe,
- dès que le DNS de votre réseau fonctionne, modifiez votre
définition de serveurs Web virtuels pour n'utiliser qu'une adresse
IP.
Dans un second temps, installez la base de données Postgres
(paquetage postgresql), le langage PHP pour serveur Web
(paquetage php4) et enfin le module Postgres pour PHP
(paquetage php4-pgsql). Testez la bonne interaction de ces
modules en testant une petite application Web utilisant une table
Postgres :
-
Créez la table avec les commandes ci-dessous (en temps qu'utilisateur
postgres) :
$ createdb AddressBook
$ psql AddressBook
# CREATE TABLE Addresses ("Name" text, "Phone" text, "Email" text);
# \q
- Donnez les droits à l'utilisateur www-data sur cette table :
$ psql AddressBook
# CREATE USER "www-data" NOCREATEDB NOCREATEUSER;
# GRANT all ON Addresses TO "www-data";
# \q
- Remplacez une page d'index par la page HTML ci-dessous :
<HTML>
<BODY>
<FORM ACTION="add-entry.php" METHOD="GET">
<TABLE BORDER=0 CELLPADDING=2 CELLSPACING=2>
<TR> <TD>Name</TD> <TD><INPUT TYPE="TEXT" NAME="Name" VALUE=""></TD> </TR>
<TR> <TD>Phone</TD> <TD><INPUT TYPE="TEXT" NAME="Phone" VALUE=""></TD> </TR>
<TR> <TD>E-mail</TD> <TD><INPUT TYPE="TEXT" NAME="Email" VALUE=""></TD> </TR>
<TR> <TD ALIGN=CENTER> <INPUT TYPE="SUBMIT" VALUE="Add"> </TD> </TR>
</TABLE>
</FORM>
</BODY>
</HTML>
- Dans le même répertoire que la page HTML déposez le fichier PHP
ci-dessous :
<HTML>
<BODY>
<?PHP
$db = pg_Connect( "host=localhost dbname=AddressBook" );
if( !$db ) { echo "Could not connect!"; exit; }
$query = "INSERT INTO Addresses VALUES( '$Name', '$Phone', '$Email' );";
$result = pg_Exec( $db, $query );
if( !$result ) { echo "No result set returned!"; exit; }
$rows = pg_NumRows( $result );
if( $rows = 0 ) { echo "Add Failed."; exit; }
$query = "SELECT * FROM Addresses WHERE \"Name\" = '$Name';";
$result = pg_Exec( $db, $query );
$row = pg_Fetch_Row( $result, 0 );
$nameResult = $row[0]; $phoneResult = $row[1]; $emailResult = $row[2];
echo "Name = $nameResult<BR>";
echo "Phone = $phoneResult<BR>";
echo "E-mail = $emailResult<BR>";
pg_Close( $db );
?>
<H3>Add completed</H3>
</BODY>
</HTML>
Modifiez la page HTML et écrivez une application PHP pour ajouter à
l'application Web un bouton permettant d'avoir la liste complète du
carnet d'adresses.
3.7 Serveur FTP anonyme
Mettez en place, sur votre machine, un serveur FTP anonyme
(vérifiez que le paquetage wu-ftp est installé sur votre système).
Configurez-le de façon à respecter les points suivants :
-
tous les utilisateurs doivent pouvoir rapatrier des fichiers
du répertoire pub et envoyer des fichiers dans le répertoire
incoming ;
- le serveur FTP doit être accessible uniquement depuis des
machines dans le domaine fr ;
- vous devez limiter l'accès à votre serveur : deux connections
simultanées venant de l'USTL et une seule venant d'ailleurs ;
- permettez aux utilisateurs de l'EUDIL de rapatrier un répertoire
complet via l'utilitaire tar ;
- permettez à certains utilisateurs (i.e. ceux possédant un
mot de passe particulier) de pouvoir modifier l'arborescence du
répertoire pub ;
Vérifiez que votre configuration marche en accédant au serveur FTP
d'une autre machine de votre réseau, d'une machine du réseau de
l'EUDIL et d'une machine de Poitiers.