Installation Xampp

Tutorial configuration et sécurisation

Ce tutorial a été réalisé par Yopinou, un grand merci à lui !

Plusieurs personnes savent par expérience qu'il n'est pas facile d'installer un serveur web Apache et que ça se complique si vous voulez y ajouter MySQL, PHP et Perl.

XAMPP est un kit d'installation d'Apache qui contient MySQL, PHP et Perl. XAMPP est réellement très facile à installer et à utiliser.

Le site officiel de XAMPP est http://www.apachefriends.org/fr/xampp.html

Après avoir procédé à l'installation de XAMPP, nous le configurerons puis aborderons les étapes d'une sécurisation basique.

Nous procèderons ensuite à l'installtion d'un forum PunBB, à sa configuration et nous ajouterons un fil RSS pour le suivi des articles.

Nous achèverons ce tutoriel par la mise en place d'un archivage automatisé du site, de la base MySQL et des logs de connexions.

XAMPP

1- INSTALLATION DE XAMPP :

Le kit XAMPP est composé des logiciels, ou extensions, suivants :

Apache, MySQL, PHP, Perl, ProFTPD, phpMyAdmin, OpenSSL, Freetype, libjpeg, libpng, gdbm, zlib, expat, ming, Sablotron, libxml2, Webalizer, pdf class, ncurses, mod_perl, FreeTDS, gettext, IMAP C-Client, OpenLDAP (client lib), eAccelerator, mcrypt, mhash, SQLite, cURL, ZZIPlib, libxslt, phpSQLiteAdmin, FPDF

Commencez par ouvri un shell (Terminal ou Konsole) et passez en mode superadministrateur (root), avec la commande :
su

Puis entrez votre mot de passe superutilisateur.

Sur le site officiel, téléchargez l'archive complète de XAMPP pour Linux (environ 50Mo) :
http://www.apachefriends.org/fr/xampp-linux.html

Effectuez l'extraction du fichier téléchargé (vers /opt), avec la commande :
tar xvfz xampp-linux-1.6.tar.gz -C /opt

 

XAMPP est maintenant installé.

Lançons à présent le processus, via la commande :
/opt/lampp/lampp start


2 - CONFIGURATION BASIQUE DE XAMPP :

A l'aide d'un navigateur internet, connectez vous au serveur.
Si vous travaillez directement sur le serveur, entrez http://127.0.0.1, ou si vous travaillez à distance, entrez alors l'adresse IP de votre serveur ou son nom de domaine.

Sélectionnez ensuite votre langue.

Puis cliquez sur "Statut".

Si tout va bien, vous constaterez que seuls "PHP extension eAccelerator" et "PHP extension OCI8/Oracle" ne sont pas activées :

2.1- Activation de "PHP extension eAccelerator" : (recommandé)

Reprennez votre terminal et éditez le fichier /opt/lampp/etc/php.ini à l'aide de votre éditeur favori. Entrez donc la commande :

vi /opt/lampp/etc/php.ini

Tapez /eaccel afin de rechercher cette chaîne de caractère

Supprimez alors tous les points-virgules (;) de cette section :

Nota : Pour l'éditeur vi, suivez les instructions suivantes :
- Appuyez une fois sur la touche "Inser" pour insérer des caractères.
- Appuyez une seconde fois sur la touche "Inser" pour remplacer des caractères
- Pour quitter le mode de saisie, tapez "Echap".
- La commande :w pour enregistrerle texte (hors mode saisie).
- La commande :x pour enregistrer et quitter (hors mode saisie).
En cas d'erreur et si vous ne parvenez pas à rectifier correctement le fichier ; tapez :q! . Cela permet de quitter l'éditeur sans apporter de modification.

Enregistrez le fichier avec la commade :w

Puis quittez l'éditeur, avec la commande :x

Relancez XAMPP, à l'aide de la commande :
/opt/lampp/lampp restart

Si tout va bien, XAMPP se relance correctement

