LinuxÉdu-Québec

Accueil À propos de nous Contact Plan du site
Accueil du site > Applications > Administration système > Grandeurs et misères du montage d’un serveur pédagogique

Le samedi 23 novembre 2002, par Benoit St-André, Pierre Lachance

Grandeurs et misères du montage d’un serveur pédagogique

Un serveur peut être un atout pour la pédagogie, c’est pourquoi nous publions cet article.

Nous retravaillerons l’article afin qu’il réponde aux besoins pédagogiques.

Contenu :
  1. En quoi un serveur peut-il être pédagogique ?
  2. Choix du système d’exploitation
  3. Installation de la distribution Linux Mandrake
  4. Mise en place et utilisation des services
    1. Serveur web
    2. FTP
    3. SSH
    4. Sauvegarde des données
    5. SAMBA
    6. php-MySQL
    7. Courrier électronique
  5. Installation des outils web dynamique (phpNuke, phpSherpa,...)
  6. Le concept de sécurité
  7. Comment trouver de l’aide
  8. Conclusion
PNG - 43.9 ko


1. En quoi un serveur peut-il être pédagogique ?

La puissance du réseau n’est pas exploitée à son plein potentiel, et nous ne parlons pas du côté technique, mais bien pédagogique. Les applications bureautiques sont relativement bien connues : traitement de texte, chiffrier électronique, logiciel de présentation, traitement d’images, etc. Cependant, très peu d’écoles québécoises ont accès à des services réseaux.

Examinons les services offerts par un site comme Yahoo.ca : courrier électronique, agenda, bloc-notes, groupes de discussion, porte-documents, etc. Des outils réseaux pour supporter l’apprentissage par l’intégration des TIC. Nos élèves devraient avoir la chance de pouvoir travailler avec de tels outils, sans publicité toutefois.

Un serveur est nécessaire pour offrir ces services à caractères pédagogiques. De plus, ce sont les élèves qui utiliseront ces services. C’est pour ces raisons que nous parlons de « serveur pédagogique ».

2. Choix du système d’exploitation

Voici quelques éléments à prendre en considération lors de la mise en place d’un serveur pédagogique :

 Le nombre de « clients » sera élevé, on doit donc penser aux coûts des licences qui sont généralement directement proportionnels avec ce nombre.
 Les services doivent être disponibles de partout car les élèves ne sont pas confinés à apprendre qu’à l’école.
 Le serveur doit être sécuritaire car il y aura certaines données confidentielles.
 Le service ne doit pas être interrompu à tout moment, car l’intégration des TIC reste fragile.
 Si des problèmes surviennent, un support adéquat doit être disponible.

Pour ces raisons nous avons choisi le système d’exploitation GNU/Linux.

3. Installation de la distribution Linux Mandrake

Commençons donc notre travail. Si tout va bien (votre matériel est reconnu, votre réseau est actif, vos cédéroms ne sont pas corrompus,...), dans environ 3 heures vous serez le gestionnaire d’un serveur pédagogique. Pour être certain que vos images .iso ne sont pas corrompues, vous pouvez (en linux) faire la commande "md5sum lenomdufichier.iso". Cette commande vous donnera une série de caractères que vous pouvez comparer avec celles indiquées dans le fichier md5sum_9.0 (ou md5sum_8.2) qui accompagne normalement les 3 fichiers images .iso d’une distribution. Si cette série de caractères est la même, vos images sont garanties d’être conformes à l’original.

Pourquoi le choix de la distribution de Linux-Mandrake ?

Notre choix de distribution est basé sur quelques mois d’utilisation. Mandrake :
 répond bien à nos besoins de poste autonome et de serveur ;
 est simple à installer ;
 produit des mises à jour régulières ;
 offre un choix de paquetages très complet pour l’éducation ;
 propose une interface et des outils graphiques très intéressants.

Un article détaillant l’installation de Mandrake 8.2 est disponible ici.

Pour lire (en anglais) une installation en détails et des fonctions de la version de Mandrake 9.0, cliquez ici.

4. Mise en place et utilisation des services

Que voulez-vous offrir sur votre serveur pédagogique ? C’est la première question à vous poser. Suggestion : afin d’expérimenter (apprendre) votre serveur, un projet à vivre avec des élèves devrait être à la source de votre installation, c’est ce projet qui vous guidera dans les services à offrir.

