Docstoc

apache Serveur APACHE Présentation Ce document n’a pas la prétention

Document Sample
apache Serveur APACHE Présentation Ce document n’a pas la prétention Powered By Docstoc
					                                        Serveur APACHE
Présentation :
Ce document n’a pas la prétention de donner toutes les possibilités pour créer un serveur web
avec toutes les fonctionnalités que l’on souhaiterait y réaliser.
Pour ceux qui souhaitent s’aventurer hors des sentiers battus :
<http://www.apache.org/>

A ) Récupération des fichiers pour l’installation du serveur Apache.
Lorsque l’on installe une distribution, quelque soit cette dernière, le serveur Apache y est intégré,
mais souvent pas de la dernière version, donc souvent avec des failles connues, et donc, sensible
aux attaques des pirates du web.
Si l’installation du serveur apache est déjà dans votre ordinateur, soit vous l’arrêtez (service httpd
stop ) , puis, vous le désactivez au démarrage ( pour redhat : setup, pour Mandrake 9 linuxconf,
pour Mandrake 10, drakconf , aux choix … ).
Si l’on souhaite enlever la RPM par défaut de la distribution, taper la commande rpm -e
paquethttpdevotredisttibutioninstallé.
Avant toute chose , je vais me répéter, arrêter les service par défaut de httpd
vérifier que http n 'est pas lancé en lançant la commande ps -ef |grep http
Si l'installation de votre linux n est pas lancée, alors, évitez de le mettre.

B ) Récupération des fichiers sources
Téléchargez la dernière version du serveur Apache:
<http://httpd.apache.org/download.cgi>
et cliquez sur Unix Source: Unix Source: httpd-2.0.52.tar.gz [PGP]
copiez le dans le répertoire usr/src de votre distribution .

*-a ) Décompressez le:
tar zxvf httpd-2.0.52.tar.gz
*-b ) Allez dans le répertoire décompressé
cd httpd-2.0.52
*-c ) Lancez la commande :
./configure --prefix=/usr/local/nomvoulu
exemple: ./configure --prefix=/usr/local/apache52
*-d ) Puis tapez:
make
*-e ) puis
make install
L’installation devrait se dérouler sans anicroche .

1 ) Création d’un site secret avec des utilisateurs définis
B ) Création des répertoires souhaité.
Avec la méthode BASIC ( mot de passe en clair qui circulent )
Allez dans le répertoire Apache ( cd apache52, dans mon exemple )
Création du répertoire auth et du répertoire basic dans le répertoire auth .
Pour cela, tapez :


Pascal Detilleux                                                                                     1
mkdir auth
puis après avoir été dans le répertoire auth:
mkdir basic

C ) Création des utilisateurs
Création du fichier passwd
( créez la première fois un utilisateur avec la commande htpasswd -c )
htpasswd -c auth/basic/passwd pascal ( le fichier passwd se crée tout seul )
puis , pour les autres utilisateurs que l’on souhaite donner l’accès:
htpasswd auth/basic/passwd nathalie
htpasswd auth/basic/passwd nicolas
Dans le cas présent, je suis dans le répertoire Apache
Pour vérifier que le fichier passwd existe et qu il y a quelque chose, tapez la commande :
cat auth/basic/passwd
Il faut que le fichier soit lisible et exécutable par les utilisateurs, on donne donc des droits de
lecture et d’exécution sur le fichier passwd, pour cela, tapez la commande :
chmod 655 passwd ou chmod o+x passwd , au choix

D ) Création des fichiers html et de vos liens.
Allez dans le répertoire htdocs et créez un répertoire secret ( mkdir secret )
et dans ce répertoire des fichiers html