Reprenez votre navigateur et rafraichissez (shift + F5) la page de "Statut".
Normalement, l'extension "eAccelerator" pour PHP est activée.

2.2- Activation de "PHP extension OCI8/Oracle" :

Il n'est générallement pas utile d'installer cette fonctionnalité.
Toutefois, si vous en aviez une utilité, reprennez votre terminal et entrez-y la commande :
/opt/lampp/lampp oci8

Entrez ensuite le chemin complet de Oracle et validez.
Votre extension est à présent installée.

2.3- PHP4 vs PHP5 (recommandé):

Vous aurez remarqué que, par défaut, XAMPP installe PHP5 plutôt que PHP4. Si vous préférez PHP4, effectuez les manipulations suivantes, dans votre terminal :
/opt/lampp/lampp php4

XAMPP va alors relancher Apache avec PHP4 activé.

Votre serveur Apache tourne maintenant avec la version 4 de PHP.

2.4- Paramétrage de Apache :

Editez le fichier /opt/lampp/etc/httpd.conf avec votre éditeur favori :

Les points importants sont :

- le port de connexion,

- les modules ajoutés,

- l'utilisateur propriétaire du processus et son groupe,

- l'adresse électronique de l'administrateur,

- le nom de domaine,

- le répertoire contenant la "zone Web",

- les options de dossiers (sécurisation, .htaccess),

- la journalisation (les logs).

Ces configurations sont personnelles à chaque cas. Toutefois, si vous n'êtes pas sûr de ce que vous faites, laissez l'option par défaut.

Dans notre exemple, les fichiers constituant votre site Internet devront être placés dans /opt/lampp/htdocs.

Vous pouvez, par exemple, insérer la page d'accueil de votre futur site web, préalablement constitué :

2.5- Paramétrage de ProFTPd :

vi /opt/lampp/etc/proftpd.conf

Les points importants sont :

- le nom du serveur (ServerName),
- le type de serveur (ServerType),
- le port de connexion (Port),

- le nombre maximum de connexions simultannées,
- l'utilisateur propriétaire du processus (User),
- le répertoire de connexion (DefaultRoot),
- le mot de passe de l'utilisateur définit ci dessus (UserPassword).

Là encore, ces informations restent personalisables en fonction des cas de figures.

3- SECURISATION BASIQUE DE XAMPP :

Reprenez votre navigateur ou reconnectez-vous sur http://127.0.0.1 (ou sur votre serveur distant) et cliquez sur la section "Sécurité".

Pour accelérez la procédure, nous allons utiliser un script existant permettant de boucher un certain nombre de failles. Pour cela, dans votre terminal, tapez la commande :
/opt/lampp/lampp security

Le programme intéractif va vous demander les éléments suivants (que nous vous conseillons de bien noter) :

- Attribuer un mot de passe d'accès aux pages de configuration de XAMPP. L'utilisateur y correspondant sera "lampp".

- Désactiver l'accès à MySQL depuis l'Internet. Ceci est fortement recommandé.

- Attribuer un mot de passe phpMyAdmin et MySQL pour l'utilisateur "pma".

- Attribuer un mot de passe MySQL pour l'utilisateur "root".

- Attribuer un mot de passe FTP pour l'utilisateur "lampp".

Reprennez ensuite votre navigateur et rafraichissez (shift + F5) la page de "Sécurité". Si tout va bien, le programme vous demande de vous identifier.

Utilisez le login "lampp" et le mot de passe attribué quelques secondes plus tôt. Une fois cette étape accomplie, XAMPP indique que tout est sécurisé.

4- LES PLUS :

4.1- Apache :

Nous vous conseillons de modifier le nom d'utilisateur "lampp" qui est générique à toutes les installations de XAMPP.
Pour cela, reprenez votre terminal et entrez les commandes suivantes :

vi /opt/lampp/lib/xampp.users

Remplacez ensuite l'utilisateur "lampp" par celui de votre choix. A la suite de votre login, laissez les deux-points (:) puis le mot de passe hashé en DES.

