Installer la 3e machine virtuelle Debian

De Wiki Dane (ex wikitice)
Aller à : navigation, rechercher

Services Internet sur la machine Debian d'un Slis4


Il faudrait mettre à jour les références à php et passer de la version 4 à la version 5.

Et noter le passage de apt-get à aptitude.

Et enfin tester la mise à jour de Sarge vers Lenny...


version du 03/07/2009

auteur : Michel Suquet (Collège Jean Monnet 91640 Briis-sous-Forges)

contributions de Lmds et de Julien Delmas


Introduction et préliminaire

Je décris ici mes essais d'utilisation de la machine Debian pour installer un serveur Apache, un serveur ftp, php, ... Je décris aussi comment configurer l'accès depuis Internet à ces différents services. Pour la configuration des règles de routage, je remercie François-Xavier Vial qui a tout fait :-). C'est normal, c'est mon excellent conseiller de bassin (passez-moi le cirage...). Je pense qu'il faudra ajouter des règles similaires si un jour j'installe une autre machine Debian dans la DMZ du Slis...

Quelques remarques

Remarque 1 : pour l'instant, ce document n'est pas achevé. Il me sert de base de travail afin de réfléchir à ce que j'ai fait et comment je l'ai fait et ce qu'il me reste à faire et comment le faire. Ce document est basé sur les notes du module Services Internet du stage Suivi et Besoin, module animé par Fabrice Lemoine. Bref, je vais apprendre plein de choses ;-)

Remarque 2 : Les différents tests effectués l'ont été depuis l'internet. Reste à vérifier qu'ils fonctionnent correctement depuis une machine du réseau pédagogique.

Remarque 3 : Je suppose ici que la machine virtuelle Debian d'un Slis4 est activée. Il est prévu (quand ?) que cette activation soit possible depuis la console du Slis. Pour l'instant, seule l'équipe du crdp qui gère le réseau des Slis de l'académie est capable d'activer cette machine si cela n'a pas été fait lors de l'installation. Ne pas oublier ensuite de "rebooter" la machine.

Remarque 4 : Lors de l'installation, la version de Debian est la Sarge. Comme depuis il y a eu 2 autres version stables (Etch et Lenny), la Sarge est passée en archive. En conséquence, il est nécessaire de modifier le fichier /etc/apt/sources.list pour pouvoir administrer le système (installation et mise à jour).


Les adresses IP (Internet Protocole) pour cet article

  • Le réseau intranet a pour adresse 192.168.1.0/24
  • Le réseau de la DMZ du Slis4 a pour adresse IP : 192.168.78.0/24
  • Le Slis a pour adresse IP : 192.168.1.1 (C'est la passerelle pour le réseau pédagogique) et 192.168.78.1 (C'est la passerelle pour le réseau de la DMZ)
  • La machine Debian a pour adresse IP (Internet Protocole) : 192.168.78.3
  • Le LCS a pour adresse IP : 192.168.78.6


Administration de la machine virtuelle Debian d'un Slis4 et du site

Administration de la machine

Pour administrer la machine Debian d'un Slis4, il est nécessaire, sous Windows©, d'utiliser un émulateur de terminal comme Putty qui utilise le protocole ssh (Secure SHell). Tout d'abord, il faut télécharger Putty.

Le programme Putty.exe est directement utilisable sans installation particulière.
Slis001.jpg

Vous obtenez, après un éventuel avertissement de sécurité, la fenêtre ci-contre :















Ensuite, tout dépend si vous êtes sur une machine du réseau pédagogique ou sur une machine extérieure au réseau pédagogique, par exemple depuis chez vous.

Depuis une machine du réseau pédagogique (non encore testé)

Préliminaire : Au préalable, il faudra configurer le Slis pour qu'il route convenablement depuis l'intranet votre terminal vers le port 22 de la machine Debian. Pour cela, dans la console du Slis, en choisissant dans le menu Administration Sécurité>Pare-feu>Gestion du routage, vous ajoutez une règle de filtrage de l'intranet vers l'internet (gestion du routage) :

Slis03.jpg





