Sur cette machine fonctionne un forum phpBB.
Ce forum est connu par la découverte chronique de failles de sécurité dans le code :-(. Malheureusement certains petits malins usent de ces failles pour "défacer" les forums (changer la page d'acceuil pour faire apparaitre de la pub, des virus...) ou pire effacer la base de donnée :-(.

Pour éviter ce genre de problème, je dispose de 2 solutions :

  1. Mettre à jour tous les jours le serveurs (gràce aux mises à jour de sécurité de la debian sarge
  2. Forcer le SSL pour le php

Pourquoi forcer le SSL pour le PHP??
Tout simplement pour prendre l'analogie du greylisting pour le spam, un pirate (qui utilise un script automatique) ne prendra pas la peine d'utiliser le SSL pour accéder au forum. Evidemment, ceci n'arretera pas quelqu'un qui en veut personnellement à votre serveur! ce n'est pas du tout une protection absolue (comme le greylisting pour le spam...)

Fonctionnement :
Voici la solution pour apache2. Il faut avoir le mod_rewrite installé.

Dans le fichier /etc/apache2/sites-available/default Dans la section correspondant au virtualhost voulu, il faut ajouter :

@@

      <IfModule mod_rewrite.c>
               RewriteEngine on
               RewriteLog /var/log/apache2/https_rewrite.log
               RewriteLogLevel 1
               RewriteCond %{SERVER_PORT} !^443$
               RewriteCond %{THE_REQUEST} !.cvd
               RewriteRule ^/(.*) https://www.fabroce.net/$1 [L,R=301]
      </IfModule>

@@

Ceci a pour effet de rediriger toutes les requètes n'ayant pas pour port 443 (HTTPS) vers une URL re-écrite en HTTPS en renvoyant un code HTTP 301 (moved permanently)! La ligne RewriteCond %{THE_REQUEST} !.cvd est nécessaire pour utiliser le serveur web en mirroir pour clamav. En effet, il n'est pas possible d'utiliser une redirection 301. La ligne permet donc de ne rien faire dans ce cas précis.

Pour finir, Il faut aussi ajouter un virtualhost pour le port 443 ;-)