Pour générer un nouveau mot de passe, nous vous conseillons de vous connecter sur http://www.commentcamarche.net/apache/apacht.php3. Vous y trouverez un petit utilitaire destiné à cela.

4.2- PhpMyAdmin :

Afin de tester le fonctionnement de l'identification, connectez-vous sur :

http://127.0.0.1/phpmyadmin/

Identifiez-vous à l'aide des données de connexion "root" et le mot de passe que vous avez choisi un peu plut tôt.

Notez qu'il n'est pas urgent d'apporter de modification à cette section.

* ProFTPd :

Avec votre navigateur, connectez vous à l'adresse ftp://127.0.0.1 (ou l'adresse de votre serveur ou son nom de domaine) :

Identifiez-vous avec l'utilisateur "nobody"et le mot de passe saisit lors de la phase de sécurisation.

Pour changer ce nom d'utilisateur, là aussi très générique, reprenez votre terminal et entrez-y les commandes suivantes :
vi /opt/lampp/etc/proftpd.conf

Aux lignes 25 et 39, remplacez "nobody", par le login que vous souhaitez utiliser :

Voilà vos serveur installés, configurés et partiellement sécurisés.

2 - INSTALLATION D'UN FORUM PUNBB :

Commençez par télécharger la dernière version de PunBB sur le site officiel : http://www.punbb.fr/ (pour linux, nous vous conseillons la version .zip)

Dans un terminal, créez un répertoire. Le nom de ce répertoire sera le chemin d'accès vers votre forum. Nous vous conseillons, par exemple, de l'appeller "phorum", plutôt que "forum" ; cela évite des scans massifs destinés à repérer des forums vulnérables.
Tapez donc les commandes :

cd /opt/lampp/htdocs
mkdir phorum

chown votre_login:root phorum/

Décompressez ensuite l'archive contenant PUNBB sur votre ordinateur.
Avec un logiciel FTP, envoyez le contenu du répertoire "upload" sur votre serveur.

Accédez ensuite à l'interface phpMyAdmin de votre site à l'aide de votre navigateur :

http://127.0.0.1/phpmyadmin (ou l'adresse de votre serveur)
Entrez-y vos données de connexion XAMPP ("lampp" ou votre login et votre mot de passe)

Entrez à présent vos identifiants phpMyAdmin ("root" et votre mot de passe)

Une fois l'accès à phpMyAdmin, créez une table au nom de votre choix (ici TUTOFR) puis validez.

Déconnectez-vous de phpMyAdmin.

Connectez-vous ensuite sur http://127.0.0.1/phorum (ou bien l'adresse de votre site).

Cliquez sur "Install.php" ; ceci va débuter l'installation.

* Nota : Le mot de passe BDD est celui de phpMyAdmin.

Renseignez le formulaire d'installation selon votre cas.

Validez le formulaire en cliquant sur "Lancer l'installation".

La prochaine fenêtre vous demande de copier un contenu dans le fichier "config.php".

1°) En FTP :

Créez le fichier "config.php" sur votre ordinateur.
Ouvrez-le avec un éditeur de texte et coopier/coller le contenu de la fenêtre.
Envoyez le fichier modifié à la racine de votre forum ; c'est à dire /opt/lampp/htdocs/phorum pour l'exemple.

2°) en SSH :

Copiez le contenu à injecter dans "config.php" et tapez les commandes suivantes :

cd /opt/lampp/htdocs/phorum/

vi config.php

Collez-y le contenu fournit par PunBB et rajoutez les caractères ?> dans une dernière ligne ; afin de finaliser le script.

Enregistrez le fichier avec la commande :x

Dans votre navigateur, cliquer ensuite sur "Aller à l'index des forums". PunBB est à présent installé.

Identifiez en tant que administrateur du forum. Cliquez ensuite sur "Administration", puis sur "options".

Modifiez ces options à souhaits.
Il n'est cependant pas recommandé de modifier l'URL de base ; sauf dans le cas d'un changement du répertoire du forum.