Ensuite : Vous indiquez, dans le champ Host Name l'adresse IP (Internet Protocole) de la machine Debian qui est 192.168.78.3 et en indiquant le port 22. Vous pouvez sauvegarder cette session en lui donnant un nom explicite avec le bouton Save. Une fois prêt, vous appuyez sur le bouton Open pour ouvrir un terminal de commande ; une fenêtre apparaît qui vous demande un login : indiquer root puis un mot de passe : indiquer le mot de passe décidé au moment de l'installation du Slis4 (Normalement, c'est le même pour les Slis, le LCS et la machine Debian).


Depuis une machine extérieure

Préliminaire : Au préalable, il faudra configurer le Slis pour qu'il route convenablement depuis l'internet votre terminal vers le port 22 de la machine Debian. Pour cela, dans la console du Slis, en choisissant dans le menu Administration Sécurité>Pare-feu>Pare-feu, vous ajoutez une règle de filtrage de l'internet vers l'intranet (pare-feu) : Slis01.jpg

Ensuite : Vous indiquez dans le champ Host Name l'adresse url du Slis qui est clg-monnet-briis.ac-versailles.fr et en indiquant le port 222. La suite est la même que dans le 1er cas ci-dessus.

Voici ce que l'on obtient : Slis002.jpg

Remarque : si vous obtenez un message d'erreur, c'est sûrement que vous n'avez pas redémarrer le Slis après l'activation de la 3ème machine debian...


Mise à jour de la version Sarge

Modification du fichier /etc/apt/sources.list

Comme je l'ai déjà mentionné, les paquets disponibles pour Sarge sont maintenant en archive. D'ailleurs, le fichier /etc/apt/sources.list après l'installation du Slis4 a pour contenu : Slis00101.jpg

Vous pouvez le vérifier en utilisant la commande suivante après avoir ouvert une console avec Putty (voir ci-dessus) :

nano /etc/aptsources.list

Profitez-en pour commenter les lignes de ce fichiers en mettant un # devant chaque ligne puis rajouter la ligne suivante :

deb http://archive.debian.org/debian sarge main non-free contrib

Cette ligne m'a été conseillée par Christian Gouget. Mes propres recherches avaient abouties aux 2 lignes suivantes :

deb http://ftp2.fr.debian.org/debian-archive/ sarge main
deb-src http://ftp2.fr.debian.org/debian-archive/ sarge main

Cependant, les mises à jour effectuées avec ces 2 lignes ne devaient pas être complètes car celle effectuée avec la ligne proposée par Christian a encore aboutie à des téléchargements.


Mise à niveau et installation de logiciels de base

Tout d'abord, je vous conseille de noter la version du noyau Linux que vous trouverez par la commande :

uname -r

La version est la 2.6.16.29-xen ; cela sera utile s'il faut mettre à niveau le noyau.

La version de la Sarge se trouve dans le fichier /etc/debian_version que vous pouvez ouvrir à l'aide de la commande suivante :

nano /etc/debian_version

La version est la 3.1 ; cela sera utile pour vérifier que les changements de versions se sont bien faites.

Une fois le fichier /etc/apt/sources.list modifié, il est temps de mettre à jour le système par la commande suivante :

apt-get update

La suite des opérations est à venir...


Gestion du site

Lorsque le serveur Apache sera installé (voir le paragraphe suivant), vous pourrez, sous Windows©, gérer le site par l'intermédiaire de la console winscp qui permet de faire du sftp avec n'importe quel utilisateur. La sécurité est meilleure car on utilise alors le protocole ssh. Il faudra alors, en utilisant la console d'administration, installer le service ssh par la ligne de commande : aptitude install ssh (à moins qu'il ne soit déjà en place, ce qui l'était dans mon cas).

L'installation de winscp ne pose pas de problème particulier. Ensuite, vous lancez winscp.exe pour obtenir la fenêtre suivante :
Slis003.jpg


En cliquant sur Nouvelle, vous créez une nouvelle session en indiquant le nom d'hôte clg-monnet-briis.ac-versailles.fr et le port 222.

Vous pouvez aussi indiquer l'utilisateur root ou mieux un autre, créé pour cela, comme cela est décrit au paragraphe concernant le ftp.









A ce propos, vous pourrez, dans le fichier /etc/ssh/sshd_config, modifier cette ligne comme suit : PermitRootLogin no. Une fois ce fichier modifié, vous relancer le service ssh par la commande : /etc/init.d/ssh restart dans la console putty. Cela interdit le mode ssh pour le compte root afin d'améliorer votre sécurité car beaucoup d'attaques sont basées sur des tentatives de connexions par ssh avec le compte root. (Merci à Fabrice Lemoine pour ses conseils et explications).

Vous sauvegardez les données pour votre session puis vous vous connectez et vous obtenez une fenêtre qui ressemble à la suivante :
Slis004.jpg

Installation d'un serveur APACHE

Apache est un logiciel permettant de servir des pages webs respectant le protocole http.


Installation

Dans un terminal de commande (voir ci-dessus pour sa mise en oeuvre), vous installez un serveur Apache2 par la ligne de commande suivante (Répondez positivement aux différentes questions éventuelles) :

apt-get install apache2


Vérification

Pour vérifier que le serveur est correctement installé, vous ouvrez un butineur comme Firefox et vous indiquez l'adresse : http://clg-monnet-briis.ac-versailles.fr/www2/ si vous êtes depuis Internet ou http://192.168.78.3 si vous êtes sur le réseau pédagogique (non testé). Vous obtenez alors une page qui indique "It works". Ce qui signifie que çà marche :-)


Remarques et bizarrerie

Remarque 1 : il faudra, avant de procéder à cette vérification, ajouter une règle de routage pour atteindre la page web depuis l'internet. Pour cela, dans l'interface du Slis, vous choisissez le menu Administration>Sécurité>Reverse Proxy et vous rajoutez la règle suivante :

Slis04.jpg

La machine Debian a pour alias dans cet exemple www2. On aurait pu choisir un autre alias mais c'est très bien ainsi.

Remarque 2 : si vous modifiez les fichiers de configuration, ne pas oublier de redémarrer le serveur apache avec la commande dans la console d'administration : /etc/init.d/apache2 restart

Bizarrerie ? : J'ai voulu modifier la page Web index.htlm en mettant "Çà marche !" avec "It works !". En testant cette page lorsqu'elle est sur mon ordinateur, il n'y a pas de problème mais après l'avoir transféré sur la machine Debian, les accents ne passent pas et on voit des triangles noirs avec un point d'interrogation à l'intérieur. Cela est dû à l'encodage des caractères : le code de la page indique un encodage comme iso-8859-1 et le serveur renvoie de l'utf-8. Pour corriger cela, il suffit de modifier l'encodage de la page à l'aide de Komposer (Menu Format>Titre et propriétés de la page) et de choisir l'utf-8 ; il est préférable de faire maintenant ses sites en utf-8. Les serveurs le prennent en compte et vous pourrez y mettre du chinois, de l'arabe, du grec, du russe... (Merci à Johan Pustoch pour cette aide). J'ai mis, en références, des pages plus détaillées sur l'encodage des caractères.

En fait, ce n'est pas une bizarrerie ; dans l'en-tête de la page html, il faut spécifier l'encodage de la page s'il ne correspond pas à ce que va interpréter le navigateur par défaut.


Installer un serveur de ftp

Il n'est pas utile d'installer ce serveur. Il suffit de gérer les mises à jour du site à l'aide de la console winscp qui permet de faire du sftp avec n'importe quel utilisateur. La sécurité est meilleure car on utilise alors le protocole ssh. Il faudra alors, en utilisant la console d'administration, installer le service ssh par la ligne de commande : apt-get install ssh (à moins qu'il ne soit déjà en place, ce qui était mon cas).


