Des installations mal configurées de MySQL et Bugzilla ont permis de donner l'accès complet au système aux pirates dans le passé. Veuillez prendre au sérieux les recommandations sur la sécurité de ce guide, même pour des machines Bugzilla protégées derrière votre pare-feu. Assurez-vous de lire Chapitre 4, La sécurité dans Bugzilla pour ces conseils sur la sécurité importants. |
Vous devez maintenant exécuter checksetup.pl
à nouveau, cette fois
sans l'argument --check-modules
.
bash#
./checksetup.pl
Cette fois, checksetup.pl
devrait vous dire que tous les
modules appropriés sont installés et affichera un message à ce sujet, et générera
un fichier de sortie appelé localconfig
. Ce fichier contient les
paramètres par défaut pour un grand nombre de paramètres de Bugzilla.
Ouvrez ce fichier dans votre éditeur. Les deux seules valeurs que vous avez besoin de changer sont « $db_driver » et « $db_pass », respectivement le type de base de données et le mot de passe pour l'utilisateur qui créera pour vous la base de données. Choisissez un mot de passe compliqué (pour la simplicité, il ne dervait pas contenir d'apostrophe) et saisissez-le dans le fichier. « $db_driver » peut être 'mysql', 'Pg', 'oracle' ou 'SQLite'.
Sous Oracle, |
Vous devrez peut-être changer la valeur de
webservergroup si votre serveur Web ne s'exécute pas dans le
groupe « apache ». Sur Debian, par exemple, Apache s'exécute dans le groupe
« www-data ». Si vous allez exécuter Bugzilla sur une machine
où vous n'avez pas l'accès « root » (comme sur un serveur Web
partagé hébergé), vous aurez besoin de laisser
webservergroup vide, en ignorant les avertissements que
checksetup.pl
affichera à chacune de ses
exécutions.
Si vous utilisez « suexec », vous devez utiliser votre propre groupe principal pour webservergroup plutôt que de le laisser vide, et consultez les autres directives dans la section suexec Section 2.6.6.1, « suexec ou hébergement partagé ». |
Les autres options du fichier localconfig
sont documentés par les commentaires les accompagnant. Si vous avez une configuration légèrement
non-standard, vous voudrez sans doute modifier un ou plusieurs autres
paramètres « $db_* ».
Cette section traite de la configuration de votre serveur de base de données utilisé avec Bugzilla. Actuellement, MySQL (Section 2.2.2.2, « MySQL »), PostgreSQL (Section 2.2.2.3, « PostgreSQL »), Oracle (Section 2.2.2.4, « Oracle ») et SQLite (Section 2.2.2.5, « SQLite ») sont disponibles.
Le schéma de la base de données de Bugzilla est disponible est disponible sur Ravenbrook. Cet outil très utile peut générer une description écrite du schéma de la base de données de Bugzilla pour toute version de Bugzilla. Il peut aussi générer un diff entre deux versions pour aider quelqu'un à voir ce qui a changé.
La configuration par défaut de MySQL est peu sécurisée.
Nous vous recommandons vivement d'exécuter
|
Par défaut, MySQL ne vous autorisera à insérer dans la base de données, que des objets plus petits que 1 Mo. Les fichiers joints peuvent être plus gros que cela. De même, Bugzilla concatène tous les commentaires d'un bogue dans un seul champ pour la recherche plein texte, et la somme de tous les commentaires d'un bogue sera vraisemblablement supérieure à 1 Mo.
Pour changer ce paramètre par défaut de MySQL, vous devez modifier votre fichier de
configuration MySQL, qui est habituellement /etc/my.cnf
sous Linux. Nous vous recommandons d'autoriser au moins des paquets de 4 Mo en
ajoutant le paramètre max_allowed_packet
dans votre fichier de
configuration MySQL dans la section [mysqld]
, comme ceci :
[mysqld] # Allow packets up to 4MB max_allowed_packet=4M
Par défaut, les mots doivent avoir au moins quatre caractères afin d'être indéxés par les index texte intégral de MySQL. Ceci fait que beaucoup de mots clés spécifique peuvent être manqués, y compris « cc », « ftp » et « uri ».
MySQL peut être configuré pour indexer ces mots en définissant le paramètre
« ft_min_word_len » pour la taille minimale des mots à indexer.
Ceci peut être fait en modifiant le fichier /etc/my.cnf
comme l'indique l'exemple ci-dessous :
[mysqld] # Allow small words in full-text indexes ft_min_word_len=2
La reconstruction des index peut être faite en suivant les indications de la documentation sur http://www.mysql.com/doc/fr/Fulltext_Fine-tuning.html.
Vous avez besoin d'ajouter un nouvel utilisateur à MySQL pour Bugzilla.
(Il n'est pas sûr de faire utiliser par Bugzilla le compte « root » de MySQL).
Les instructions suivantes supposent que vous utilisez les options par défaut dans
localconfig
; si vous changez celles-ci,
vous devez modifier la commande SQL en conséquence. Vous aurez besoin
du mot de passe $db_pass
que vous avez
défini dans le fichier localconfig
:
Section 2.2.1, « localconfig ».
Nous utilisons une commande SQL GRANT pour créer un utilisateur « bugs ». Ceci limite aussi l'utilisateur « bugs » aux opérations dans la base de données appelées « bugs » et ne permet à ce compte de se connecter qu'à partir de « localhost ». Modifiez-le pour refléter votre configuration si vous voulez vous connecter à partir d'une autre machine ou avec un utilisateur différent.
Exécutez le client en ligne de commande mysql
et saisissez :
mysql>
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY '$db_pass
';mysql>
FLUSH PRIVILEGES;
Par défaut, MySQL limitera la table à 4 Go. Cette limite est présente même si le système d'exploitation sur lequel est exécuté MySQL n'a pas cette limite. Pour définir une limite plus haute, suivez ces instructions.
Après avoir terminé le reste de l'installation (ou au moins les parties concernant la configuration
de la base de données), vous devez exécuter le client en ligne de commande MySQL
et saisir les commandes suivantes, en remplaçant $bugs_db
avec votre nom de base de données (bugs par défaut) :
mysql>
use$bugs_db
mysql>
ALTER TABLE attachments AVG_ROW_LENGTH=1000000, MAX_ROWS=20000;
La commande ci-dessus changera la limite à 20 Go. Mysql devra faire une copie temporaire de toute votre table pour faire ceci. Idéalement, vous devriez faire ceci quand la table des fichiers joint est encore petite.
Ceci n'affecte pas le champ « Gros fichiers », les fichiers qui sont stockés directement sur disque au lieu de la base de données. |
Vous devez ajouter un nouvel utilisateur pour PostgreSQL pour que Bugzilla
accède à la base de données. Les instructions suivantes supposent que vous utilisez les
options par défaut dans localconfig
; si vous changez celles-ci,
vous devrez modifier les commandes en conséquence. Vous devrez
utiliser le mot de passe $db_pass
que vous vaez défini
dans localconfig
:
Section 2.2.1, « localconfig ».
Sur la plupart des systèmes, pour créer l'utilisateur dans PostgreSQL, vous devrez vous connecter en tant qu'utilisateur « root » et saisir la commande
bash#
su - postgres
en tant qu'utilisateur « postgres », vous devez créer un nouvel utilisateur :
bash$
createuser -U postgres -dRSP bugs
Quand un mot de passe vous sera demandé, fournissez le mot de passe qui sera défini pour
$db_pass
dans localconfig
.
L'utilisateur créé ne sera pas un super utilisateur (-S) et ne pourra pas créer
de nouveaux utilisateurs (-R). Il aura seulement la possibilité de créer des bases de
données (-d).
Si vous utilisez PostgreSQL 8.0, vous devez remplacer -dRSP par -dAP. |
Maintenant, vous devez modifier le fichier pg_hba.conf
qui se trouve
habituellement dans le répertoire /var/lib/pgsql/data/
. Dans ce fichier,
vous devez ajouter une nouvelle ligne, comme indiqué ci-dessous :
host all bugs 127.0.0.1 255.255.255.255 md5
Ceci signifie pour les connexions TCP/IP (hôte), de les autoriser pour « 127.0.0.1 » pour « all » (toutes) les bases de données de ce serveur pour l'utilisateur « bugs », et d'utiliser l'authentification de mot de passe (md5) pour cet utilisateur.
Maintenant, vous devez redémarrer PostgreSQL, mais vous devrez arrêter complètement le serveur
et le démarrer au lieu de seulement le redémarrer à cause de la possibilité d'un changement
dans le fichier postgresql.conf
. Après le redémarrage du serveur,
vous devrez modifier le fichier localconfig
, en cherchant la
variable $db_driver
et en la définissant à
Pg
et en changeant le mot de passe dans $db_pass
pour celui que vous avez choisi précédemment, lors de la création du compte.
Vous pouvez utiliser un tablespace existant ou en créer un nouveau pour Bugzilla. Pour créer un nouveau tablespace, exécutez la commande suivante :
CREATE TABLESPACE bugs
DATAFILE '$path_to_datafile
' SIZE 500M
AUTOEXTEND ON NEXT 30M MAXSIZE UNLIMITED
Ici, le nom du tablespace est 'bugs', mais vous pouvez
choisir un autre nom. $path_to_datafile
est
le chemin d'accès au fichier contenant votre base de données, par exemple
/u01/oradata/bugzilla.dbf
.
La taille initiale du fichier de base de données est défini dans cet exemple
à 500 Mo, avec un incrément de 30 Mo chaque fois que la taille limite du fichier est
atteinte.
Le nom d'utilisateur et le mot de passe doivent correspondre à ce que vous avez défini
dans localconfig
($db_user
et $db_pass
, respectivement). Ici, nous supposons que l'utilisateur
est 'bugs' et que le nom du tablespace est identique.
CREATE USER bugs
IDENTIFIED BY "$db_pass
"
DEFAULT TABLESPACE bugs
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT;
-- GRANT/REVOKE ROLE PRIVILEGES
GRANT CONNECT TO bugs;
GRANT RESOURCE TO bugs;
-- GRANT/REVOKE SYSTEM PRIVILEGES
GRANT UNLIMITED TABLESPACE TO bugs;
GRANT EXECUTE ON CTXSYS.CTX_DDL TO bugs;
Si vous utilisez Apache, ajoutez ces lignes au fichier httpd.conf
pour définir les variables ORACLE_HOME et LD_LIBRARY_PATH. Par exemple :
SetEnv ORACLE_HOME /u01/app/oracle/product/10.2.0/ SetEnv LD_LIBRARY_PATH /u01/app/oracle/product/10.2.0/lib/
Quand ceci est fait, redémarrez votre serveur Web.
En raison des limitations de concurrence de SQLite, nous ne le recommandons que pour des petites installations de Bugzilla ou des installations de développement. |
Aucune configuration spéciale n'est requise pour exécuter Bugzilla avec SQLite.
La base de données sera stockée dans data/db/$db_name
,
où $db_name
est le nom de la base de données définie dans
localconfig
.
Ensuite, ré-exécutez checksetup.pl
. Il confirmera à nouveau
que tous les modules sont présents et remarquera la modification
du fichier localconfig
, en supposant que vous l'avez modifié
à votre convenance. Il compile ensuite les modèles de l'interface utilisateur,
se connecte à la base de données en utilisant l'utilisateur « bugs »
que vous avez créé et le mot de passe que vous avez défini et crée enfin la base de
données « bugs » et les tables à l'intérieur.
Après cela, il demande des détails sur le compte administrateur. Bugzilla peut avoir plusieurs administrateurs - vous pouvez en créer plus plus tard - mais il en a besoin d'un pour démarrer. Saisissez l'adresse électronique d'un administrateur, son nom complet, et un mot de passe approprié pour Bugzilla.
checksetup.pl
se terminera alors. Vous pouvez relancer
checksetup.pl
à tous moments si vous le souhaitez.
Configurer votre serveur Web selon les instructions de la
section appropriée. (Si cela peut faire une différence dans votre choix,
l'équipe de Bugzilla recommande Apache). Pour vérifier si votre serveur Web est correctement
configuré, essayez d'accéder à la page testagent.cgi
à partir de votre serveur Web. Si « OK » est affiché, alors votre configuration
est correcte. Peu importe le serveur Web que vous utilisez,
assurez-vous que les informations sensibles ne sont pas accessibles
à distance en appliquant des contrôles d'accès corrects dans
Section 4.2.1, « Désactiver l'accès à distance aux fichiers de configuration de Configuration ». Vous pouvez exécuter
testserver.pl
pour vérifier si votre serveur Web sert les pages de
Bugzilla comme prévu.
vous avez deux options pour exécuter Bugzilla sur Apache : mod_cgi (par défaut) et mod_perl (nouveau à partir de Bugzilla 2.23)
Pour configurer votre serveur Web Apache pour fonctionner avec Bugzilla en utilisant mod_cgi, suivez les instructions suivantes :
Ouvrez le fichier httpd.conf
dans votre éditeur.
Sous Fedora et Red Hat Linux, ce fichier se trouve dans
/etc/httpd/conf
.
Apache utilise des directives <Directory>
pour permettre des paramètrages de permissions granulaires. Ajoutez les lignes
suivantes à une directive s'appliquant à l'emplacement de
votre installation Bugzilla. (Si une telle section n'existait pas,
vous devrez en ajouter une). Dans cet exemple, Bugzilla a été
installé dans
/var/www/html/bugzilla
.
<Directory /var/www/html/bugzilla> AddHandler cgi-script .cgi Options +ExecCGI DirectoryIndex index.cgi index.html AllowOverride All </Directory>
Ces instructions : autorisent Apache à exécuter les fichiers « .cgi » se trouvant
dans le répertoire bugzilla
; indiquent au serveur de chercher
un fichier appelé index.cgi
, ou s'il n'est pas trouvé,
index.html
, si quelqu'un saisit seulement le nom
du répertoire dans le navigateur ; et autorisent les fichiers
.htaccess
de Bugzilla à outrepasser quelques
permissions globales.
Il est possible de faire ces changements globalement ou sur la directive
contrôlant le répertoire parent de Bugzilla (par ex.
|
Sous Windows, vous pourriez aussi avoir à ajouter la ligne
|
checksetup.pl
peut définir des permissions plus réduites
sur les fichiers et répertoires de Bugzilla s'il connaît le groupe dans lequel
est exécuté le serveur Web. Cherchez la ligne Group
dans le fichier httpd.conf
, placez la valeur trouvée ici
dans la variable $webservergroup
du fichier localconfig
, puis, ré-exécutez
checksetup.pl
.
Optionnel : Si Bugzilla ne se trouve pas dans le répertoire de l'espace
Web, mais a été lié symboliquement ici, vous devrez ajouter
ce qui suit à la ligne
Options
de la directive
<Directory>
de Bugzilla
(la même que dans l'étape précedente) :
+FollowSymLinks
Sans cette directive, Apache ne suivra pas les liens symboliques aux emplacements extérieurs à sa propre structure de répertoires et vous ne pourrez pas exécuter Bugzilla.
Une certaine configuration est requise pour faire fonctionner Bugzilla avec Apache et mod_perl
Ouvrez httpd.conf
dans votre éditeur.
sous Fedora et Red Hat Linux, ce fichier se trouve dans
/etc/httpd/conf
.
Ajoutez les informations suivantes à votre fichier httpd.conf
, en substituant
où cela est approprié vos propres chemins d'accès locaux.
Ceci doit être utilisé au lieu du bloc <Directory> indiqué
plus haut. Ceci doit aussi être placé au-dessus de toute autre directive |
Vous devez aussi vous assurer que vous avez désactivé la gestion de |
PerlSwitches -w -T PerlConfigRequire /var/www/html/bugzilla/mod_perl.pl
checksetup.pl
peut définir des permissions plus réduites
sur les fichiers et répertoires de Bugzilla s'il connaît le groupe dans lequel
est exécuté le serveur Web. Cherchez la ligne Group
dans le fichier httpd.conf
, placez la valeur trouvée ici
dans la variable $webservergroup
du fichier localconfig
, puis, ré-exécutez
checksetup.pl
.
Au redémarrage d'Apache, Bugzilla devrait alors fonctionner en
environnement mod_perl. Veuillez vous assurer d'avoir exécuté checksetup.pl
pour définir les permissions avant de redémarrer Apache.
Veuillez garder à l'esprit les points suivants quand vous cherchez à utiliser Bugzilla avec mod_perl :
|
Si vous voulez exécuter Bugzilla sur Windows et choisir d'utiliser Microsoft Internet Information Services™ ou Personal Web Server™ vous aurez besoin de réaliser d'autres étapes de configuration comme expliqué ci-dessous. Vous pouvez aussi vous référez aux articles de la base de connaissance de Microsoft : 245225 « HOW TO: Configure and Test a PERL Script with IIS 4.0, 5.0, and 5.1 » (pour Internet Information Services™) et 231998 « HOW TO: FP2000: How to Use Perl with Microsoft Personal Web Server on Windows 95/98 » (pour Personal Web Server™).
Vous devrez créer un répertoire virtuel pour l'installation de Bugzilla. Mettez les fichiers Bugzilla dans un répertoire appelé autrement que le nom que vous voulez que vos utilisateurs voient. C'est-à-dire, si vous voulez que vos utilisateurs accèdent à votre installation Bugzilla par « http://<votre_nom_de_domaine>/Bugzilla », alors ne mettez pas vos fichiers Bugzilla dans un répertoire nommé « Bugzilla ». Au lieu de cela, placez les dans un emplacement différent et utilisez l'outil d'administration de IIS pour créer un répertoire virtuel nommé « Bugzilla » qui se comporte comme un alias pour l'emplacement réel des fichiers. Lors de la création du répertoire virtuel, assurez-vous d'ajouter les permissions « Exécuter les scripts ».
Vous devrez aussi indiquer à IIS comment Bugzilla doit manipuler les fichiers « .cgi ». Utilisez à nouveau l'outil d'administration de IIS, ouvrez les propriétés du nouveau répertoire virtuel et sélectionnez l'option « Configuration » pour accéder à l'association de fichiers. Créez une entrée « .cgi » ainsi :
<chemin d'accès complet à perl.exe >\perl.exe -x<chemin d'accès complet à Bugzilla> -wT "%s" %s
Par exemple :
c:\perl\bin\perl.exe -xc:\bugzilla -wT "%s" %s
L'installation de ActiveState a peut-être déjà créé une entrée pour les fichiers « .pl » qui est limitée à « GET,HEAD,POST ». Si c'est le cas, cette association doit être retirée car les fichiers « .pl » de Bugzilla ne sont pas conçus pour être exécutés par un serveur Web. |
IIS devra aussi savoir que le fichier index.cgi
doit être traité
comme le document par défaut. Dans l'onglet « Documents » dans la page de propriétés
du répertoire virtuel, vous devez ajouter « index.cgi » comme type de document
par défaut. si vous le souhaitez, vous pouvez retirer les autres types de document
pour ce répertoire virtuel particulier, puisque Bugzilla
ne les utilise pas.
Et aussi, nous ne le dirons jamais assez, assurez-vous que les fichiers tels que
localconfig
et votre répertoire
data
sont sécurisés
comme indiqué dans Section 4.2.1, « Désactiver l'accès à distance aux fichiers de configuration de Configuration ».
Votre installation de Bugzilla devrait à présent fonctionner. Accédez à la page
http://<votre-serveur-bugzilla>/
-
vous devriez voir la page d'accueil de Bugzilla.
Si ce n'est pas le cas, consultez la section « Dépannage »,
Annexe A, Dépannage.
L'URL ci-dessus peut être incorrecte si vous avez installé Bugzilla dans un sous-répertoire ou utilisé un lien symbolique depuis la racine de votre site Web vers le répertoire de Bugzilla. |
Connectez-vous avec le compte administrateur que vous avez défini lors du dernier lancement
de checksetup.pl
. Rendez-vous sur la page des paramètres
et regardez s'il y a des paramètres que vous souhaitez changer.
Les paramètres clés sont documentés dans Section 3.1, « Configuration de Bugzilla » ;
vous devriez certainement modifier les paramètres
maintainer et urlbase ;
vous pourriez aussi vouloir modifier les paramètres
cookiepath ou requirelogin.
Bugzilla comporte plusieurs fonctionnalités optionnelles qui nécessitent une configuration supplémentaire. Vous pouvez lire cela dans Section 2.3, « Configuration optionnelle supplémentaire ».