Vous pouvez dès a présent ajouter des catégories à votre forum, opérer sur les autorisations de lecture d'écriture ou de réponse.

4.3- Quelques astuces :

A) Insérer une image en haut du forum (header) :

Dans le champs "Description" des options du panneau d'administration, entrez le code HTML suivant :

<p><span><div align="center"><a href="http://www.votre_site.fr/"><img src="http://www.votre_site.fr/votre_bannière.gif" alt="Header De Mon Site" name="Header" border="0"></a></div></span></p>

Ainsi, votre bannière apparaîtra systématiquement en haut des pages de votre forum.

Voyons un exemple avec la bannière de Tuto-Fr :

Sa taille est de 750x100 pixels.

 

B) Insérer un flux RSS :

Les versions récentes de PunBB intégrent un flux RSS. Cet outils, qui s'avère bien pratique, est doté de quelques petits défauts, que nous allons tenter de réparer :

- Certaines versions génère un flux composé comme suit :

<titre_d'un_article> in <catégorie_du_forum_contenant_l'article>
Topic: <Titre> Message: <message>

Deux possibilités :

Soit vous possédez déjà un fichier, nommé "rss.php", à la racine de votre forum et dans ce cas, passez l'étape suivante.

Soit vous n'en possédez pas. Dans ce cas, téléchargez le ici , puis décompressez-le à la racine de votre forum.

Une fois le fichier en place, éditez-le et modifiez les passages en fonction de votre cas (à partir de la ligne 199) :

echo "<language>fr-fr</language>\n"; ==> Langue du fil RSS
echo "<docs>http://fr.wikipedia.org/wiki/Really_Simple_Syndication</docs>\n"; ==> Lien vers de la documentation
echo "<managingEditor>votre_email@votre_site.fr</managingEditor>\n"; ==> e-mail de l'administrateur
echo "<webMaster>email_webmaster@vostre_site.fr</webMaster>\n"; ==> e-mail, du webmaster
echo "<image>\n"; ====> Début section image
echo "<title>Titre du Forum</title>\n"; ==> Titre de l'image (infobulle)
echo "<link>http://votre_site.fr/phorum/index.php</link>\n"; ==> Lien en cliquant sur l'image
echo "<url>http://votre_site.fr/image_du_fil_rss.gif</url>\n"; ==> Image à afficher (gif conseillé)
echo "<width>750</width>\n"; ==> Largeur de l'image
echo "<height>100</height>\n"; ==> Hauteur de l'image
echo "</image>\n"; ====> Fin de la section image

Vous pouvez enregistrer le fichier et quitter l'éditeur.

Afin que les navigateurs détectent un fil RSS sur votre forum, ce qui se matérialise par l'affichage de l'icône , nous allons éditer le fichier nommé "header.php" situé à la racine du forum :

Sur la ligne précédent le code PHP (commençant par <?php), ajoutez les informations suivantes en remplaçant le gras en fonction de votre cas ::

<link rel="alternate" type="application/rss+xml" href="http://votre_site.fr/phorum/rss.php" title="TITRE DE VOTRE FIL RSS" />

Enregistrez le fichier. Votre fil RSS est à présent actif à l'adresse http://votre_site.fr/phorum/rss.php. Regardez ci-dessous, au bout de la barre d'adresse :

Votre site est à présent fonctionnel. Vous pouvez commencer à déposer les fichiers de votre site Intenet, par le biais du FTP.

Nota : En supprimant le fichiers "index.html", déjà présent sur le serveur, la redirection automatique vers le répertoire "xampp" ne sera plus effective. Ainsi il ne vous sera plus demandé de vous identifier.

Nous vous conseillons de supprimer le répertoire "xampp" ; celui-ci n'étant plus utile.

Si vous souhaitiez toutefois le conserver et le rendre publique (sans authentification), effectuez les manipulations suivantes :

cd /opt/lampp/htdocs/xampp

vi .htaccess