Installation

Afin de pouvoir télécharger des pages vers ou depuis la machine Debian, j'ai installé un serveur de ftp comme proftpd par la ligne de commande suivante :

apt-get install proftpd


Vérification

Il faudra rajouter une règle de routage dans le Slis pour atteindre le port 21 de la machine Debian.

règle de filtrage de l'intranet vers l'internet (gestion du routage) : Slis06.jpg


règle de filtrage de l'internet vers l'intranet (pare-feu) : Slis07.jpg


Il faudra aussi créer un compte utilisateur pour se servir du client de ftp. Par exemple msuquet. Pour cela, dans la console d'administration putty (voir ci-dessus), vous tapez les commandes suivantes :

useradd  msuquet -g www-data -d /home/www -m -s /bin/bash

passwd msuquet

La 1ère commande (voir explications plus bas) crée l'utilisateur msuquet et la 2ème permet de lui attribuer un mot de passe. Ensuite, il faut modifier une ligne du fichier de configuration du serveur Apache (voir ci-dessous).


Pour vérifier que le serveur de ftp est correctement installé, il suffit de l'utiliser. Pour cela, j'utilise Filezilla qui est un client-ftp avec le port 21. Son installation n'a rien de particulier.

On obtient la fenêtre ci-contre lorsqu'on le lance :
Slis005.jpg

