Page suivante Page précédente - Table des matières

3. Assemblons les morceaux du puzzle !

3.1 Modules Apache à essayer

J'utilise les modules suivants en plus de SSL, PHP et Frontpage :

Module env_module          mod_env.o
Module config_log_module   mod_log_config.o
Module mime_module         mod_mime.o
Module negotiation_module  mod_negotiation.o
Module dir_module          mod_dir.o
Module cgi_module          mod_cgi.o
Module asis_module         mod_asis.o
Module imap_module         mod_imap.o
Module action_module       mod_actions.o
Module alias_module        mod_alias.o
Module rewrite_module      mod_rewrite.o
Module access_module       mod_access.o
Module auth_module         mod_auth.o
Module anon_auth_module    mod_auth_anon.o
Module digest_module       mod_digest.o
Module expires_module      mod_expires.o
Module headers_module      mod_headers.o
Module browser_module      mod_browser.o

3.2 Sécuriser CGI

Si vous ètes un FAI (c'est surement le cas si vous lisez ces lignes), vous voudrez améliorer la sécurité. L'utilitaire suexec vous le permettra dans la mesure où il exécutera les CGI avec l'UID du propriétaire du Web plutôt qu'avec celle du serveur. Allez en /usr/src/apache_1.2.6/support et lancez make suexec. Faites un chmod 4711 suxec et copiez le à l'emplacement précisé dans ../src/httpd.h, soit /usr/local/etc/httpd/sbin/suexec par défaut. Si le chemin vous semble un peu obscur - ce fût le cas pour moi - éditez httpd.h et positionnez le à quelque chose de plus raisonnable.

3.3 Compilation et installation du démon

Allez en /usr/src/apache_1.2.6/src et éditez Configuration afin de choisir les modules que vous voulez inclure dans votre démon Apache. Ceci effectué, lancez ./Configure et make. Il s'agit là de la dernière étape de compilation, la plus compliquée. Croisez les doigts. Si tout se déroule normalement, copiez httpsd en /usr/sbin. Ne négligez pas la taille du démon. Créez le répertoire /var/httpd avec les sous-répertoires cgi-bin, conf, htdocs, icons, virt1, virt2 et logs. Editez access.conf-dist, mime.types et srm.conf-dist ( répertoire /usr/src/apache_1.2.6/conf ) selon vos besoins et copiez les en var/httpd/conf/access.conf, srm.conf et mime.types. Enfin, copiez le fichier httpsd.pem créé par make certificate en /var/httpd/conf. Utilisez le httpd.conf suivant :

ServerType standalone
Port 80
Listen 80
Listen 443
User wwwrun
Group wwwrun
ServerAdmin webmaster@yourhost.com
ServerRoot /var/httpd
ErrorLog logs/error_log
TransferLog logs/access_log
PidFile logs/httpd.pid
ServerName www.yourhost.com
MinSpareServers 3
MaxSpareServers 20
StartServers 3
SSLCACertificatePath /var/httpd/conf
SSLCACertificateFile /var/httpd/conf/httpsd.pem
SSLCertificateFile /var/httpd/conf/httpsd.pem
SSLLogFile /var/httpd/logs/ssl.log
<VirtualHost www.virt1.com>
SSLDisable
ServerAdmin webmaster@virt1.com
DocumentRoot /var/httpd/virt1
ScriptAlias /cgi-bin/ /var/httpd/virt1/cgi-bin/
ServerName www.virt1.com
ErrorLog logs/virt1-error.log
TransferLog logs/virt1-access.log
User virt1admin
Group users
</VirtualHost>
<VirtualHost www.virt1.com:443>
ServerAdmin webmaster@virt1.com
DocumentRoot /var/httpd/virt1
ScriptAlias /cgi-bin/ /var/httpd/virt1/cgi-bin/
ServerName www.virt1.com
ErrorLog logs/virt1-ssl-error.log
TransferLog logs/virt1-ssl-access.log
User virt1admin
Group users
SSLCACertificatePath /var/httpd/conf
SSLCACertificateFile /var/httpd/conf/httpsd.pem
SSLCertificateFile /var/httpd/conf/httpsd.pem
SSLLogFile /var/httpd/logs/virt1-ssl.log
SSLVerifyClient 0
SSLFakeBasicAuth
</VirtualHost>
<VirtualHost www.virt2.com>
SSLDisable
ServerAdmin webmaster@virt2.com
DocumentRoot /var/httpd/virt2
ScriptAlias /cgi-bin/ /var/httpd/virt2/cgi-bin/
ServerName www.virt2.com
ErrorLog logs/virt2-error.log
TransferLog logs/virt2-access.log
</VirtualHost>

Les directives dépendent des modules compilés. Leur liste s'obtient avec httpsd -h.

3.4 Ajout des fonctionnalités Frontpage au serveur Web

Allez en /usr/local/frontpage/version3.0/bin et lancez ./fpsrvadm. Choisissez install et apache-fp. Répondez comme suit aux questions :

Enter server config filename: /var/httpd/conf/httpd.conf
Enter host name for multi-hosting []: www.virt2.com
Starting install, port: www.virt2.com:80, web: ""
Enter user's name []: virt2admin
Enter user's password:
Confirm password:
Creating root web
Recalculate links for root web
Install completed.

Le nom d'utilisateur doit correspondre au login Unix du ppropriétaire du web. Le mot de passe peut différer. Ajoutez à la main sendmailcommand:/usr/sbin/sendmail %r au fichier /usr/local/frontpage/www.virt2.com:80.conf ou vos utilisateurs ne pourront envoyer de courriers générés via le web. Faites un kill -HUP sur votre httpsd de façon à ce que fp réexamine sa configuration. Votre client FrontPage peut à présent accéder à www.virt2.com

Dans certains cas, fpsrvadm se plaint de l'absence d'un web à la racine. Cela ne sert guère, mais vous devrez surement le faire pour que fpsrvadm se taise.

3.5 Démarrage du démon

Lancez Apache via httpsd -f /var/httpd/conf/httpd.conf. On accède à présent à www.virt1.com aussi bien via http que via https. C'est chouette la vie. Naturellement, vous acheterez un véritable certificat afin d'offrir un service Web SSL qui ne fasse pas rigoler les clients.

Copiez un des fichiers du répertoire d'exemples de php en virt1 pour essayer phtml.

3.6 Considérations diverses

N'utilisez pas les extensions FrontPage 97. Elles ne fonctionnent pas sous Linux. A l'installation, les bibliothèques C++ semblent fonctionner mais vos fichiers de logs se rempliront de premature end of script headers tandis que votre boite au lettre débordera de réclamations. Evitez les extensions FrontPage 98 avec des versions antérieures à la 3.0.2.1330. Les numéros de version manquent singulièrement d'homogénéité. Faites un telnet sur le port 80, tapez "get / http/1.0" suivi de deux retours à la ligne et vous obtiendrez un numéro de version de 3.0.4 pour FrontPage.

Des informations plus précises sont disponibles en exécutant : /usr/local/frontpage/currentversion/exes/_vti_bin/shtml.exe -version. Les versions plus anciennes sont buggées en ce qu'elles exigent du httpd.conf qu'il puisse ètre écrit sous le gid du serveur web. Voila de quoi faire hurler ceux qui tiennent à la sécurité. Les versions postérieures à la 3.0.2.1330 fonctionnent mieux.

3.7 Bugs connus

L'utilisation de Recalculate Links par le client Frontpage lance au niveau du serveur un process qui consomme 99% du cpu et 10 Mo de mémoire. Pour des webs de taille moyenne avec des machines rapides, le client reçoit parfois un timeout et ce alors même que le calcul parvient normalement à son terme. Demandez aux adeptes de FrontPage de rester patients et de ne pas activer Recalculate Links à répétition. Pensez à mettre au moins 64 Mo.

A l'instant où j'écris ces lignes, SSL et Frontpage fonctionnent mais pas de façon simultanée. Vous ne pouvez donc ni mettre à jour votre web via SSL, ni utiliser des webbots avec https. Vous pouvez actualiser votre web via le port 80 et y accéder en chiffré via le port 443 mais les compteurs par exemple seront faux. Je considère ceci comme un bug. Il devrait disparaitre avec SSL 0.9.0.

3.8 Le mot de la fin

Pour ceux qui trouvent que le titre de ce HOWTO est presque aussi long que son contenu : avez vous jamais écouté Meat Loaf ?

Bien, amis lecteurs, c'est tout pour aujourd'hui. N'hésitez pas à me transmettre vos expériences, votre reconnaissance éternelle, des fleurs, de l'argent, des voitures, des gisements de pétrole, ou des ratons laveurs.


Page suivante Page précédente - Table des matières