E ) Modification du fichier httpd.conf
ATTENTION CE FICHIER EST LE NOYAUX CENTRAL DU LANCEMANT DU
SERVEUR APACHE
### modification des lignes qui suivent ###
### Le nom de mon serveur
ServerName       pascal.detilleux.perso.fr
#### Dire dans quel répertoire on va mettre les documents sous protection #
<Directory "/usr/local/apache2/htdocs/secret">
## Qui est le créateur des lignes pour cette protection, il faut le mettre,( c’est obligatoire pour le
mode DIGEST ) #
AuthName pascal
## quel type d'encodage Basic ou Digest
AuthType Basic
### Indication dans quel répertoire se trouve les mots de passes et leurs utilisateurs associés #
AuthUserFile /usr/local/apache2/auth/basic/passwd
### Quels vont être les utilisateurs autorisés à la connexion ###
Require user pascal nathalie nicolas
## fermé le directory
</Directory>
########### fin de la création pour sécurisé un site #############




Pascal Detilleux                                                                                         2
F ) Lancer ou Relancer Apache
( Toujours dans le répertoire racine d'Apache )
1) pour le lancer ./bin/apachectl start
2 ) pour le relancer ./bin/apachectl restart

G) Vérification de la fonctionnalité.
Vérifiez sur un explorateur web que ça fonctionne avec les utilisateur que l’on vient de créer.
INFO : Si cela ne marche pas, vous pouvez vérifier les messages d'erreurs dans le répertoire log
du répertoire Apache en lançant la commande :
tail error_log ( il vous fera voir les 10 derniers messages d 'erreur )

H ) Fixation statique du démarrage d’Apache .
Pour que le lancement soit actif à chaque redémarrage, allez dans le répertoire /etc
et ouvrez avec un éditeur le fichier rc.local
et mettez en fin de ligne:
cd /usr/local/apache2 >>>>le nom de votre répertoire
./bin/apachectl start
Le serveur le lancera de lui même.

I )Création d'un site sécurisé avec la non crculation des mots de passe : mode DIGEST
A la compilation du source, rajouter: ./configure --prefix=/usr/locah/apache --enable-auth-digest
puis, make et make install
le principe reste le même que pour le mode BASIC
Sauf que les lignes seront pour le fichier httpd.conf:
<Directory "/usr/local/apache2/htdocs/secret">
## Qui est le créateur des lignes pour cette protection, il faut le mettre,( c’est obligatoire pour le
mode DIGEST ) #
AuthName pascal           très important
## quel type d'encodage Basic ou Digest
AuthType Digest
### Indication dans quel répertoire se trouve les mots de passes et leurs utilisateurs associés #
AuthDigestFile /usr/local/apache2/auth/digest/passwd
### Quels vont être les utilisateurs autorisés à la connexion ###
Require user pascal nathalie nicolas
## fermé le directory
</Directory>

puis créer les utilisateurs dans le répertoire défini pour les mots de passes
aller à la racine de votre repertoire apache et lancer la commande :
./bin/htdigest auth/digest/passwd pascal pascal

puis:

./bin/htdigest auth/digest/passwd pascal nicolas et ainsi de suite




Pascal Detilleux                                                                                         3
Pour plus de sécurité, caché le fichier passwd en lui mettant un point ( penser à le définir dans
httpd.conf )

2 °) Création de plusieurs sites sur le même serveur en profitants des mêmes ressources
L'avantage, est de créer plusieurs site sur la même machine,
avec la même carte réseau et ainsi profiter de la place et des ressources de cette même machine.