Dans le champHote, indiquez : clg-monnet-briis.ac-versailles.fr si vous êtes sur une machine depuis l'internet ou 192.168.78.3 depuis le réseau pédagogique (non testé).

Vous indiquez l'utilisateur msuquet et son mot de passe. Le port 21 est par défaut.

Je vous conseille d'utiliser le gestionnaire de sites pour sauvegarder ces informations pour la prochaine connection. Si vous laisser le champ du mot de passe vide, il vous le demandera lors de la connection ;-)


A titre d'exercice

Vous pouvez télécharger la page index.htlm qui se trouve dans le répertoire /var/www/apache2-default/ puis la modifier pour faire apparaître un autre texte que "It works" ! (voir ci-dessus lors de la vérification de l'installation du serveur Apache). Ensuite, vous la téléchargez dans l'autre sens et vous reproduisez la vérification décrite ci-dessus.

Cela ne marche pas pour l'écriture dans l'autre sens de la page modifiée ? C'est normal, les permissions sur le fichier index.html ne sont pas suffisantes et son proprétaire est root et non msuquet. En mettant 0777 pour les permissions de ce fichier index.html, vous pourrez l'écraser. Pour changer les permissions, utilisez la console winscp (voir la remarque ci-dessous).

Pour ne pas être embêté avec les problèmes des utilisateurs, il faut créer un utilisateur appartenant au groupe www-data et définir son "home" qui sera le répertoire racine du site Web. Voici la commande pour cela (merci à Fabrice Lemoine pour cette solution) :

useradd monutilisateur -g www-data -d /home/www -m -s /bin/bash

explication de la commande :

monutilisateur : login de l'utilisateur

-g www-data : mon utilisateur appartient au groupe www-data

-d /home/www : son home est /home/www

-m : on créé le répertoire home

-s /bin/bash : on attribut un shell à l'utilisateur (utile pour le ftp)


Afin de pointer vers ce répertoire /home/www/, on modifie le fichier de configuration de Apache qui est le fichier /etc/apache2/sites-available/default et on change les lignes :

DocumentRoot /var/www/ en DocumentRoot /home/www/

Directory /var/www/ en Directory /home/www/

Sans oublier de créer, avec Filezilla, un répertoire /apache2-default/ dans le répertoire /home/www/ et d'y mettre une page Web index.html.

Vérifiez avec votre butineur à l'adresse http://clg-monnet-briis.ac-versailles.fr/www2/ et en prenant une page index.html différente de celle qui se trouve dans le répertoire /var/www/apache2-default ;-)


Quelques remarques

Remarque 1 : Une autre façon de faire est d'utiliser la console winscp qui permet de faire du sftp en tant qu'utilisateur root. Cela m'a permis de contourner mes problèmes avec Filezilla et l'utilisateur msuquet jusqu'à ce que je comprenne ce qui n'allait pas.

Remarque 2 : Pour modifier une page htlm, vous pouvez utiliser Komposer qui est un éditeur de page html se présentant comme un traitement de texte. Ne pas oublier de choisir l'encodage international utf-8 (Format>Titre et propriétés de la page). Voir ci-dessus les explications à Bizarrerie.

Remarque 3 : Fabrice Lemoine a écris une doc (voir les références plus bas) que je n'avais pas, au sujet de proftpd et ldap : la documentation proftpd_ldap indique comment donner l'accès ftp aux utilisateurs gérés à partir d'un annuaire ldap (cas du LCS). Pour l'instant cela n'est pas nécessaire.

Remarque 4 : pour se passer du répertoire apache2-default dans /home/www/ et avoir la page index.html directement dans /home/www/, voir la remarque 1 du paragraphe suivant.



Gestion des pages dynamiques et des données

Installation

Nous avons un serveur de page web et un outil de transfert. Nous allons compléter cela pour pouvoir gérer des pages dynamiques et des données en installant php, mysql et phpmyadmin. La ligne de commande dans la console d'administration de la machine Debian est :

apt-get install php4 mysql-server php4-mysql phpmyadmin


Activation de mysql

Pour activer mysql, il faut modifier une ligne du fichier de configuration /etc/php4/apache2/php.ini en décommentant la ligne 528 : extension=mysql.so Pour cela :

Éditez le fichier à l'aide de Vi :

vi /etc/php4/apache2/php.ini

Enregistrez la modification en tapant ces 3 caractères puis en validant par entrée

:q!

Pour prendre en compte cette modification, vous redémarrez le serveur apache avec la ligne :

/etc/init.d/apache2 restart

Vérification

Dans le répertoire /var/www, vous créez un fichier test.php dont le contenu est la ligne : <? phpinfo(); ?> Vous pouvez le faire en ligne de commande à l'aide du terminal Putty :

echo '<? phpinfo(); ?>' > /var/www/test.php


A l'aide d'un butineur comme Firefox, vous indiquez l'adresse : http://clg-monnet-briis.ac-versailles.fr/www2/test.php

Et pour atteindre l'interface d'administration de la base de données mysql, vous indiquez l'adresse : http://clg-monnet-briis.ac-versailles.fr/www2/phpmyadmin


Quelques remarques

Remarque 1 : J'ai vu aussi que Fabrice Lemoine a modifié son document en ligne, par rapport à ma version de stage, en mettant une page Web index.htlm dans /var/www et en commentant la ligne (Ce que j'ai fait aussi finalement, c'est plus simple :-)) :

#RedirectMatch ^/$ /apache2-default

qui se trouve dans le fichier /etc/apache2/sites-available/default


Remarque 2 : Si vous avez changé /var/www/ en /home/www/, ce qui précède ne marchera plus. Il faudra donc faire d'autre changements : mettre la page test.php dans /home/www/ et déplacer le raccourci pour phpmyadmin de /var/www/ vers /home/www/.


Communiquer avec l'annuaire

Un annuaire ldap existe dans le LCS qui est synchronisé avec l'annuaire de GeroEdu du serveur pédagogique W2003 (En tout cas chez moi, mais dans le cas d'un SE3, l'annuaire du LCS sera tout simplement celui du SE3... ). Il s'agit d'utiliser cet annuaire du LCS (non testé dans le cas du SE3... ).


Installation

Ajouter le module permettant l'authentification par l'annuaire avec la ligne de commande :

apt-get install php4-ldap


Activation de l'authentification

Cette activation se fait par les lignes de commande apprise en stage :

a2enmod auth_ldap

/etc/init.d/apache2 reload


Ici, j'ai un doute du bon déroulement : est-il normal qu'en réponse à la 1ère commande on ait le message que le fichier auth-ldap n'existe pas ?

Cela semble normal car dans le répertoire /etc/apache2/mods-available il n'y a pas de module auth_ldap. Par contre, il y a le module authnz_ldap. (Merci à Johan Pustoch pour cette aide). J'essaie donc les commandes :

a2enmod authnz_ldap

/etc/init.d/apache2 reload


Cette fois, la réponse à ces commandes me semblent correctes :-)