Puis commentez, avec un #, toutes les lignes de ce fichier. Cela désactivera la demande d'authentification :

Enregistrez le fichier.

Toutefois, si vous êtes certain de ne plus utiliser cette authentification, vous pouvez supprimer les fichiers s'y relatant avec les commandes :

rm -f /opt/lampp/htdocs/xampp/.htaccess
rm -f /opt/lampp/lib/xampp.users

5 - ARCHIVAGE DES LOGS :

Afin d'accroître la sécurité et de prévenir certains incidents, il est fortement recommandé d'archiver et d'analyser vos logs.
Pour les mettre en sécurité, il est recommandé de les archiver dans un répertoire dédié à cet effet. Pour faciliter ce suivi, nous vous proposons la méthode suivante :

Créez un répertoire dédié à cet effet, sur votre site Internet, à l'aide des commandes :

cd /opt/lampp/htdocs/
mkdir logs
cd /opt/lampp/htdocs/logs
vi .htaccess

Placez le contenu suivant dans ce fichier :

AuthName "Accès aux logs"
AuthType Basic
AuthUserFile /opt/lampp/lib/auth.logs
require valid-user

Enregistrez le fichier (:x)

Poursuivons avec les commandes :

cd /opt/lampp/lib/
vi auth.logs

A l'aide de votre navigateur, allez à l'adresse : http://www.commentcamarche.net/apache/apacht.php3
Générez-y un mot de passe hashé et copiez-le.

Retournez dans votre fichier auth.logs et insérez vos identifiants de cette manière :
votre_login:<le_mot_de_passe_hashé>

Testez le bon fonctionnement de l'autenthification. Si tout est ok, passons à l'étape suivante.

Nous allons écrire un petit script shell, permettant d'automatiser la sauvegarde du contenu du site Internet et de vos logs :

Créez le fichier "script_backup.sh", avec la commande suivante :

cd /opt/lampp/
vi script_backup.sh

Collez-y le texte suivant, en prenant soin de modifier les éléments en gras, selon votre cas :