A ) Création dynamique des adresse ip souhaitées.
Après création des ip dynamiques, vous les fixerez pour qu’à chaque redémarrage, ces adresses
soient actives.
tapez ifconfig
vous devriez voir votre ip
Par exemple; on visualise l’ip à : 192.168.6.200
Pour la première adresse en plus
tapez :
ipconfig eth0:1 192.168.6.201
puis, par exemple , pour la seconde adresse ip
ifconfig eth0:2 192.168.6.202
Maintenant, vous allez créer les répertoires pour ces sites ( site 1 et 2 )
Allez dans votre répertoire Apache
Allez dans votre répertoire htdocs et créez le nom de vos sites: par exemple site 1 et site 2
mkdir site1 et mkdir site2
Allez dans chaque répertoire et créer un répertoire logs, puis, aller dans chaque répertoire logs et
lancer la commande :
touch error_log
et :
touch acces_log, cela permet de créer les fichiers pour lires les messages d’erreurs.
Mettez les fichiers voulus en pensant bien à mettre les fichiers
démarreur, index.html dans chaque répertoire ( je rappelle que le fichier
lanceur pour l'ip local ( 192.168.6.200 ) est le fichier index.html.var, mais rien ne vous empêche
de mettre votre page de démarrage en html.

B ) Modification du fichier httpd.conf:
Allez modifier le fichier httpd.conf avec un éditeur en rajoutant les lignes suivantes
( rajoutez celle que vous avez besoin )
############## installation de 2sites supp sur le serveur ##############
<VirtualHost 192.168.6.202>
ServerAdmin pascal2@serveur.fr
DocumentRoot /usr/local/apache2/htdocs/site2
ServerName site2.fr
ErrorLog /usr/local/apache2/htdocs/site2/logs/error_log
TransferLog /usr/local/apache2/htdocs/site2/logs/acces_log
</VirtualHost>
<VirtualHost 192.168.6.203>
ServerAdmin pascal3@serveur.fr



Pascal Detilleux                                                                                       4
DocumentRoot /usr/local/apache2/htdocs/site2
ServerName site3.fr
ErrorLog /usr/local/apache2/htdocs/site3/logs/error_log
TransferLog /usr/local/apache2/htdocs/site3/logs/acces_log
</VirtualHost>

C ) Relancer Apache
En étant à la racine du répertoire apache
./bin/apachectl restart.
Il ne doit pas y avoir de message d'erreur, si tel est le cas, il faut
rouvrir le fichier et voir ce qui ne va pas.

D) Fixations des adresses ip
Deux solutions sont possibles.
Bizarrement, sur ma distribution, avec une de mes machines, la création du fichier me mettais en
erreur (celle avec qui, le service Apache était installé par défaut ), alors qu’après téléchargement
de la dernière version, (version 52), je n ‘ai eu aucun problème.
Vous allez fixer ces adresses dynamiques en statique pour qu’, au démarrage, elles se lancent
automatiquement.

1 ère solution ( avec la dernière version d’Apache)
Pour cela, allez dans le répertoire :
/etc/sysconfig/network-script
tapez :
cp ifcfg-eth0 ifcfg-eth0:1
puis pour la seconde adresse :
cp ifcfg-eth0 ifcfg-eth0:2
Ouvrez à l'aide d'un éditeur (vi ) le fichier ifcfg-eth0:1 et mettez l'ip pour le premier site.
Exemple :
DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.168.6.202
NETMASK=255.255.255.0
NETWORK=192.168.6.0
BROADCAST=192.168.6.255
ONBOOT=yes
HWADDR=00:04:75:8f:f7:52
MII_NOT_SUPPORTED=no
Faites de même pour le site 2
Enregistrez et relancez le service réseau ( service network restart )
si vous refaites un ifconfig, vous devriez trouver vos ip en statique.
2 solution ( Apache mis par défaut ) :
La première solution ne donnant pas satisfaction, aller toujours dans le fichier rc.local du
répertoire etc
Puis, en fin de ligne, rajouter ifconfig eth0:1 192.168.6.202 et sur la seconde ligne :


Pascal Detilleux                                                                                       5
Ifconfig eth0:2 192.168.6.203

Au prochain relancement de la machine, les adresse ip seront prisent en compte
Si vous souhaitez vous faire plaisir, et créer un site en www et faire une correspondance sur vos
ip, rien de plus simple:
Ouvrez le fichier hosts, dans le répertoire etc ( c 'est la même chose pour xp, dans
le répertoire system32/drivers ) et mettez l'ip puis le nom de votre site.
exemple:

192.168.6.200 www.pascal.serveur.fr
192.168.6.201 www.pascal1.serveur.fr
192.168.6.202 www.pascal2.serveur.fr