Voici donc la description et le protocole d’installation de quelques services courants.

IMPORTANT !!! : Lorsque l’on travaille en Linux, il faut être connecté sous un nom d’usager. L’administrateur en chef d’une machine est l’usager root. Il faut absolument se créer aussi un usager personnel pour pouvoir travailler sur le serveur. À moins que ce ne soit nécessaire, il est TRÈS DANGEREUX DE TRAVAILLER EN ÉTANT ROOT. Un conseil, travaillez toujours sous votre code personnel et ne devenez root (en faisant la commande su (pour super user) que lorsque nécessaire. D’ailleurs les applications nécessitant les permissions de root (comme Linuxconf par exemple) vont vous demander le mot de passe de root si nécessaire.

Pour vous aider, ce petit icône indique lorsque les modifications demandent d’être root.

4.1 Serveur web : L’application utilisée est Apache. Si vous l’avez sélectionné lors de l’installation, il est actif sur votre poste. Faites un test : http://localhost/. Une page d’accueil Apache derait apparaître.

Vous aimeriez peut être que lorsqu’un visiteur vient sur votre site, que ce soit vos pages web qui soient affichées. Pour ce faire on doit signaler à Apache où se trouvent les pages par défaut. C’est le fichier /etc/httpd/conf/httpd.conf que l’on doit modifier .

Par défaut, les pages web sont situées sur le disque dans /var/www/html .

Remplacer la ligne : DocumentRoot /var/www/html par DocumentRoot /home/usager/public_html. De cette façon, les pages affichées en entrant dans le site seront celles du dossier /public_html de « usager ». Pour que les modifications soient pris en compte, en mode console faites service apache stop, puis service apache start (ou encore, service apache restart).

Notez que les opérations précédentes ne sont pas obligées de se dérouler en mode texte. Vous pouvez également utiliser des outils de configuration comme par exemple Linuxconf (où la configuration d’Apache se retrouve dans l’onglet "Configuration" sous "Réseau" dans "Tâches serveur" à "Serveur web Apache".

Chaque usager d’un serveur a la possibilité de publier un site web. L’adresse sera du genre : http://votrenom.qqc/ usager. Il est posssible de modifier la configuration d’Apache afin d’obtenir une adresse comme : http://votrenom.qqc/titredusite. Éditez le fichier /etc/httpd/conf/commonhttpd.conf, rendez-vous à la section et ajouter une ligne comme : Alias /titredusite /home/usager/public_html.

N.B. : Il est possible que votre serveur web ne soit pas complet car des paquetages ne s’installent pas tous. Si vous utilisez php dans vos pages, vérifiez à l’aide du gestionnaire de paquetatges de Mandrake si tout est là.

4.2 FTP : File Transfert Protocol

Comme sont nom l’indique, grâce à ce service on peut transférer des fichiers d’un poste vers le serveur. L’application que nous vous suggérons est ProFTPd. Cette application aussi sera active si vous l’avez choisi lors de l’installation.

Afin de sécuriser un peu plus ce service, éditez le fichier /etc/proftpd.conf. Ajoutez la ligne suivante (déjà fait dans Mandrake 9.0) :

(notez les 3 TAB avant le tilde) ce qui empêchera les utilisateurs de pouvoir remonter dans les répertoires au dessus du sien.

4.3 SSH : Secure SHell

SSH est un protocole de communication entre deux ordinateurs. Comme son nom l’indique il est sécuritaire (encrypté), donc un outil fort intéressant lorsqu’on veut travailler sur notre serveur à distance. Le FTP permet de faire certaines actions sur le serveur, mais il est plus prudent de les exécuter en SSH.

En mode console, pour se brancher à notre serveur on fait la commande : ssh usager@votrenom.abc, puis on vous demandera votre mot de passe. Voilà, vous êtes « sur » votre serveur (en mode console). Vous pouvez tout faire à distance, à condition de connaître les commandes. En voici quelques-unes :

 ls = voir le contenu du répertoire courant
 reboot= pour redémarrer le poste
 cd /repertoire = aller dans répertoire
 emacs nomfichier = pour éditer le fichier avec l’éditeur emacs
 killall application = pour arrêter l’application
 pstree = pour voir les services en fonction
 logout = pour quitter (exit)
 cp /fichier /ailleur/fichier1 = pour copier un fichier (on peut changer de nom)
 rm fichier = pour effacer un fichier
 mv fichier /destinationdu/fichier = déplace un fichier vers un répertoire
 chmod 644 -R /dossier = changer les droits sur un dossier et son contenu
 ./fichier = exécute l’application ou le script
 ifconfig = permet de voir l’état des cartes réseaux.
 ifup eth0 = démarre l’interface réseau eth0

Un utilitaire fort apprécié pour ceux qui veulent travailler en mode graphique est « Kio Fish ». Cette application permet de se brancher en SSH via le navigateur Konqueror, donc en mode graphique. Pour le télécharger, cliquez ici (voir dans le dossier KDE 303).

4.4 Sauvegarde des données

Quel malheur de tout perdre le travail d’une semaine ! Imaginez de perdre celui d’une année ! C’est pourquoi on doit se doter d’un système de sauvegarde de nos données (du système aussi si vous le voulez).

Principe de base : Afin de ne pas prendre 8 heures pour chaque sauvegarde de vos données (plusieures Mo), il est recommandé d’utiliser l’application « rsync ». Elle fera une comparaison de la source et de la destination pour ne transférer ce qui a été modifié. On économise temps et bande passante.

Sauvegarde sur le même appareil :

En mode console  : rsync -avz /var/lib/mysql/ /home/usager/dossier/mysql/

où -avz sont des options de la commande rsync. Pour plus de détails faites la commande man rsync dans une console.

Ceci synchronise votre base de données MySQL vers un dossier dans le répertoire de « usager ». Le dossier /var sera écrasé lors d’une réinstallation du sysème (à moins que vous soyez un pro de Linux), c’est pourquoi nous suvegardons sur le même disque ce dossier.

Sauvegarde vers un autre appareil :

En mode console : rsync -a -e ssh /dossiersource/ ordi.qqc :/home/usager/dossierdestination/ Ceci synchronise le /dossiersource vers un ordinateur du nom de ordi.qqc (adresse web) dans le dossier /dossierdestination/ de « usager ».

Cette fonction est réutilisable pour tout autre fichier.

Comment rendre cette tâche automatique ? En utlisant l’application « LinuxConf ». Démarrer LinuxConf , cliquez sur l’onglet « Contrôler », cliquez sur « Panneau de configuration » puis sur « Tâches préprogrammée... ». Ajoutez la tâche rsync ci-haut.

Si vous utilisez un appareil distant pour votre synchronisation, un mot de passe vous sera demandé à chaque sauvegarde, alors on doit utilisé des clés d’encryption pour identifier correctement l’appareil.

Pour vous créer une pairs de clés, sur le serveur (en mode terminal) : ssh-keygen -t dsa. Vos clés se retrouvent dans le dossier (caché) /home/usager/.ssh. Ne jamais faire cette action en super-utilisateur pour des raisons de sécurité.

Avec un logiciel ftp (ou en SSH), rendez-vous dans le dossier de sauvegarde sur le serveur. Entrez dans le répertoire caché /.ssh. Transférez votre clé publique (id_dsa.pub) vers le serveur de sauvegarde. Renommez-la authorized_keys. Voilà, le mot de passe ne vous sera plus demandé car les deux appareils se reconnaissent et vous pouvez copier tout votre site web sur le serveur de sauvegarde.

4.5 SaMBa

Votre parc informatique est hétérogène, c’est-à-dire qu’il contient des ordinateurs de différentes technologies (Windows, Mac, Linux) ? Vous aurez donc besoin de ce service qui permet d’accéder à votre espace disque de n’importe quelle technologie.

Pour lire un document d’installation de SaMBa, voir ici.

4.6 php-MySQL

Si un de vos besoins pédagogiques est d’offrir des services dits « en ligne », une des solutions est d’installer la base de données MySQL et le langage php sur votre ordinateur.

Aucune autre configration ne sera nécessaire, à moins que le service « mysql » ne soit pas démarré. Dans ce cas, utilisez « Mandrake Control Center » pour le démarrer.

Un des outils très utiles pour gérer ses bases de données se nomme « phpMyAdmin » (télécharger ici). Pour installer l’application, voir le fichier « install » fourni avec l’application. Pour sécuriser phpMyAdmin (très important), voir cet acticle.

4.7 Courrier électronique

Le courrier électronique est l’une des applications web les plus utilisées. Plusieurs projets pédagogiques sont réalisés grâce au fameux « mail ». C’est pourquoi nous considérons qu’un serveur pédagogique doit offrir ce service.

Il y a une application du nom de Postfix qui est intégré dans la distribution Mandrake. Pour la configurer, utiliser le panneau de contrôle mandrake, section serveur (si vous ne l’avez pas installé, rendez-vous dans Installation de paquetage et installer DrakWizard). Par la suite, s’il y a des problèmes de configuration, éditez le fichier /etc/postfix/main.cf. Vous y retrouverez toutes les configurations.

Le service "pop-3" doit être présent lorsqu’on fait la commande nmap votreserveur. En fait, vous venez de tester les ports ouverts sur votre serveur. Pour des raisons de sécurité, ne laissez pas de ports ouverts si vous n’utilisez pas les services associés. Voici les ports ouverts après une installation comme celle décrite dans le présent document :

 21/tcp open ftp
 22/tcp open ssh
 25/tcp open smtp
 80/tcp open http
 110/tcp open pop-3
 443/tcp open https
 3306/tcp open mysql

En tant qu’usager vous avez automatiquement une adresse de courrier du type : usager@votresite.qqc. On peut ajouter des usagers qui n’auront qu’un compte de courrier électronique (il ne seront pas usager sur le serveur). Pour ce faire, vous utilisez Linuxconf , dans la section Utilisateurs-Comptes spéciaux.

5. Installation des outils web dynamiques (phpNuke, phpSherpa, portfolio...)

Installer une application web n’est pas aussi simple que pour une application sur un poste de bureau. Un article explique les généralités pour installer de telles applications ici.

Pour lire un article sur l’installation de phpNuke, cliquez ici.

6. Le concept de sécurité

Est-ce que votre serveur sera sécuritaire ? Voici quelques éléments de réponses :

 Seuls les ports offrant des services sont dit « ouverts ». Alors si quelqu’un veut accéder à votre serveur via un port précis, il ne pourra pas à moins qu’il y est un service qui répond. Pour voir les ports ouverts sur un serveur, faites la commande nmap nomserveur comme vu plus haut.
 GNU/Linux offre la chance aux programmeurs de « voir » le code d’une application, donc de trouver un « trou » de sécurité avant que quelqu’un ait même percé l’application. Alors en faisant ses mises à jours régulièrement on évite des possibilités d’intrusion.
 Les mots de passe sont les clés de votre serveur, alors n’utilisez pas « bonjour » pour le votre et ne collez pas un papier sur le bord de l’écran contenant vos pensées :o)
 Les virus sont presqu’inexistant sur GNU/Linux, donc de ce côté il n’y a pas trop de soucis à se faire.

7. Comment trouver de l’aide ?

LinuxÉdu-Québec a un forum de discussion sur ce sujet à l’adresse suivante : http://www.linuxeduquebec.org/forums/. De plus, pour ceux qui veulent aller plus loin, Google fait des merveilles.

Chaque application libre possède de la documentation à son sujet, prenez le temps de lire, car vous découvrirez que ce n’est pas si complexe, seulement nouveau :o).