#DEBUT DE PROCESSUS
##############################
# Sauvegarde site internet
##############################
echo "DEBUT--- $(date +%d)/$(date +%m)/$(date +%Y) à $(date +%H)H$(date +%M) : DEBUT de sauvegarde----">>/opt/lampp/htdocs/logs/save-logs.log
echo "Liste des fichiers du site">>/opt/lampp/htdocs/logs/save-logs.log
ls -l /opt/lampp/htdocs/>>/opt/lampp/htdocs/logs/save-logs.log
tar czvf /opt/lampp/htdocs/logs/backup_site_`date +%Y%m%d`_`date +%H`.tar.gz /opt/lampp/htdocs/
echo "------------------------------">>/opt/lampp/htdocs/logs/save-logs.log
#############################
# Sauvegarde Bases MySQL
#############################
echo "Sauvegarde Base MySQL">>/opt/lampp/htdocs/logs/save-logs.log
mysqldump --user=root --password='votre_mot_de_passe' TUTOFR >/opt/lampp/htdocs/logs/backup_mysql_`date +%Y%m%d`_`date +%H`.sql
echo "FIN--- $(date +%d)/$(date +%m)/$(date +%Y) à $(date +%H)H$(date +%M) : FIN de sauvegarde----">>/opt/lampp/htdocs/logs/save-logs.log
echo "------------------------------">>/opt/lampp/htdocs/logs/save-logs.log
echo "------------------------------">>/opt/lampp/htdocs/logs/save-logs.log
echo "------------------------------">>/opt/lampp/htdocs/logs/save-logs.log
##############################
# Sauvegarde logs Apache
##############################
tar czvf /opt/lampp/htdocs/logs/`date +%Y%m%d`-apache.tar.gz /opt/lampp/htdocs/logs/
/opt/lampp/logs/access_log
/opt/lampp/logs/error_log
/opt/lampp/logs/apachestart.log
chown <user>:<user> /opt/lampp/htdocs/logs/`date +%Y%m%d`-apache.tar.gz
> /opt/lampp/logs/error_log
> /opt/lampp/logs/access_log
> /opt/lampp/logs/apachestart.log
##############################
# Mise a Jour (update)
##############################
echo "DEBUT--- $(date +%d)/$(date +%m)/$(date +%Y) à $(date +%H)H$(date +%M) : DEBUT de la mise a jour----">>/opt/lampp/htdocs/logs/update.log
echo "Traitement des sources">>/opt/lampp/htdocs/logs/update.log
echo "------------------------------">>/opt/lampp/htdocs/logs/update.log
apt-get update -yu>>/opt/lampp/htdocs/logs/update.log
echo "------------------------------">>/opt/lampp/htdocs/logs/update.log
echo "FIN--- $(date +%d)/$(date +%m)/$(date +%Y) à $(date +%H)H$(date +%M) : FIN de la mise a jour----">>/opt/lampp/htdocs/logs/update.log
echo "------------------------------">>/opt/lampp/htdocs/logs/update.log
echo "------------------------------">>/opt/lampp/htdocs/logs/update.log
echo "------------------------------">>/opt/lampp/htdocs/logs/update.log
##############################
# Envoi des fichiers
##############################
#CETTE ETAPE NECESSITE L'INSTALLATION DU PAQUET "EMAIL"
email -q <mail_destination> -f <mail_expédition> -n "<NOM DE L'EXPEDITEUR>" -s "<SUJET DU MAIL>" (Ex:Logs d'archivage du $(date +%d)/$(date +%m)/$(date +%Y)) -r smtp.<votre_FAI>.fr -b -a /opt/lampp/htdocs/logs/save-logs.log
email -q <mail_destination> -f <mail_expédition> -n "<NOM DE L'EXPEDITEUR>" -s "<SUJET DU MAIL>" (Ex:Logs de mise à jour du $(date +%d)/$(date +%m)/$(date +%Y) -r smtp.<votre_FAI>.fr -b -a /opt/lampp/htdocs/logs/update.log
#FIN DU PROCESSUS

Les logs étant archivés à l'adresse http://votre_site.fr/logs/ (avec protection par identification), nous vous conseillons de les télécharger régulièrement, pour deux raisons :

- Alléger les archives complètes du site,
- Eviter une perte des sauvegardes, en cas de crash ou d'attaque.

Il ne nous reste plus qu'à programmer ce script pour qu'il puisse s'éxecuter régulièrement ; c'est le rôle de la "crontab". Pour cela, tapez les commandes suivantes :

cd /etc

vi crontab

Postez-vous à la fin du fichier et ajoutez la ligne, en fonction de votre souhait :

La 1ère colonne = minutes (de 0 à 59)
La 2nde colonne = heures (de 0 à 23)
La 3ème colonne = jour du mois (de 1 à 31)
La 4ème colonne = le mois (de 1 à 12)
La 5ème colonne = jour de la semaine (0 = dimanche, 1 = lundi, ...)
La 6ème colonne = le propriétaire du processus
La 7ème colonne = le fichier à lancer

Exemples :

Tous les jours à 23h30 : 30 23 * * * root /opt/lampp/script_backup.sh
Tous les lundis à 00h01 : 01 0 * * 1 root /opt/lampp/script_backup.sh
Tous les jours pairs du mois à 10h00 : 00 10 */2 * * root /opt/lampp/script_backup.sh

Installation du paquet email:
Téléchargez cette archive
Décompressez la puis faites un petit
/configure
make
make install

Et tout roule ;)

Billyboylindien nous a degotter un script de sauvegarde mysql par ftp si vous souhaitez conservez sur un hote distant un nombre definis de jours de sauvegarde

Et voilà, votre site Internet est à présent fonctionnel, basiquement sécurisé et régulièrement archivé. :)


© Copyright 2005-2006 Tuto-fr.com par Billyboylindien
Déclaré à la cnil: Dossier nÝ 1142196
Rc v2.0