Si vous faites l'essai sur la même machine avec linux ,vous pouvez avec lynx qui est un
navigateur texte , vous connecter à votre site.
Exemple :
Lynx <http://www.pascal1.serveur.fr/>

3 ) Installation d’un proxy
Pour installer un proxy, il faut 2 choses.
* -Avoir penser, lors de la compilation du code source à rajouter les lignes de commande pour
valider l’accès au proxy
*- Installer les lignes qui vont suivre sur le fichier httpd.conf
a ) Installation des fichiers sources avec le proxy :
1 ) Décompressez le tar.gz du fichier sources
2 ) Copiez ce fichier dans usr/src
3 ) Rentrez dans le répertoire qui est décompressé et lancez :
./configure --prefix=/usr/local/nomvoulu --enable-proxy --enable-proxy-ftp --enable-proxy-http
4) make
5 ) make install
puis ; allez dans le répertoire /usr/local/nomvoulu
allez dans le répertoire conf
et ouvrez le fichier httpd.conf
et rajoutez les lignes suivantes:
## Installation d’un proxy ################ »
ProxyRequests On
ProxyPass /dist http://192.168.6.200
Listen 80
ServerName 192.168.6.200

4 ) Installation du module pour php et mysql
Je ne suis pas un crack dans ce domaine, mais, je donne les petites indications
que j'ai ; on ne sait jamais, cela peut servir.
Pour avoir la dernière version du php : allez sur le site :



Pascal Detilleux                                                                                    6
http://fr2.php.net/get/php-5.0.2.tar.gz/from/a/mirror
Sinon, pour ceux qui auraient des fichiers avec une version 4: la version 4.3.9
http://fr.php.net/get/php-4.3.9.tar.gz/from/a/mirror
Pour la Mandrake 10 , il suffit de se mettre en mode graphique et demander d'installer les fichiers
pour php, en demandant : php-mysql dans la recherche.
Par contre, la version est une v: 4.3.4, à voir avec vos besoins.
Puis, il faut rajouter phpmyadmin , et il faut aller encore à la pêche sur le net:
une Rpm toute faite est sur le net pour la Mandrake 10:
phpmyadmin-2.6.0-0.rc2.1mdk.noarch.rpm téléchargeable à l'adresse:
<http://ftp.fi.muni.cz/pub/linux/mandrakelinux/devel/cooker/ia64/media/contrib/?C=S;O=D>

Je rappelle que pour l'installer: rpm -ivh fichier.rpm
Pour les autres, il faut aller chercher les codes sources:
http://www.phpmyadmin.net/home_page/
Quand vous avez le code source, le principe est le même : copiez-le dans le répertoire /usr/src.
Puis, décompressez-le. ( il charge un fichier compressé en tar.tar, la seule solution que j’ai
trouvée est en mode graphique, en ligne de commande, ça ne fonctionne pas, mais si quelqu’un a
la solution, je suis preneur.
puis, comme toujours;
./configure
make et make install.
Vérifiez que le fichier httpd.conf, contient bien l’information pour le php exemple:
############### installation du php #############
AddType application/x-httpd-php ,php ,php4
Si tel est le cas, vous devriez pouvoir jouer avec le php
Vous devriez trouver également, dans le répertoire module, les choses suivantes
après installation:
php.conf ( dans la Mandrake 10 , c est dans le répertoire /etc/httpd/conf/addon-modules )
Voila...
Mais pour le php et la base mysql; il faut encore que je creuse, je ne suis pas encore à l'aise.

5 ) Sécurité
Afin d'éviter de se faire trop acker, il faut éviter de donner la moindre
information quant à la version d'Apache que vous avez., éviter d'afficher les versions d'apache:
pour cela, 2 lignes sont les deux directeurs de la sécurité dans le fichier httpd.conf.
ServerToken Prod
et la ligne:
Server Signature off

là, vous pourrez un peu dormir un petit peu....le temps que l ‘on retrouve une faille et qu ‘il faille
faire une mise à jour.




Pascal Detilleux                                                                                         7

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:11
posted:12/13/2011
language:French
pages:7