Vérification

Pour vérifier les connexions avec l'annuaire et pouvoir l'interroger, je vais utiliser LDAPBrowser.

Après avoir décompressé l'archive, on lance le programme lbe.bat. et on obtient les fenêtres ci-contre :
Slis010.jpg


En appuyant sur New, j'ai créé une session nommée Annuaire_GeroEdu_Slis4















Dans l'éditeur de session de LDAPBrowser, j'ai indiqué :

Slis12.jpg

















Remarque : J'ai rajouté une règle (filtre vers l'intranet) dans le slis (voir aussi la remarque 1 ci-dessous) : Slis11.jpg


Après avoir sauvé les données pour cette session, j'ai cliqué sur Connect et j'ai obtenu la fenêtre suivante : Slis13.jpg


La connexion a l'air de se faire mais l'interrogation de l'annuaire du LCS ne se fait pas. Reste à comprendre pourquoi...


En fait, il faut indiquer plutôt ceci (merci Fabrice Lemoine pour cette aide) : Slis14.jpg

Ce qui permet d'obtenir la lecture de l'annuaire du LCS : Slis15.jpg

Remarque 1 : si à la place du port 2389 on avait mis le port 389, cela aurait permis de lire l'annuaire du slis (à confirmer) : Slis16.jpg

Remarque 2 : le fait de pouvoir lire les annuaires en anonyme ne pose-t-il pas un problème ?