8. Conclusion

Cet article avait pour but de tenter de démystifier le concept de serveur pédagogique. L’installation, la configuration et la gestion sont relativement simple, il faut seulement prendre son temps et lire la documentation comme celle ci-haut.

Comme vous l’avez constaté, il est intéressant d’avoir lu cet article avant d’installer votre serveur car il y a des applications à sélectionner lors du choix des paquetages.

P.-S.

Cet article est en construction perpétuelle, car nos apprentissages continues. Si vous dévouvrez des « faussetés » ou que vous aimeriez en savoir plus sur un des aspects discutés, n’hésitez pas à nous contacter.

4 Messages de forum

  • 19 décembre 2003 20:33, par René Rancourt

    J’imagine mal un enseignant utilisant la recette spécifiée et branchant le tout sur le réseau de l’école ou de la commission scolaire sans l’aval du service de l’informatique. Parce qu’en fait ce sont eux les spécialistes ! Qu’on le sache !

    Quelqu’un a déjà écrit " Installer un serveur ! ça s’apprend ". La neuro-chirurgie aussi ça s’apprend ! Qu’on me permettre cet exces, je trouvais la présentation inadéquate.

    Ainsi, installer un serveur en laissant actif par exemple le service DHCP peut occasionner des pannes majeures. Installer un serveur sans avoir auparavant sécurisé ses ports et ses services ou sans vérifier la sécurité et la stabilité des versions est maladroit et dangereux. Les organismes qui laissent un serveur sans mécanismes de sécurité approprié sont rapidement piratés, souvent ils servent de dépot de données ou de tremplin pour le lancement de pourriel (spam). Il se pourrait bien que rapidement votre serveur serve, à votre insu, de dépot d’images litigieuses.

    La prudence voudrait que tout nouveau serveur, soit placé dans une zone dite de "quarantaine", sans branchement externe. On commence par éliminer les services qui ne sont pas utilisés, on crées des mots de passes complèxes du genre, 1Mo=1024K !, on désactive les ports qui ne sont pas utilisés, on sécurise Apache, Samba, on remplace FTP par SSH... etc. etc. En fait il y a beaucoup a dire sur ce sujet et on a qu’a s’abonner aux listes sur la sécurité pour se convaincre de la problématique et de son ampleur.

    Notre expérience nous permet d’affirmer que bien installer et configurer un serveur prend plusieurs jours. Le sécuriser est un mécanisme continu. Une batterie de test : Saint, Nessus.. etc, permet d’authentifier les trous de sécurités, mais si il a été mal configuré au départ... rien n’y fera. Donc, un conseil, ne brancher un nouveau serveur qu’en mode local, pour l’utiliser sur le Net, faites le vérifier par des spécialistes.

    René Rancourt

    CSDL

  • 20 décembre 2003 08:05, par Pierre Lachance

    Bonjour,

    merci de vos commentaires. Je vous invite à lire ces deux textes qui expliquent comment arriver à sécuriser un serveur sous GNU/Linux.

    http://linuxeduquebec.org/article.p...

    http://linuxeduquebec.org/article.p...

    Ces textes font le tour de vos recommandations.

    Et je suis d’accord avec vous quand vous dites que vous exagérez en comparant la neurochirurgie et le montage d’un serveur !!!!

  • 20 décembre 2003 09:19, par René Rancourt

    Mon intervention ne veut certes pas contraindre les enseignants dans leurs démarches pédagogiques. L’installation et la configuration d’un serveur peut certes être profitables aux élèves...

    Mais si ce n’est pas fait avec des règles, celà peut conduire à la catastrophe. Ces règles dépassent la lecture d’un ou deux sites. On doit prendre la sécurité au sérieux ! Dans nos CS les réseaux sont rendus très complèxes ; ont voit les systèmes téléphoniques volIP, des SAN, etc. Donc je le répète, si vous voulez brancher un serveur sur le réseau, ne vous improvisez pas apprenti-sorcier, et faites le vérifier par un expert, de votre service informatique ou par un consultant externe d’une firme spécialisé en sécurité.

    Si vous voulez apprendre la neurochirurgie vous pouvez toujours voir ce lien... : ?)))

    Au bout du compte vous aurez lu sur le sujet, mais vous ne serez pas un Neuro-chirurgien pour autant...

    René R.

  • 2 mai 2004 04:45, par Yannick Biard

    Bonjour,

    Prof moi même (en france) je sais par expérience que l’installation d’un serveur est longue avant d’obtenir des resultats convenables. Aussi, je vous indique quelques projets (que vous connaissez peut être déjà) qui vous faciliteront la vie :

    - samba edu 3 (serveur de fichier et controleur de domaine) gérant les acl : http://193.49.66.139/se3doc/index.html

    - slis (serveur de courrier et proxy-firewall avec gestion de listes noires pour les sites pornos et autres) : http://www.ac-grenoble.fr/carmi-internet/slis/

    - sai (proxy firewall avec gestion de listes noires pour les sites pornos et autres) : http://dialog.ac-reims.fr/linux/index.php ?art=SAI

    - free EOS (sait tout faire) : http://free-eos.org/

    Un site généraliste sur les logiciels libres : framasoft.net

    J’espère vous avoir rendu service.

    Cordialement

    yannickPOINTbiardATlapostePOINTnet


Applications | LinuxÉdu-Québec | Revue de presse | Projets | Événements - colloques | Réflexion et opinion | Système d’exploitation