Et ensuite ?

Les applications de ce que j'ai appris en stage s'arrêtent ici et je dois dire que je commençais à saturer avec tout ce que je venais d'apprendre... C'est pourquoi j'ai commencé à rédiger ce document pour essayer de comprendre comment utiliser un annuaire LDAP afin de gérer des authentifications sur des parties d'un site. Pour l'instant, je n'ai pas eu besoin de cette possibilité. Maintenant, si vous avez des compétences plus avancées, vous pouvez compléter cette partie et nous permettre d'en apprendre plus ;-)



Installation d'un Spip ...

à faire...

Avant de vous lancer dans cette installation, vous pouvez consulter les messages suivants du forum :

Remarque: Comme nous utilisons le reverse proxy du slis, la requête HTTP_HOST renvoi l'ip de la troisième machine virtuelle vers lequel on pointe (ici le serveur web en DMZ). Cela a pour effet de rendre l'accès depuis l'internet à la partie privée impossible.

Pour corriger cela, il faut créer un fichier mes_options.php dans le répertoire "/ecrire" et mettre :

<?
SERVER['HTTP_HOST'] = 'l'adresse d'accès à votre spip';
?>



Autres applications : wiki, ...

à faire...

Je suis en train de tester la mis en place d'un Wiki sur l'espace web du collège et j'ai choisi DokuWiki dont l'installation et l'utilisation sont très simples. Dès que j'aurai un peu de temps libre, je ferai quelques essais sur cette 3ème machine du Slis4...



Récapitulatif des règles de routage

Voici les règles du Slis4 rajoutées. Attention, certaines ne concernent pas du tout cette documentation.


Accès aux pages Web 

Administration>Sécurité>Reverse Proxy
Slis04.jpg


Intranet vers Internet 

Administration>Sécurité>Pare-feu>Gestion du routage Slis08.jpg


Internet vers Intranet 

Administration>Sécurité>Pare-feu>Gestion du Pare-feu Slis09.jpg



Documents de références

Voici où trouver les documents de références de Fabrice Lemoine. Il y a des commentaires en français concernant les fichiers de configuration.

Voici quelques pages au sujet de l'encodage des caractères : merci encore à Johan Pustoch. http://electron-libre.fassnet.net/utf8.php http://openweb.eu.org/articles/jeux_caracteres/ http://forum.alsacreations.com/faq/faq-36-Charset-Iso-8859-1-iso-8859-15-utf-8-lequel-choisir-.html

Voici une documentation sur Putty : http://marc.terrier.free.fr/docputty/

Et un tutoriel pour Filezilla : http://adrien-artero.developpez.com/filezilla/

Et une aide pour Komposer : http://www.david-tate.fr/spip.php?article140 http://www.david-tate.fr/spip.php?article141

Et un forum d'assistance bien utile : http://web2news.ac-versailles.fr/tree.php?group_name=ac-versailles_assistance-technique_web&begin=0