Comment installer et sécuriser eGroupWare Version 0.4

Comment installer et sécuriser
eGroupWare
Version 0.4
Ce document est publié sous:
Creative Commons Attribution-ShareAlike License
Toute extension ou réponse à ce document sont les bienvenues.
Veuillez contacter son auteur.
Auteur: Reiner Jung
Droits d’auteur: Reiner Jung
Contact: [email protected]
Traduction française: Antoine Theytaz
Contact: [email protected]
Projet: eGroupWare
Date de publication 13-Jan-05
Reiner Jung
Install and Secure eGroupWare
Page 2 of 68
Index
Index
3
1Checklist d’installation pour eGroupWare
6
2Comment faire une installation rapide
7
3Migration de votre installation de phpGroupWare vers eGroupWare
13
4Mise à jour d’eGroupWare
14
4.1Mise à jour de l’installation eGroupWare
14
4.2Adaptation de votre configuration vers une nouvelle version de header.inc.php
14
5Instructions d’installation
15
5.1Téléchargement des paquetages
15
5.2Pourquoi les paquetages signés GPG et les md5sum sont-ils nécessaires ?
15
5.2.1Installation de la clé GPG pour tar.gz.gpg, tar.bz2.gpg et zip.gpg
15
5.2.2Vérification de la clé GPG
15
5.2.3Installez la clé GPG pour les paquetages RPM
17
5.3Comment faire pour valider un paquetage?
17
5.4Installation des paquetages sur votre serveur
19
5.4.1Recomposition de paquetages RPM avec d’autres chemins
19
5.4.2Installation d’un paquetage non signé sur votre serveur
19
5.4.3Installation d’un paquetage signé GPG sur votre serveur
19
5.4.4Installation depuis CVS
20
6Sécurité de base du serveur
21
6.1La plateforme du serveur
21
6.1.1Vérification de votre serveur pour les services et ports ouverts
21
6.1.1.1Ports qu’eGroupWare a besoin pour fonctionner
21
6.1.1.2Le scanneur de ports
22
6.1.1.3Affichage du résultat d’un scanneur de ports
22
6.1.1.4Désactivation des services non nécessaires
22
6.1.2Désinstallation des logiciels non nécessaires de votre serveur
23
6.1.3Vérifications locales pour les signes d’un rootkit
23
6.1.3.1Extrait de l’affichage du résultat d’un chkrootkit
24
6.1.3.2Installation du RPM chkrootkit
24
6.1.3.3Installation du chkrootkit depuis le fichier tar.gz
25
6.1.4Administration sécurisée de votre serveur
25
6.1.4.1Connexion à votre serveur à travers une session sécurisée
26
6.1.4.2Travailler avec des paires de clés SSH
26
6.1.4.2.1Création d’une paire de clés sécurisée
27
6.1.4.2.2Copie de votre clé publique sur le serveur
27
6.1.4.2.3L’outil ssh-add
27
6.1.4.2.4Sécurisation de votre client SSH
28
6.1.4.2.5Sécurisation de votre SSHD
28
6.1.5Installation de logiciels pour surveiller les journaux de votre serveur
Reiner Jung
Install and Secure eGroupWare
28
Page 3 of 68
6.1.6Environnement de détection d’intrusion
29
6.1.6.1Installation de AIDE
29
6.1.6.2Le fichier de configuration AIDE aide.conf
29
6.1.6.3Création d’un fichier cronjob pour lancer AIDE automatiquement
31
6.1.6.4Exemple de rapport AIDE
33
6.1.6.5Création d’une nouvelle base de données après modifications
34
6.1.7Sécurité des services (daemons)
34
6.1.8Pare-feu
34
6.2Sécurité des Application Internet
35
6.2.1Installation de ModSecurity
35
6.2.2Configuration de base
35
6.2.3Test de ModSecurity
37
6.2.4Exemple de journal de ModSecurity
37
6.3Optimisation et sécurisation du serveur Apache web
38
6.3.1Modules recommandés
38
6.3.2Autres options de configuration Apache
39
6.4Turck MMCache
39
6.4.1Prérequis
39
6.4.1.1Préliminaires pour RedHat Enterprise Linux 3
39
6.4.2Compatibilité
41
6.4.3Installation rapide
41
6.4.4Interface Web
42
6.5Sécurisation de votre installation PHP
43
6.6Création d’un certificat de serveur Web
44
6.6.1Joindre “CA Cert “
45
6.6.2Création de votre requête de signature de certificat
45
6.6.2.1Modification du fichier openssl.cnf
45
6.6.2.2Création de la clé serveur et de la requête de signature
46
6.6.2.3Envoi de la requête de signature à votre autorité de certification
47
6.6.2.4Installation du certificat serveur.
47
6.7Le service web
48
6.8Le service SQL
48
7Configuration d’eGroupWare
50
7.1Création de votre base de données
50
7.2Comment démarrer la configuration?
51
7.3Vérification de l’installation eGroupWare
51
7.4Création de votre header.inc.php
52
7.5Administration Installation / Configuration
53
7.5.1Etape 1 – Gestion simplifiée des applications
53
7.5.2Etape 2 – Configuration
54
7.5.2.1Création du répertoire d’accueil des fichiers
54
7.5.2.2Edition de la configuration actuelle
55
7.5.3Etape 3 – Compte Administrateur
Reiner Jung
Install and Secure eGroupWare
57
Page 4 of 68
7.5.4Etape 4 – Gestion linguistique
58
7.5.5Etape 5 – Gestion avancée des applications
58
8Connectez-vous à eGroupWare
58
9Dépannage
59
9.1Oubli du mot de passe de l’administrateur
59
9.2L’Administrateur ou un autre utilisateur est bloqué
59
9.3Erreur base de données : lock(Array, write) failed
59
9.4Vérification des permissions de fichiers
59
9.5Ne peut pas continuer dans Vérification de l’installation page (1)
60
9.6Ne peut pas continuer dans Vérification de l’installation page (2)
60
9.7[WINDOWS] fudforum/3814******9): Permission denied
60
9.8Sitemgr: mkdir(./sitemgr-link): Permission denied
61
10Références
62
11A faire et Journal des changements
65
11.1A faire pour ce document
65
11.2Journal des changements pour ce document
65
12Contributeurs à ce document
67
13Termes et conditions
68
Reiner Jung
Install and Secure eGroupWare
Page 5 of 68
1
Checklist d’installation pour eGroupWare
Ceci vous donnera une vue d’ensemble rapide de ce dont vous avez besoin pour eGroupWare.
Vous n’avez pas besoin d’un compilateur pour installer eGroupWare car celui-ci n’est composé que de PHP,
d’HTML et de fichiers d’images.
Ce dont vous avez besoin pour
Logiciel exemple
eGroupWare
Vous avez besoin d’un système
Vérifiez vos prérequis
Linux, Unix, *BSD
d’exploitation comme suit:
MAC
WIN NT / 2000 / XP
eGroupWare requiert un serveur web.
IIS
Ici quelques exemples:
Roxen
Apache 1.3 ou 2.0
eGroupWare requiert une base de
MYSQL
données:
MS-SQL
PostgreSQL
Si vous désirez envoyer des emails avec
Postfix
eGroupWare, alors vous avez besoin d’un
Sendmail
serveur SMTP comme:
Exim
Si vous voulez utiliser eGroupWare comme
Cyrus
client de messagerie POP ou IMAP vous
Courier
avez besoin du service correspondant
Dovecot
comme:
eGroupWare requiert PHP:
PHP > 4.1 requis.
PHP > 4.2
recommandé.
Reiner Jung
Install and Secure eGroupWare
Page 6 of 68
2
Comment faire une installation rapide
Ceci va vous donner une courte introduction sur les étapes de configuration d’eGroupWare. Les installations
eGroupWare peuvent être faites en moins de 10 minutes. Si vous voulez avoir une description plus détaillée
sur l’installation et la sécurité, lisez les pages « Sécurité de base du serveur » .
1)
Téléchargez les paquetages eGroupWare depuis la zone de téléchargement de Sourceforge.
En ce moment les paquetages eGroupWare sont fournis au format zip, tar.gz, bz2 et rpm.
2)
[LINUX] Installez les paquetages dans le répertoire correspondant au répertoire racine de votre service
web ou un autre répertoire que vous aimeriez utiliser. Le paquetage RPM sera automatiquement installé
dans le répertoire /var/www/html
[root@server tmp]# rpm –ivh eGroupWare-x.x.xx.xxx-x.rpm
Pour installer n’importe quel autre type de paquetage eGroupWare, allez dans le répertoire racine de votre
service web et extrayez le paquetage.
[root@server tmp]# cd /var/www
[root@server www]#tar xzvf eGroupWare-x.x.xx.xxx-x.tar.gz
[WINDOWS] En utilisant un programme comme Winzip, dézippez le fichier dans n’importe quel
dossier se trouvant dans votre serveur web. En d’autres termes, le répertoire que vous choisissez doit être
accessible depuis Internet.
Soyez certain de conserver la structure des dossiers quand vous décompressez le fichier zip et votre
installation ressemblera à quelque chose comme: D:\websites\yourwebsite\eGroupware\(tous les fichiers
du zip eGroupWare).
Reiner Jung
Install and Secure eGroupWare
Page 7 of 68
3)
[LINUX] Modifiez les permissions de vos fichiers de votre installation eGroupWare.
- Votre compte administrateur doit avoir les permissions de lecture et d’écriture
- Le compte sous lequel le service web fonctionne doit avoir un accès en lecture seule. Votre service
web n’a besoin de droit en écriture que pour le répertoire fudforum
[WINDOWS] maintenant vous devez spécifier les “permissions” correctes pour les fichiers
eGroupWare.
Reiner Jung
Install and Secure eGroupWare
Page 8 of 68
Le compte administrateur a au moins besoin des permissions en lecture et écriture (Read and Write).
Le compte web a besoin de la permission en lecture (Read).
Reiner Jung
Install and Secure eGroupWare
Page 9 of 68
Pour FUDFORUM seulement – le compte web a besoin de read et write
4)
Vérifiez que votre service web ainsi que la base de données soient démarrés.
5)
Pointez votre navigateur vers l’URL http://< adresse_de_votre_serveur>/egroupware/setup
6)
Le script de vérification d’installation devrait démarrer automatiquement.
- Attendez que le script se termine, ensuite corrigez les éventuelles erreurs qui apparaissent
- Après avoir corrigé les éventuelles erreurs, rechargez la page et vérifiez votre installation encore une
fois
- Lorsqu’il n’y a plus d’erreur, défilez vers le bas et cliquez sur “Revenir à la page de l'installateur”
[WINDOWS] Vous pourriez avoir quelques points qui ne se résoudront pas complètement. Par
exemple l’option register_globals = on de votre fichier PHP.ini (en principe sous C:\WINNT). Quelques
scripts requièrent ceci activé tandis que d’autres non. Si vous le désactivez certains de vos sites web
risquent de ne plus fonctionner. La voie la plus sûre est de fixer cette valeur comme eGroupware le
préconise (désactivé - off) et de contrôler vos autres sites. Si ceux-ci ne fonctionnent plus, réactivez
cette option register_globals = on. Veuillez noter qu’eGroupWare ne requiert pas que cette option soit
sur « off » !
Aussi l’extension de base de données MsSQL (Microsoft) ne sera pas chargée si vous utilisez MySQL!
Reiner Jung
Install and Secure eGroupWare
Page 10 of 68
Quand ces conflits sont résolus – vous pouvez cliquer sur “continue to the Header Admin”
7)
Démarrez la Configuration de l'en-tête EgroupWare “Header Admin configuration”.
- Remplissez tous les champs
[WINDOWS] Server Root – Il s’agit de la racine de votre installation eGroupware. C’est-à-dire:
D:\websites\yourwebsite\egroupware
Include Root – mettez le même chemin, c’est-à-dire: D:\websites\yourwebsite\eGroupWare
(Veuillez noter que ce n’est pas votre adresse.com mais le chemin vers votre installation eGroupWare)
- Téléchargez le fichier header.inc.php et enregistrez-le dans la racine de votre installation eGroupware
(exemple /var/www/html/egroupware). Donnez au compte du service web le droit de lire ce fichier.
- Cliquez “Continuer”
[WINDOWS] Choisissez l’option pour télécharger le fichier header.inc.php que vous venez de créer
Ensuite soit vous l’enregistrez dans la racine de votre installation eGroupWare (si vous avez accès au
serveur), soit vous faites un « upload » avec FTP dans ce dossier. C’est-à-dire vers: D:\websites\your
website\eGroupware
 N’oubliez pas votre mot de passe. Celui-ci est encrypté et on ne pourra pas le récupérer.
8)
Allez sur la Page de connexion pour la configuration et l'installation « Setup/Config Admin ».
9)
Créez votre Bases de données / Tables.
- Remplissez le formulaire avec votre compte de base de données root et son mot de passe pour créer
la base de données automatiquement
Reiner Jung
Install and Secure eGroupWare
Page 11 of 68
- Continuez pour créer la base de données
- Re-vérifiez l’installation
- Continuez en créant les tables
[WINDOWS] Ceci devrait être très simple si vous connaissez le nom et le mot de passe pour votre
serveur MySQL. Complétez les informations et cliquez sur Créer la base de données “Create
Database.”
Quand vous cliquez sur Re-vérifier mon installation “Re-check My Installation” – vous verrez que vous
n’avez aucune application installée et aurez l’option d’installer les tables principales et les applications
Admin et Préférences. Allez-y et installez ces tables.
*Voir la section “Dépannage”– si vous avez des erreurs.
Editer la configuration actuelle
- Créez un répertoire à l’extérieur du répertoire racine de votre serveur web et donnez au compte web les
droits en lecture, écriture et exécution correspondants. Par exemple, si le répertoire racine de votre serveur
web est /var/www/html, vous pouvez créer ce répertoire sous /var/www/files
[WINDOWS] Ceci veut dire qu’il faut créer un dossier/répertoire qui n’est pas sous l’installation
D:\websites\yourwebsite\eGroupware. Par exemple si votre installation racine est sur
D:\websites\yourwebsite\eGroupware – vous mettrez ce dossier sur
D:\websites\yourwebsite\nouveauRepertoire. Dès que ce répertoire est créé, vérifiez que le compte
du service web y a bien les permissions en lecture, en écriture et exécution.
10) Création du compte Administrateur
- N’utilisez pas ce compte comme votre compte primaire de gestion de tous les jours. Il doit être utilisé
comme compte de secours et n'est utilisé que pour la configuration initiale.
11) Gestion linguistique
- Installez the langues que vous désirez utiliser.
12) Gérer les Applications
- Désinstallez les applications que vous ne désirez pas utiliser
13) Connexion à eGroupWare
Pointez votre navigateur sur http://nomdevotreserveur/egroupware
Reiner Jung
Install and Secure eGroupWare
Page 12 of 68
3
Migration de votre installation de phpGroupWare vers eGroupWare
Téléchargez les paquetages nécessaires depuis notre page et installez-les comme décrit au Chapitre 2.
Copiez le fichier header.inc.php du répertoire phpGroupWare vers le répertoire eGroupWare et éditez les lignes
suivantes dans header.inc.php:
De:
define('PHPGW_SERVER_ROOT','/var/www/html/phpgroupware');
define('PHPGW_INCLUDE_ROOT','/var/www/html/phpgroupware');
Vers:
define('PHPGW_SERVER_ROOT','/var/www/html/egroupware');
define('PHPGW_INCLUDE_ROOT','/var/www/html/egroupware');
Pointez votre navigateur vers l’URL
https://www.domaine.com/egroupware/setup
Connectez-vous à la Page de connexion pour la configuration et l'installation « Setup/Config
Admin Login»
Cliquez sur Editer la configuration actuelle
et modifiez le contenu du troisième champ (Entrez l'emplacement de l'URL…) en spécifiant:
/egroupware
C’est tout… bon plaisir!
Reiner Jung
Install and Secure eGroupWare
Page 13 of 68
4
Mise à jour d’eGroupWare
4.1
Mise à jour de l’installation eGroupWare
1)
Téléchargez les paquetages depuis notre page à Sourceforge.
2)
Installez les paquetages sur votre serveur:
Pour les paquetages RPM faites ce qui suit:
[root@server tmp]# rpm –Uvh eGroupWare*
Pour les paquetages tar.gz, allez dans le répertoire racine de votre serveur web (au-dessus de l’installation
eGroupWare):
[root@server tmp]# cd /var/www/html
[root@server html]# tar xzvf eGroupWare-x.xx.xxx-x.tar.gz
Pour les paquetages tar.bz2, allez aussi dans le répertoire racine de votre serveur web (au-dessus de
l’installation eGroupWare):
[root@server tmp]# cd /var/www/html
[root@server html]# tar xjvf eGroupWare-x.xx.xxx-x.tar.bz2
Il est possible de faire des mises à jour avec CVS. Faites des mises à jour avec CVS SEULEMENT depuis la
branche stable et pas depuis la branche de développement!!
[root@server tmp]# cd /var/www/html/egroupware
[root@server egroupware]# cvs update -Pd
3)
Connectez-vous à la Page de connexion pour la configuration et l'installation « Setup/Config Admin
Login»
4)
Si nécessaire, eGroupWare vous prévient qu'il doit mettre à jour la base de données.
5)
Vérifiez les mises à jour requises à l’étape 4, Advanced Application Management.
4.2
Adaptation de votre configuration vers une nouvelle version de header.inc.php
1)
Après l’installation vous verrez le message suivant:
Vous devez adapter votre configuration vers une nouvelle version de header.inc.php
2)
Allez à https://votreserveur/egroupware/setup
- Descendez sur "Vérification de l’installation "
- Confirmez les tests et allez sur Configuration de l'en-tête EgroupWare « Header Admin »
3)
Connectez-vous avec le compte et le mot de passe correspondant.
4)
Modifiez les paramètres si nécessaire.
5)
Enregistrez le fichier.
Reiner Jung
Install and Secure eGroupWare
Page 14 of 68
5
Instructions d’installation
5.1
Téléchargement des paquetages
Vous pouvez télécharger les paquetages depuis :
http://sourceforge.net/project/showfiles.php?group_id=78745
Nous fournissons les paquetages suivants dans la zone de téléchargement de Sourceforge:
*.tar.gz
*.tar.bz2
*.zip
Ces paquetages sont signés avec une clé gpg pour des raisons de sécurité :
*.tar.gz.gpg
*.tar.bz2.gpg
*.zip.gpg
Les fichiers RPM fonctionnent sous Red Hat et la plupart des distributions basées sous RPM :
eGroupWare*noarch.rpm
Le paquetage eGroupWare-all-apps*.noarch.rpm contient tous les paquetages disponibles.
Les autres paquetages fournissent les applications dans des paquetages séparés.
5.2
Pourquoi les paquetages signés GPG et les md5sum sont-ils nécessaires ?
Certaines fois, des pirates attaquent des serveurs de développement afin de modifier les paquetages
disponibles en y mettant des chevaux de Troie, des « sniffeurs », etc. Les paquetages signés valident
l’intégrité des paquetages du projet avant que vous n’installiez et fassiez fonctionner les applications sur
votre serveur.
5.2.1
Installation de la clé GPG pour tar.gz.gpg, tar.bz2.gpg et zip.gpg
Installez la clé GPG des paquetages avec lesquels tar.gz.gpg, tar.bz2.gpg, zip.gpg, md5sumeGroupWare-version.txt.asc et les RPMs sont signés.
Sous Linux, vous pouvez utiliser les commandes suivantes pour importer la clé de validation des
paquetages tar.gz.gpg, tar.bz2.gpg, zip.gpg et md5sum*.asc.
[root@server root]# gpg --keyserver blackhole.pca.dfn.de --recv-keys 0xD9B2A6F2
5.2.2
Vérification de la clé GPG
Si vous désirez valider les paquetages, vous devez faire confiance à la clé. Si vous ne le faites pas,
vous recevrez une erreur chaque fois comme quoi la clé n’est pas certifiée.
Listez les clés disponibles dans votre trousseau. Vous devez être capable de consulter les clés
importées ici :
Reiner Jung
Install and Secure eGroupWare
Page 15 of 68
[root@server root]# gpg --list-keys
gpg: Warning: using insecure memory!
gpg: please see http://www.gnupg.org/faq.html for more information
/root/.gnupg/pubring.gpg
-------------------------------pub 1024D/D9B2A6F2 2002-12-22 Reiner Jung <[email protected]>
sub 1024g/D08D986C 2002-12-22
Maintenant éditez la clé ayant le numéro D9B2A6F2
[root@server root]# gpg --edit-key D9B2A6F2
gpg (GnuPG) 1.0.7; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
gpg: Warning: using insecure memory!
gpg: please see http://www.gnupg.org/faq.html for more information
gpg: checking the trustdb
gpg: no ultimately trusted keys found
pub 1024D/D9B2A6F2 created: 2002-12-22 expires: never
trust: -/-
sub 1024g/D08D986C created: 2002-12-22 expires: never
(1). Reiner Jung <[email protected]>
Vous pouvez, mais n’êtes pas obligé, de vérifier l’empreinte digitale de la clé. L’empreinte digitale de
la clé est:
BBFF 354E CA1F 051E 932D 70D5 0CC3 882C D9B2 A6F2
Command> fpr
pub 1024D/D9B2A6F2 2002-12-22 Reiner Jung <[email protected]>
Fingerprint: BBFF 354E CA1F 051E 932D 70D5 0CC3 882C D9B2 A6F2
Maintenant vous pouvez signer la clé
Command>trust
pub 1024D/D9B2A6F2 created: 2002-12-22 expires: never
trust: f/-
sub 1024g/D08D986C created: 2002-12-22 expires: never
(1). Reiner Jung <[email protected]>
Please decide how far you trust this user to correctly
verify other users' keys (by looking at passports,
checking fingerprints from different sources...)?
Reiner Jung
Install and Secure eGroupWare
Page 16 of 68
1 = Don't know
2 = I do NOT trust
3 = I trust marginally
4 = I trust fully
5 = I trust ultimately
i = please show me more information
m = back to the main menu
Your decision? 5
Do you really want to set this key to ultimate trust? yes
pub 1024D/D9B2A6F2 created: 2002-12-22 expires: never
trust: u/-
sub 1024g/D08D986C created: 2002-12-22 expires: never
(1). Reiner Jung <[email protected]>
Please note that the shown key validity is not necessary correct
unless you restart the program.
Maintenant vous pouvez vérifier la clé au prompt avec “check” ou quitter la session.
5.2.3
Installez la clé GPG pour les paquetages RPM
Pour importer la clé requise pour valider le paquetage RPM, rapatriez la clé D9B2A6F2 depuis le serveur de
clés:
http://www.dfn-pca.de/eng/pgpkserv/
Cliquez le lien “D9B2A6F2.” Dans la nouvelle fenêtre copiez le texte complet, en incluant les lignes suivantes:
----BEGIN PGP PUBLIC KEY BLOCK--------END PGP PUBLIC KEY BLOCK-----
et enregistrez le texte copié dans un fichier nommé:
EGROUPWARE-GPG-KEY
Ensuite importez la clé dans votre trousseau de clés RPM:
[user@server tmp]$ rpm --import EGROUPWARE-GPG-KEY
5.3
Comment faire pour valider un paquetage?
Si vous désirez vérifier le md5sum d’un paquetage, effectuez les points suivants (les étapes montrées
concernent un système Linux) :
Téléchargez le fichier md5sum-eGroupWare-version.txt.asc d’une page de téléchargement de
Sourceforge.
Validez le fichier md5sum-eGroupWare-version.txt.asc:
[user@server tmp]$ gpg --verify md5sum-eGroupWare-version.txt.asc
Reiner Jung
Install and Secure eGroupWare
Page 17 of 68
Trouvez le md5sum du paquetage:
[user@server tmp]$ md5sum eGroupWare-x.x.xx.xxx-x.tar.gz
41bee8f27d7a04fb1c3db80105a78d03 eGroupWare-x.x.xx.xxx-x.tar.gz
Ouvrez le fichier md5sum pour voir le md5sum original (le md5sum ci-dessous n’est qu’un exemple):
user@server tmp]$ less md5sum-eGroupWare-x.x.xx.xxx-x.txt.asc
-----BEGIN PGP SIGNED MESSAGE----Hash: SHA1
md5sum from file eGroupWare-x.x.xx.xxx.tar.gz is:
41bee8f27d7a04fb1c3db80105a78d03
- --------------------------------------md5sum from file eGroupWare-x.x.xx.xxx.tar.bz2 is:
3c561e82996349d596540f476b9624f2
- --------------------------------------md5sum from file eGroupWare-x.x.xx.xxx.zip is:
c3bb1f67ca143236e8603c6995e82db0
-----BEGIN PGP SIGNATURE----Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE/WM2wDMOILNmypvIRAm5GAJ0e6IlnellZU0quVQxWOP/pF+QGpwCgptbH
O02LpinLNqnr6epxt9vB9sw=
=OBcn
-----END PGP SIGNATURE----Ici on voit que la clé dans le fichier md5sum et la somme de contrôle de la ligne de commande sont
les mêmes, ainsi le paquetage n’a pas été modifié après sa composition.
Pour vérifier la somme de contrôle des paquetages tar.gz.gpg, tar.bz2.gpg ou zip.gpg, entrez ceci sur la
ligne de command de votre système Linux :
[user@server tmp]$ gpg --verify eGroupWare-x.x.xx.xxx-x.tar.gz.gpg
Pour vérifier la somme de contrôle des paquetages RPM, entrez ceci sur la ligne de command de votre
système Linux :
[user@server tmp]$ rpm --checksig eGroupWare-all-apps-x.x.xx.xxx-x.noarch.rpm
Reiner Jung
Install and Secure eGroupWare
Page 18 of 68
5.4
5.4.1
Installation des paquetages sur votre serveur
Recomposition de paquetages RPM avec d’autres chemins
Vous pouvez recompiler des paquetages pour SuSE Linux. Téléchargez le fichier *.src.rpm et typez
[user@server tmp]$ rpmbuild -–rebuild eGroupWare-x.xx.xxx-x.src.rpm
Ceci va créer un paquetage avec le chemin d’installation “/srv/www/htdocs” pour vous.
Ce paquetage se trouvera pour installation dans /usr/src/packages/RPMS/noarch.
5.4.2
Installation d’un paquetage non signé sur votre serveur
Pour installer un paquetage non signé, non-RPM, faites ceci:
Allez dans dans le répertoire document root de votre serveur web (ou bien où vous voulez installer le
paquetage)
[user@server tmp]$ cd /var/www/html
Faites l’extraction du paquetage dans ce répertoire. Si vous avez un paquetage dans le répertoire /tmp,
vous pouvez l’installer avec une des commandes suivantes, selon quel type de paquetage vous avez :
[user@server tmp]$ tar xzvf /tmp/eGroupWare-x.xx.xxx-x.tar.gz
[user@server tmp]$ tar xjvf /tmp/eGroupWare-x.xx.xxx-x.tar.bz2
[user@server tmp]$ unzip /tmp/eGroupWare-x.xx.xxx-x.zip
5.4.3
Installation d’un paquetage signé GPG sur votre serveur
Pour installer un paquetage signé GPG, non-RPM, faites ceci:
Détachez votre paquetage de votre clé GPG
[user@server tmp]$ gpg -o eGroupWare-X.XX.XXX-X.tar.gz -decrypt
eGroupWare-X.XX.XXX-X.tar.gz.gpg
Allez dans dans le répertoire document root de votre serveur web (ou bien où vous voulez installer le
paquetage)
[user@server tmp]$ cd /var/www/html
Faites l’extraction du paquetage dans ce répertoire. Si vous avez un paquetage dans le répertoire /tmp,
vous pouvez l’installer avec une des commandes suivantes, selon quel type de paquetage vous avez :
[user@server html]$ tar xzvf /tmp/eGroupWare-x.x.xxx-x.tar.gz
[user@server tmp]$ tar xjvf /tmp/eGroupWare-x.xx.xxx-x.tar.bz2
Reiner Jung
Install and Secure eGroupWare
Page 19 of 68
[user@server tmp]$ unzip /tmp/eGroupWare-x.xx.xxx-x.zip
Pour installer un paquetage RPM sur votre serveur, faites ce qui suit:
Vérifiez que le RPM soit valide:
[user@server tmp]$ rpm --checksig /tmp/eGroupWare-x.x.xxx-x.noarch.rpm
Installez le paquetage:
[user@server tmp]$ rpm -ivh /tmp/eGroupWare-all-apps-x.x.xxx-x.noarch.rpm
 si le répertoire document root de votre serveur n’est pas /var/www/html/, vous pouvez installer le RPM
aillleurs.
Pour ce faire, utilisez la commande suivante.
[user@server tmp]$ rpm -ivh –prefix /your_new_server/root /tmp/eGroupWare-all-apps-x.x.xxxx.noarch.rpm
5.4.4
Installation depuis CVS
Pour installer les paquetages depuis notre repository CVS, accomplissez les étapes suivantes:
Allez dans dans le répertoire document root de votre serveur web (ou bien où vous voulez installer le
paquetage):
[root@server tmp]# cd /var/www/html
[root@server html]# cvs –d:pserver:[email protected]:/cvsroot/egroupware login
[root@server html]# cvs –z3 –d:pserver:[email protected]:/cvsroot/egroupware co
egroupware
[root@server html]# cd egroupware
[root@server egroupware]# cvs co all
[root@server egroupware]# cvs update -Pd
Reiner Jung
Install and Secure eGroupWare
Page 20 of 68
6
Sécurité de base du serveur
6.1
La plateforme du serveur
Il existe beaucoup de manières de sécuriser la plateforme de votre serveur. La plus importante mesure de
sécurité que vous puissiez réaliser est de garder votre installation à jour. Pensez à vous inscrire à la liste de
distribution [email protected]. C’est là que nous publions les nouvelles
versions aussi bien que les correctifs de sécurité pour eGroupWare.
6.1.1
Vérification de votre serveur pour les services et ports ouverts
 Un port ouvert indique que votre serveur offre un service au public. Ceci peut être un serveur de fichier, un
serveur DNS, un serveur telnet, un serveur X ou un des nombreux services. Beaucoup des ports ouverts signifie
qu’un agresseur a une meilleure chance d’obtenir un accès à votre serveur. Votre serveur doit avoir seulement
les ports et services disponibles nécessaires pour faire fonctionner eGroupWare. Si vous avez besoin d’autres
ports non nécessaires pour eGroupWare alors vous devez sécuriser votre installation avec un pare-feu ou avec
des « TCP wrappers ». Si cela est possible, autorisez seulement les services ayant le Secure Socket Layer (SSL)
activé.
6.1.1.1
Ports qu’eGroupWare a besoin pour fonctionner
Les ports nécessaires sont:
Port Internet:
HTTP/80
Port Internet SSL:
HTTPS/443
Administration distante, Secure Shell:
SSH/22
Si vous devez faire fonctionner un serveur de messagerie sur la même machine, alors vous aurez besoin d’un
peu plus de ports. Si vous pouvez faire fonctionner votre serveur de messagerie sur une machine séparée,
alors faites-le. Vous aurez besoin des ports additionnels suivants pour un serveur de messagerie:
Serveur Email MTA:
SMTP/25
Serveur Email MTA sécurisé:
SMTPS/465
Pour récupérer les messages E-Mail de votre serveur avec un client (comme les clients eGroupWare), vous
avez besoin des ports suivants:
Serveur IMAP:
IMAP/143
Serveur IMAP SSL:
IMAPS/993
POP-3:
POP-3/110
POP-3 sur SSL:
POP-3/995
Si vous bloquez des ports avec un pare-feu, veuillez vous remémorer que vous devez autoriser un certain
trafic sortant. Ceci peut inclure NTP, DNS lookups, etc.
Reiner Jung
Install and Secure eGroupWare
Page 21 of 68
Conclusion:
6.1.1.2
Ports ouverts minimum (non-SSL):
22, 80, 443
Ports ouverts maximum (avec serveur messagerie):
22, 25, 80, 110, 143, 443, 465, 993, 995
Minimum recommandé (SSL seulement, pas de messagerie):
22, 443
Maximum recommandé (SSL seul., serveur de messagerie):
22, 25, 443, 993, 995
Le scanneur de ports
Il existe plusieurs outils qui vous permettent de vérifier votre installation pour les ports ouverts. Un outils qui est
disponible sous *NIX et Windows est Nmap, qu’on peut trouver ici : http://www.insecure.org/nmap
Installez Nmap sur votre machine et vérifiez les ports ouverts de votre serveur.
6.1.1.3
Affichage du résultat d’un scanneur de ports
Ici un exemple de résultat de scan nmap sur un serveur. Nmap vous montre les ports disponibles pour la
connexion sur ce serveur.
[root@server root]# nmap -sV yourserver.com
Starting nmap 3.45 ( http://www.insecure.org/nmap/ ) at 2003-09-17 00:48 CEST
Interesting ports on xxx.xxx.xx.xxx:
(The 1651 ports scanned but not shown below are in state: closed)
PORT
STATE
SERVICE
VERSION
22/tcp open
ssh
OpenSSH 3.1p1 (protocol 2.0)
80/tcp open
http
Apache httpd 1.3.27 ((Unix) (Red-Hat/Linux) mod_ssl/2.8.12
OpenSSL/0.9.6b PHP/4.1.2 mod_perl/1.26)
137/tcp filtered netbios-ns
138/tcp filtered netbios-dgm
139/tcp filtered netbios-ssn
443/tcp open
ssl
OpenSSL
Nmap run completed -- 1 IP address (1 host up) scanned in 23.000 seconds
6.1.1.4
Désactivation des services non nécessaires
Si Nmap a trouvé des services non nécessaires sur votre serveur, stoppez-les. Après le redémarrage du
serveur le service ne doit pas démarrer automatiquement à nouveau.
Sur une installation Red Hat vous pouvez utiliser la commande suivante pour stopper et désactiver un
service :
[root@server home]# service nom_du_service stop
[root@server home]# chkconfig –level 345 nom_du_service off
Reiner Jung
Install and Secure eGroupWare
Page 22 of 68
Sur une installation Debian vous pouvez utiliser les outils suivants:
Server:~# /etc/init.d/ nom_du_service stop
Server:~# rcconf
6.1.2
Désinstallation des logiciels non nécessaires de votre serveur
La plupart des systèmes d’exploitation installent par défaut une quantité de logiciels, ce qui n’est pas
indispensable. Pour des raisons de sécurité vous devriez effacer ces logiciels de votre serveur. Par exemple
les logiciels non obligatoires incluent les clients ftp, wget, gcc, fichiers d’entêtes et fichiers source.
Pour vérifier quels paquetages sont installés sur une distribution Linux basée sur RPM, faites ce qui suit:
[root@server home]# for i in `rpm –qa`; do rpm –qi $i >> paquetages_rpm; done
[root@server home]# less paquetages_rpm
Effacez les paquetages inutiles:
[root@server home]# rpm –e paquetage
Pour vérifier quels paquetages sont installés sur un Linux basé Debian, vous avez beaucoup d’outils. Par
exemple:
Server:~# aptitude
6.1.3
Vérifications locales pour les signes d’un rootkit
Chkrootkit est un outil pour vérifier localement la présence d’un rootkit. Chkrootkit a été testé sur: Linux 2.0.x,
2.2.x and 2.4.x, FreeBSD 2.2.x, 3.x, 4.x and 5.x, OpenBSD 2.x and 3.x., NetBSD 1.5.2, Solaris 2.5.1, 2.6 and 8.0, HP-UX
11, True64 and BSDI. Ceci contient:
•
chkrootkit: un shell script qui vérifie vos fichiers exécutables pour des modifications rootkit.
Ce qui suit est vérifié:
aliens asp bindshell lkm rexedcs sniffer wted w55808 scalper slapper z2 amd
basename biff chfn chsh cron date du dirname echo egrep env find fingerd gpm
grep hdparm su ifconfig inetd inetdconf init identd killall ldsopreload login ls lsof mail
mingetty netstat named passwd pidof pop2 pop3 ps pstree rpcinfo rlogind rshd
slogin sendmail sshd syslogd tar tcpd tcpdump top telnetd timed traceroute vdir w
write
Reiner Jung
•
ifpromisc.c: vérifie si l’interface réseau est en mode bavard « promiscuous mode».
•
chklastlog.c: vérifie les effacements lastlog.
•
chkwtmp.c: vérifie les effacements wtmp.
•
check_wtmpx.c: vérifie les effacements wtmpx. (Solaris seulement)
Install and Secure eGroupWare
Page 23 of 68
•
chkproc.c: vérifie les signes de chevaux de Troie LKM (Loadable Kernel Module).
•
chkdirs.c: vérifie les signes de chevaux de Troie LKM (Loadable Kernel Module).
•
strings.c: remplacements de chaînes de caractères « quick and dirty » (à la va-vite)
Vous pouvez télécharger chkrootkit comme un paquetage RPM ou comme un paquetage tar.gz en cliquant un
des liens suivants (maintenez Ctrl enfoncé quand vous cliquez):
chkrootkit.tar.gz
chkrootkit RPM
6.1.3.1
Extrait de l’affichage du résultat d’un chkrootkit
Checking `timed'... not found
Checking `traceroute'... not infected
Checking `vdir'... not infected
Checking `w'... not infected
Checking `write'... not infected
Checking `aliens'... no suspect files
Searching for sniffer's logs, it may take a while... nothing found
Searching for HiDrootkit's default dir... nothing found
Searching for t0rn's default files and dirs... nothing found
Searching for t0rn's v8 defaults... nothing found
Searching for Lion Worm default files and dirs... nothing found
Searching for RSHA's default files and dir... nothing found
Searching for RH-Sharpe's default files... nothing found
Searching for Ambient's rootkit (ark) default files and dirs... nothing found
6.1.3.2
Installation du RPM chkrootkit
Le RPM chkrootkit devrait fonctionner avec toutes les distributions basées sur RPM.
Téléchargez-le depuis l’adresse ci-dessus et installez-le comme suit:
[root@server tmp]# rpm –ivh chkrootkit-x.xx-x.i386.rpm
Après installation, vous pouvez modifier le chkrootkit_cronfile pour mieux garnir vos besoins. Cette étape
n’est pas nécessaire, mais rend votre rapport plus unique.
[root@server tmp]# vi /etc/cron.daily/chkrootkit_cronfile
#!/bin/sh
cd /usr/bin ./chkrootkit 2> /dev/null | mail –s “chkrootkit output” root
Modifiez les valeurs suivantes:
Reiner Jung
Install and Secure eGroupWare
Page 24 of 68
6.1.3.3
“chkrootkit output”
to
“resultat chkrootkit monserveur”
root
to
[email protected]
Installation du chkrootkit depuis le fichier tar.gz
Décompressez et installez Chkrootkit
[root@server tmp]# cp chkrootkit.tar.gz /usr/local; rm chkrootkit.tar.gz
[root@server tpm]# cd /usr/local/
[root@server local]# tar xzvf chkrootkit.tar.gz
[root@server local]# mv chkrootkit-x.xx chkrootkit
[root@server local]# chown –R root.root chkrootkit
[root@server chkrootkit]# cd chkrootkit
[root@server chkrootkit]# make sense
Afin que chkrootkit vous envoie ses rapports, vous avez deux possibilités: créer un fichier chkrootkit_cronfile
ou ajouter une ligne au fichier crontab.
Pour créer un chkrootkit_cronfile:
[root@server cron.daily]# vi chkrootkit_cronfile
#!/bin/sh
cd /usr/local/chkrootkit ./chkrootkit 2> /dev/null | mail –s “resultat chkrootkit monserveur” votre_adr_email
Ou alors ajoutez la ligne suivante à votre crontab:
0 1
* * * root
(cd /usr/local/chkrootkit; ./chkrootkit 2>&1 | mail –s
" resultat chkrootkit " votre_adr_email)
Maintenant chkrootkit vous enverra un rapport à l’adresse ci-dessus.
6.1.4
Administration sécurisée de votre serveur
Si vous désirez administrer votre serveur en toute sécurité, utilisez SSH (secure shell). Avec SSH, toutes les
connexions sont encryptées, alors qu’avec d’autres protocoles tels que telnet et ftp, les comptes et mots de
passe sont transmis non encryptés (en clair). Le transfert des mots de passe et des informations de compte sont
faciles à « sniffer » pour un agresseur si s’ils sont transmis en clair. Avec les mots de passe « sniffés », un pirate peut
se connecter avec votre compte.
Reiner Jung
Install and Secure eGroupWare
Page 25 of 68
 Si possible, n’utilisez que des connexions SSHv2 et jamais SSHv1. Ce dernier a un trou de sécurité qui peut
permettre le décryptage d’une information par un assaillant. Aussi n’utilisez pas votre compte root pour vous
connecter à votre serveur distant. Connectez-vous avec un utilisateur normal et utilisez su ou sudo pour les
tâches d’administration sur le serveur.
6.1.4.1
Connexion à votre serveur à travers une session sécurisée
Si votre serveur supporte les connexions SSH, alors il est facile de l’administrer à distance. Vous n’avez qu’à
vous connecter à votre serveur avec votre client SSH.
 La première fois que vous vous connectez à un serveur particulier avec SSH, vous recevrez un
avertissement comme suit. Vous devrez acquitter l’avertissement avec yes afin de continuer la
connexion au serveur.
[user@client home]$ ssh votreserveur
The authenticity of host 'votreserveur (100.178.76.207)' can't be established.
RSA key fingerprint is 7e:8e:55:8b:49:57:5d:41:40:ab:93:64:18:af:60:ea.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'votreserveur' (RSA) to the list of known hosts.
Connectez-vous à votre serveur pour de l’administration distante:
[user@client home]$ ssh votreserveur
Copiez des fichiers vers votre serveur avec copie sécurisée (scp):
[user@client home]$ scp votrefichier.txt votreserveur:/home/
Vous pouvez aussi utiliser sftp pour travailler avec un client ftp sécurisé:
[user@client home]$ sftp yourserver
 Avec certaines installations Linux les fonctions scp sont désactivées par défaut (par exemple
dans certaines versions de Debian). Si vous voulez l’activer, vous devez ajouter la ligne suivante
au fichier sshd_config de votre serveur.
Sur un système Debian ajoutez la ligne suivante:
subsystem sftp /usr/lib/sftp-server
Sur un système Red Hat ajoutez la ligne suivante:
subsystem sftp /usr/libexec/openssh/sftp-server
6.1.4.2
Travailler avec des paires de clés SSH
Utiliser des des paires de clés SSH a deux avantages. Le premier est que vous n’avez pas besoin de typer
votre mot de passe chaque fois que vous vous connectez au serveur, et le second est que c’est plus
Reiner Jung
Install and Secure eGroupWare
Page 26 of 68
sécurisé. Quand vous utilisez des paires de clés vous pouvez permettre l’utilisation d’authentification avec un
mot de passe différent que votre compte sur le serveur.
 Vous avez besoin d’une paire de clés séparées pour chaque utilisateur qui doit se connecter au serveur.
6.1.4.2.1
Création d’une paire de clés sécurisée
Vous devez créer la paire de clés ssh du côté client comme suit :
[user@client home]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /user/.ssh/id_dsa.
Your public key has been saved in /user/.ssh/id_dsa.pub.
The key fingerprint is:
f0:00:f7:95:e9:73:37:11:aa:e8:06:3e:60:9e:0d:25 user@yourserver
6.1.4.2.2
Copie de votre clé publique sur le serveur
Vous devez copier votre nouvelle clé publique (*.pub) de votre client local vers le serveur :
[user@client home]$ scp .ssh/id_dsa.pub useratserver@votreserveur:/home/votreutilisateur/
Installez la clé publique sur votre serveur:
[user@client home]$ ssh votreserveur
[user@server home]$ cat id_dsa.pub >> .ssh/authorized_keys
[user@client home]$ chmod 600 .ssh/authoritzed_keys
Maintenant, si vous vous connectez au serveur, celui-ci vous demande le mot de passe que vous avez typé
quand vous avez créé la paire de clés SSH. Si vous ne voulez pas le typer chaque fois que vous vous
connectez au serveur, vous pouvez utiliser ssh-add.
6.1.4.2.3
L’outil ssh-add
Si vous vous connectez souvent à votre serveur (ou différents serveurs), vous pouvez utiliser l’outil ssh-add
pour stocker le mot de passe de votre clé ssh. Ensuite vous typez votre mot de passe une fois et il est
stocké pour vous durablement :
[user@client home]$ ssh-add
Enter passphrase for /home/votreutilisateur/.ssh/id.dsa:
Identify added: /home/votreutilisateur/.ssh/id.dsa (/home/votreutilisateur/.ssh/id.dsa)
Reiner Jung
Install and Secure eGroupWare
Page 27 of 68
6.1.4.2.4
Sécurisation de votre client SSH
Il y a une ligne importante dans le fichier de configuration de votre client SSH. Vérifiez que la ligne
suivante figure bien dans votre fichier ssh_config:
Protocol 2
Ceci permet à vos connexions clientes seulement la version 2 du protocole SSH.
6.1.4.2.5
Sécurisation de votre SSHD
Pour votre service SSH (SSHD) vous pouvez utiliser les valeurs suivantes pour le rendre plus sécurisé:
Protocol 2
PermitRootLogin no
PubKeyAuthentication yes
PasswordAuthentication no
PermitEmptyPassword no
6.1.5
Installation de logiciels pour surveiller les journaux de votre serveur
L’analyse de vos fichiers de journaux « log files » est une obligation pour chaque administrateur. Si vous ne le
faites pas, vous n’avez aucune chance de repérer les problèmes de sécurité ou les anomalies. Il existe
plusieurs produits sur le marché qui peuvent vous aider à surveiller vos fichiers de journaux :
logcheck
logwatch
logsurfer
Logcheck est recommandé. Logcheck fonctionnera sous Linux, BSD, Sun, et HP-UX. Il est facile à installer et
fabrique des rapports clairs. Pour installer logcheck, typez ce qui suit depuis le répertoire principal logcheck
après avoir « détaré » les fichiers:
[root@server logcheck-1.1.1]# make linux
Pour l’exécuter automatiquement, vous devez ajouter une ligne à votre fichier crontab. Sous RedHat, c’est
/etc/crontab. Ouvrez le fichier et ajoutez la ligne:
00 * * * * root /bin/sh /usr/local/etc/logcheck.sh
Editez le shell script logcheck pour y ajouter le récipient d’envoi du rapport. Le récipient est la valeur de la
variable SYSADMIN dans le script.
[root@egroupware logcheck-1.1.1]# vi /usr/local/etc/logcheck.sh
Pour recevoir des rapports plus détaillés, les utilisateurs avancés peuvent aussi éditer les lignes suivantes:
logcheck.violations
logcheck.violations.ignore
Reiner Jung
Install and Secure eGroupWare
Page 28 of 68
logcheck.hacking
logcheck.ignore
6.1.6
Environnement de détection d’intrusion
Installez un environnement de détection d’intrusion afin de garantir l’intégrité de vos fichiers système et pour
détecter les modifications de votre serveur.
Il existe plusieurs solutions disponibles pour les systèmes basés sur *nix:
AIDE
Tripwire
Samhain
Des trois ci-dessus, AIDE est le plus facile à configurer.
6.1.6.1
Installation de AIDE
La plupart des distributions ont AIDE inclus et vous pouvez l’installer avec un outil standard comme RPM ou
apt-get.
AIDE dépend du paquetage mhas, que vous devez installer aussi. Si aucun paquetage n’est disponible pour
votre plateforme, vous devez le compiler vous-même avec:
./configure
make
make install
6.1.6.2
Le fichier de configuration AIDE aide.conf
Vous devez configurer le fichier aide.conf pour que tous les fichiers importants de votre système soient
vérifiés et pour réduire les fausses alarmes.

Mettez les fichiers /etc/aide.conf, /usr/sbin/aide and /var/lib/aide/aide.db.gz in dans un endroit
sécurisé, c’est-à-dire sur un média en lecture seule (comme un CD-ROM). Aussi, gardez l’empreinte MD5 ou
la signature GPG de ces fichiers dans un endroit sécurisé, ainsi vous avez un moyen de vérifier que personne
n’a modifié ces fichiers.
# Exemple de fichier de configuration pour AIDE.
@@define DBDIR /var/lib/aide
# The location of the database to be read.
database=file:/mnt/floppy/aide.db.gz
# The location of the database to be written.
Reiner Jung
Install and Secure eGroupWare
Page 29 of 68
database_out=file:@@{DBDIR}/aide.db.new.gz
# Whether to gzip the output to the database
gzip_dbout=yes
# Default.
verbose=5
report_url=file:/var/log/aide.log
report_url=stdout
# These are the default rules.
#
#p:
permissions
#i:
inode:
#n:
number of links
#u:
user
#g:
group
#s:
size
#b:
block count
#m:
mtime
#a:
atime
#c:
ctime
#S:
check for growing size
#md5:
md5 checksum
#sha1: sha1 checksum
#rmd160: rmd160 checksum
#tiger: tiger checksum
#haval: haval checksum
#gost: gost checksum
#crc32: crc32 checksum
#R:
p+i+n+u+g+s+m+c+md5
#L:
p+i+n+u+g
#E:
Empty group
#>:
Growing logfile p+u+g+i+n+S
# You can create custom rules like this.
NORMAL = R+b+sha1
DIR = p+i+n+u+g
# Next decide what directories/files you want in the database.
/boot NORMAL
/bin
NORMAL
/sbin NORMAL
Reiner Jung
Install and Secure eGroupWare
Page 30 of 68
/lib
NORMAL
/opt
NORMAL
/usr
NORMAL
/root NORMAL
# Check only permissions, inode, user and group for /etc, but
# cover some important files closely.
/etc
p+i+u+g
!/etc/mtab
/etc/exports NORMAL
/etc/fstab
NORMAL
/etc/passwd NORMAL
/etc/group
NORMAL
/etc/gshadow NORMAL
/etc/shadow NORMAL
Lancez "aide --init" pour construire la base de données initiale.
[root@server root]# /mnt/floppy/aide --init
Copiez /var/lib/aide/aide.db.new.gz vers un endroit sécurisé
[root@server root]# cp /var/lib/aide/aide.db.new.gz /mnt/floppy/var/lib/aide/aide.db.gz
Vérifiez votre système pour trouver des inconsistances grâce à la base de données AIDE. Avant de lancer
une vérification manuelle, soyez bien sûr que les fichiers binaires et la base de données n’aient pas été
modifiés à votre insu.
[root@server root]# /mnt/floppy/aide --check
6.1.6.3
Création d’un fichier cronjob pour lancer AIDE automatiquement
Ce fichier est inclu dans le paquetage AIDE de Debian, donc si vous avez installé AIDE depuis a.deb vous
n’avez pas besoin de créer ce fichier vous-même. Le fichier ci-dessous est un exemple modifié pour RedHat
/ Fedora Linux.
Si vous voulez créer un fichier cron pour une autre distribution vous devrez probablement modifier les
chemins.
#!/bin/sh
PATH="/bin:/usr/sbin:/usr/bin"
LOGFILE="/var/log/aide.log"
CONFFILE="/etc/aide.conf"
ERRORLOG="/var/log/error.log"
[ -f /usr/sbin/aide ] || exit 0
Reiner Jung
Install and Secure eGroupWare
Page 31 of 68
MAILTO=”votrecompte”
DATABASE=`grep "^database=file:/" $CONFFILE | head -1 | cut -d: -f2`
LINES=”1000”
FQDN=`hostname -f`
DATE=`date +"at %X on %x"`
[ -z "$MAILTO" ] && MAILTO="root"
if [ ! -f $DATABASE ]; then
(
echo "Fatal error: The AIDE database does not exist!"
echo "This may mean you haven't created it, or it may mean that someone has removed it."
) | /bin/mail -s "Daily AIDE report for $FQDN" $MAILTO
exit 0
fi
aide --check >$LOGFILE 2>$ERRORLOG
(cat << EOF;
This is an automated report generated by the Advanced Intrusion Detection
Environment on $FQDN ${DATE}.
EOF
if [ -s $LOGFILE ]; then
loglines=`wc -l $LOGFILE | awk '{ print $1 }'`
if [ ${loglines:=0} -gt $LINES ]; then
echo
echo "TRUNCATED (!) output of the daily AIDE run:"
echo "Output is $loglines lines, truncated to $LINES."
head -$LINES $LOGFILE
echo "The full output can be found in $LOGFILE."
else
echo "Output of the daily AIDE run:"
cat $LOGFILE
fi
else
echo "AIDE detected no changes."
fi
if [ -s $ERRORLOG ]; then
errorlines=`wc -l $ERRORLOG | awk '{ print $1 }'`
if [ ${errorlines:=0} -gt $LINES ]; then
echo "TRUNCATED (!) output of errors produced:"
echo "Error output is $errorlines lines, truncated to $LINES."
head -$LINES $ERRORLOG
echo "The full output can be found in $ERRORLOG."
Reiner Jung
Install and Secure eGroupWare
Page 32 of 68
else
echo "Errors produced:"
cat $ERRORLOG
fi
else
echo "AIDE produced no errors."
fi
) | /bin/mail -s "Daily AIDE report for $FQDN" $MAILTO

Il n’est pas recommandé de lancer les vérifications par AIDE sans vérifier vous-même AIDE
fréquemment. De plus, AIDE n’implémente pas de mot de passe ou de protection par encryption pour
protéger ses propres fichiers.
6.1.6.4
Exemple de rapport AIDE
Le rapport que AIDE créée vous montre tous les changements dans votre système de fichiers. Veuillez
comparer le rapport avec les modifications que vous avez faites. (p.ex. installation d’une mise à jour ou
modification de la configuration de votre serveur).
This is an automated report generated by the Advanced Intrusion Detection
Environment on egroupware at 05:27:16 PM on 02/14/2004.
Output of the daily AIDE run:
AIDE found differences between database and filesystem!!
Start timestamp: 2004-02-14 17:27:16
Summary:
Total number of files=34691,added files=2,removed files=0,changed files=5
Added files:
added:/etc/cron.daily/aide
added:/var/log/error.log
Changed files:
changed:/etc/aide.conf
changed:/root
changed:/root/.viminfo
changed:/root/.bash_history
changed:/root/chkrootkit-0.43-1.i386.rpm
Detailed information about changes:
File: /etc/aide.conf
Inode
: 89090
, 89173
Directory: /root
Reiner Jung
Install and Secure eGroupWare
Page 33 of 68
Mtime
: 2004-02-14 16:35:58
, 2004-02-14 17:27:12
Ctime
: 2004-02-14 16:35:58
, 2004-02-14 17:27:12
File: /root/.viminfo
Size
: 6683
, 6513
Mtime
: 2004-02-14 16:35:58
, 2004-02-14 17:27:12
Ctime
: 2004-02-14 16:35:58
, 2004-02-14 17:27:12
Inode
: 111362
, 111363
MD5
: UM0erzXMWPEdiCgKV/t91g==
, l9E0UBQu7PKTCJiS3b2Fzw==
SHA1
: jNlzWrSY/Q4zk3Rd7dnpyth2a0Y=
, R1wFnTg2scWSaRnn47zcZ+syS3E=
File: /root/.bash_history
Size
: 14824
, 14872
Mtime
: 2004-02-14 16:16:30
, 2004-02-14 16:48:32
Ctime
: 2004-02-14 16:16:30
, 2004-02-14 16:48:32
MD5
: zlVCx+39n8XLd3/ip757vA==
, nCs18yzJdwDD/BfsUssuhQ==
SHA1
: Al8brD3i+B6P2RMxpn6IaC+I5fE=
, bWBEjLA0Hnt6XXTszkzKi8gaTZQ=
File: /root/chkrootkit-0.43-1.i386.rpm
Permissions: -rw-r--r--
, -rw-r-----
Ctime
, 2004-02-14 16:51:06
: 2004-01-26 13:43:35
AIDE produced no errors.
6.1.6.5
Création d’une nouvelle base de données après modifications
Après vérification de votre rapport vous devez créer une nouvelle base de données et l’enregistrer vers un
endroit sûr. Lancez la mise à jour de votre base de données après chaque rapport vérifié!
[root@server root]# /mnt/floppy/aide --init
[root@server root]# cp /var/lib/aide/aide.db.new.gz /mnt/floppy/var/lib/aide/aide.db.gz
6.1.7
Sécurité des services (daemons)
Sous *nix faites tourner vos services nécessaires dans un environnement chroot.
Utilisez les TCP Wrappers ou xinetd pour sécuriser vos services.
6.1.8
Pare-feu
Configurez un pare-feu sur votre serveur pour protéger votre système.
Reiner Jung
Install and Secure eGroupWare
Page 34 of 68
6.2
Sécurité des Application Internet
Avec un logiciel de sécurité d’application Internet vous pouvez sécuriser vos applications basées sur le web
comme eGroupWare contre les injonctions SQL « SQL injunction », des scripts traversants « Cross Side Scripting »
et autres attaques. Il y a plusieurs applications sur le marché destinés aux serveurs web Apache et IIS. Deux outils
provenant de l’open source:
ModSecurity (pour Apache Web server 1.3x et 2.x)
IISShield (pour Internet Information Server)
ModSecurity est un moteur open source de détection d’intrusion et de prévention pour les applications web.
Il est intégré dans le serveur web, agissant comme un puissant parapluie – protégeant les applications des
attaques. ModSecurity supporte Apache 1.3x et Apache 2.x.
6.2.1
Installation de ModSecurity
« Détarer » les sources mod_security :
[root@server tmp]# tar xzvf mod_security-x.x.x.tar.gz
Aller dans le répertoire mod_security:
[root@server tmp]# cd mod_security-x.x.x/apache2
Vous pouvez compiler le module comme un module DSO (Dynamic Shared Object) ou statiquement dans le
serveur web. Si vous le compilez en statique, vous devez aussi recompiler Apache. Vous pouvez gagner en
performances, mais en général ce n’est pas énorme. L’exemple suivant vous montre comment compiler
ModSecurity en tant que module DSO:
[root@server apache2]# apxs -cia mod_security.c
Avec Redhat, ajoutez la ligne suivante à votre fichier httpd.conf dans la section de chargement des modules:
[root@server mod_security-1.7.4]# vi /etc/httpd/conf/httpd.conf
Include /etc/httpd/conf.d/mod_security.conf
Vous devez redémarrer votre serveur web Apache pour activer ModSecurity:
[root@server mod_security-1.7.4]# apachectl stop
[root@server mod_security-1.7.4]# apachectl start
6.2.2
Configuration de base
ModSecurity a des fichiers d’exemples de configuration pour vous aider à le configurer. Vous pouvez aussi
convertir des règles Snort afin de les utiliser dans ModSecurity. Des exemples de règles Snort peuvent être
trouvées sur le serveur de projet, ou alors vous pouvez les convertir vous-même.
<IfModule mod_security.c>
# Turn the filtering engine On or Off
Reiner Jung
Install and Secure eGroupWare
Page 35 of 68
SecFilterEngine On
# Make sure that URL encoding is valid
SecFilterCheckURLEncoding On
# The audit engine works independently and
# can be turned On of Off on the per-server or
# on the per-directory basis. "On" will log everything,
# "DynamicOrRelevant" will log dynamic requests or violations,
# and "RelevantOnly" will only log policy violations
SecAuditEngine RelevantOnly
# The name of the audit log file
SecAuditLog logs/audit_log
SecFilterDebugLog logs/modsec_debug_log
SecFilterDebugLevel 0
# Should mod_security inspect POST payloads
SecFilterScanPOST On
# Action to take by default
SecFilterDefaultAction "deny,log,status:500"
# Prevent path traversal (..) attacks
SecFilter "\.\./"
# Weaker XSS protection but allows common HTML tags
SecFilter "<[[:space:]]*script"
# Very crude filters to prevent SQL injection attacks
SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "select.+from"
# Require HTTP_USER_AGENT and HTTP_HOST headers
SecFilterSelective "HTTP_USER_AGENT|HTTP_HOST" "^$"
</IfModule>

Prudence! La configuration de ModSecurity dépend des autres modules que vous utilisez. Vous devez
régler finement cette configuration quand vous recevez des erreurs. N’utilisez que les filtres requis par votre
Reiner Jung
Install and Secure eGroupWare
Page 36 of 68
serveur. Par exemple, quand vous utilisez un serveur basé sur Linux, vous n’avez pas besoin de tester ou d’utiliser
les règles pour Windows.
6.2.3
Test de ModSecurity
Vous pouvez lancer un test rapide des fonctionnalités de ModSecurity. Allez dans le répertoire de test de
modsecurity et lancez quelques exemples de tests:
[root@server tests]# ./run-test.pl votreAdresseIP 09-directory-traversal-in-parameters.test
11-xss-attack.test 13-sql-injection.test
Test "09 Directory traversal in parameters": Failed (status = 406)
Test "11 XSS attack": Failed (status = 406)
Test "13 SQL injection": Failed (status = 406)
6.2.4
Exemple de journal de ModSecurity
Voici un exemple de journal des tests ci-dessus:
Request: xxx.xxx.xxx.xxx - - [[21/Feb/2004:20:40:29 +0100]] "GET
/cgi-bin/modsec-test.pl?p=../../tmp/file.txt HTTP/1.0" 406 352
Handler: cgi-script
---------------------------------------GET /cgi-bin/modsec-test.pl?p=../../tmp/file.txt HTTP/1.0
Host: xxx.xxx.xxx.xxx :80
User-Agent: mod_security regression test utility
Connection: Close
mod_security-message: Access denied with code 406. Pattern match "\.\./"
at THE_REQUEST.
mod_security-action: 406
HTTP/1.0 406 Not Acceptable
Content-Length: 352
Connection: close
Content-Type: text/html; charset=iso-8859-1
========================================
Request: xxx.xxx.xxx.xxx - - [[21/Feb/2004:20:40:29 +0100]] "GET
/cgi-bin/modsec-test.pl?p=<script>alert('Bang!')</script> HTTP/1.0" 406
352
Handler: cgi-script
---------------------------------------GET /cgi-bin/modsec-test.pl?p=<script>alert('Bang!')</script> HTTP/1.0
Host: xxx.xxx.xxx.xxx:80
User-Agent: mod_security regression test utility
Reiner Jung
Install and Secure eGroupWare
Page 37 of 68
Connection: Close
mod_security-message: Access denied with code 406. Pattern match "<(
|\n)*script" at THE_REQUEST.
mod_security-action: 406
HTTP/1.0 406 Not Acceptable
Content-Length: 352
Connection: close
Content-Type: text/html; charset=iso-8859-1
========================================
Request: xxx.xxx.xxx.xxx - - [[21/Feb/2004:20:40:29 +0100]] "GET
/cgi-bin/modsec-test.pl?p=DELETE%20FRoM+users HTTP/1.0" 406 352
Handler: cgi-script
---------------------------------------GET /cgi-bin/modsec-test.pl?p=DELETE%20FRoM+users HTTP/1.0
Host: xxx.xxx.xxx.xxx
User-Agent: mod_security regression test utility
Connection: Close
mod_security-message: Access denied with code 406. Pattern match
"delete[[:space:]]+from" at THE_REQUEST.
mod_security-action: 406
HTTP/1.0 406 Not Acceptable
Content-Length: 352
Connection: close
Content-Type: text/html; charset=iso-8859-1
6.3
Optimisation et sécurisation du serveur Apache web
Pour sécuriser votre serveur web vous devriez désactiver tous les modules inutiles.
Activez seulement ce dont vous avez besoin pour faire fonctionner vos applications web. Faire tourner
Apache avec moins de modules augmentera aussi ses performance.
6.3.1
Modules recommandés
Ce qui suit est une vue d'ensemble des modules dont vous avez besoin pour utiliser Apache 2 avec
eGroupWare. Tous les autres modules peuvent et doivent être désactivés.
 L’optimisation du serveur Apache web n’est pas destiné aux débutants! Lorsque vous désactivez
quelques modules dans votre fichier httpd.conf vous devez certainement commenter d’autres options. Il est
fortement recommandé de désactiver un module, de stopper Apache et de le redémarrer… faites ceci un à
un! Jetez un œil aux messages d’erreurs chaque fois.
mod_access.so
mod_auth.so
mod_include.so
Reiner Jung
Install and Secure eGroupWare
Page 38 of 68
mod_log_config.so
mod_expires.so
mod_deflate.so
mod_headers.so
mod_unique_id.so
mod_setenvif.so
mod_mime.so
mod_negotiation.so
mod_dir.so
mod_alias.so
6.3.2
Autres options de configuration Apache
Vous pouvez dissimuler l’identité de votre serveur Apache web pour des raisons de sécurité.
Il existe différentes possibilités pour Apache 1.3 et Apache 2.x.
La variable ServerTokens de votre fichier httpd.conf doit avoir la valeur OS, la variable ExtendedStatus la valeur
OFF. ServerSignature doit être sur OFF, le répertoire du manuel /var/www/manual à Deny from all. Si vous
n’avez pas besoin de cgi-bin désactivez-le. AddHandler pour type-map est à commenter avec un symbole #
en début de ligne. Sous /var/www/error spécifiez Order deny,allow avec Deny from all. Les répertoires /serverstatus et /server-info ne doivent jamais être consultables publiquement pour des raisons de sécurité.
6.4
Turck MMCache
Turck MMCache est un accélérateur PHP, un optimiseur, un encodeur et cache de contenu dynamique open
source gratuit pour PHP. Il augmente les performances des scripts PHP en les mettant en cache leur contenu
compilé, ainsi le temps supplémentaire lié à la compilation est pratiquement éliminé. Il utilise aussi de
l’optimisation pour accélérer l’exécution des scripts PHP. Turck MMCache réduit habituellement la charge
serveur et augmente la rapidité de votre code PHP de 1 à 10.
Pour plus d’information sur TurckMMCache visitez leur page d’accueil de développement.
6.4.1
Prérequis
phpize est requis pour ériger le script de configuration. Vérifiez la disponibilité de phpize avec search ou locate.
Sur Fedora Linux vous devez installer php-devel pour compiler mmcache.
 RedHat Enterprise Linux 3 est publié sans le paquetage phpize. Vous devez recompiler le paquetage PHP
et construire deux paquetage de développement.
6.4.1.1
Préliminaires pour RedHat Enterprise Linux 3
Pour créer les paquetages de développement PHP vous avez besoin des paquetages suivants.
bzip2-devel curl-devel db4-devel expat-devel freetype-devel gd-devel gdbm-devel gmp-devel
pspell-devel httpd-devel libjpeg-devel, libpng-devel pam-devel libstdc++-devel libxml2-devel
ncurses-devel openssl-devel zlib-devel pcre-devel imap-devel
Les paquetages pcre-devel et imap-devel ne sont pas fournis par RedHat et vous devez les construire vousmême. Téléchargez les srpm sur votre serveur, copiez-les sur /usr/src/redhat/SRPMS, et créez les paquetages
de développement:
[root@server SRPM]#rpmbuild –rebuild pcre-x.x-xx.src.rpm
Reiner Jung
Install and Secure eGroupWare
Page 39 of 68
[root@server SRPM]#rpmbuild –rebuild imap-x.x-xx.src.rpm
Allez dans le répertoire RPM et installez les RPMs de développement sur votre serveur:
[root@server SRPM]#cd /usr/src/redhat/RPM/i386
[root@server i386]#rpm –ivh pcre-devel-x.x-xx.i386 imap-devel-xxxxx-x.rpm
Installez le RPM source de PHP sur votre serveur et allez dans le répertoire SPEC
[root@server SRPM]#cd /usr/src/redhat/SPEC
Vous devez maintenant éditer le fichier php.spec avec vi ou vim
Après la ligne 55 ajoutez les lignes suivantes au fichier:
%package devel
Group: Development/Libraries
Summary: Files needed for building PHP extensions.
%description devel
The php-devel package contains the files needed for building PHP
extensions. If you need to compile your own PHP extensions, you will
need to install this package.
Modifiez la ligne suivante de:
$RPM_BUILD_ROOT%{_bindir}/{phptar,pearize,php-config,phpextdist,phpize}
Vers:
$RPM_BUILD_ROOT%{_bindir}/{phptar,pearize}
Effacez cette ligne:
rm -rf $RPM_BUILD_ROOT%{_includedir} \
$RPM_BUILD_ROOT%{_libdir}/php
Ajoutez ce bloc après la première section %files:
%files devel
%defattr(-,root,root)
%{_bindir}/php-config
%{_bindir}/phpize
%{_bindir}/phpextdist
%{_includedir}/php
%{_libdir}/php
Enregistrez le fichier, et créez le nouveau paquetage
[root@server SPECS]# rpmbuild –bb php.spec
Installez ce paquetage php-devel sur votre serveur UNIQUEMENT !
Reiner Jung
Install and Secure eGroupWare
Page 40 of 68
6.4.2
Compatibilité
Cette version de Turck MMCache a été testée avec succès avec PHP 4.1.0-4.3.2 sous RedHat Linux 7.0, 7.3, et
8.0; RedHat ES et AS; et sous Windows avec Apache 1.3 et 2.0.
6.4.3
Installation rapide
Compilation de Turck MMCache:
export PHP_PREFIX=”/usr”
$PHP_PREFIX/bin/phpize
./configure –enable-mmcache=shared –with-php-config=
$PHP_PREFIX/bin/php-config
make
Vous devez préciser le préfixe réel où PHP est installé avec la commande “export”. Il peut s’agir de
"/usr", "/usr/local", ou autre.
Installation de Turck MMCache:
make install
Configuration de Turck MMCache:
Turck MMCache peut être installé en tant qu’extension Zend ou PHP. Vous serez amené à
éditer votre fichier php.ini (habituellement /etc/php.ini)
Pour installer une extension Zend:
zend_extension=”/usr/lib/php4/mmcache.so”
mmcache.shm_size=“16“
mmcache.cache_dir=“/tmp/mmcache“
mmcache.enable=“1“
mmcache.optimizer=“1“
mmcache.check_mtime=“1“
mmcache.debug=”0”
mmcache.filter=””
mmcache.shm_max=”0”
mmcache_ttl=”0”
mmcache.shm_prune_period=”0”
mmcache.shm_only=”0”
mmcache.compress=”1”
Si vous utilisez une version thread-safe de PHP vous devez utiliser “zend_extensions_ts” au lieu de
“zend_extension”
Pour installer une extension PHP:
extension=”mmcache.so”
mmcache.shm_size=“16“
Reiner Jung
Install and Secure eGroupWare
Page 41 of 68
mmcache.cache_dir=“/tmp/mmcache“
mmcache.enable=“1“
mmcache.optimizer=“1“
mmcache.check_mtime=“1“
mmcache.debug=”0”
mmcache.filter=””
mmcache.shm_max=”0”
mmcache_ttl=”0”
mmcache.shm_prune_period=”0”
mmcache.shm_only=”0”
mmcache.compress=”1”
mmcache.content
Création du répertoire cache:
mkdir /tmp/mmcache
chmod 0777 /tmp/mmcache
6.4.4
Interface Web
Turck MMCache peut être administré à l’aide du script d’interface web mmcache.php, vous devrez ainsi mettre
ce fichier sur votre site web. Pour des raisons de sécurité, il est recommandé de restreindre l’accès de ce script
à votre IP local.
Depuis la version 2.3.18 l’interface d’administration peut être protégée par mot de passe. Pour générer un mot
de passe, lancez le fichier mmcache_password.php depuis une ligne de commande et suivez les instructions.
Création du mot de passe mmcache:
[root@server turck-mmcache***]# php –q mmcache_password.php
Changing password for Turck MMCache Web Interface (mmcache.php)
Enter admin name: cacheadminname
New admin password: yourpassword
Retype new admin password: yourpassword
Adjoutez les lignes suivantes à votre php.ini et redémarrez HTTPD
mmcache.admin.name="cacheadminname"
mmcache.admin.password="$1$0ScD9gkb$nOEmFerNMvQ576hELeLrG0"
Reiner Jung
Install and Secure eGroupWare
Page 42 of 68
6.5
Sécurisation de votre installation PHP
Sécurisez les répertoires de votre serveur web afin qu’ils ne soient visibles que par le compte du service web.
;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;
; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file.
open_basedir = /var/www/html:/var/www/files:/tmp:/usr/share/pear:/usr/bin/crontab
; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header). It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
expose_php = Off
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30
memory_limit = 24M
; Maximum execution time of each script, inseconds
; Maximum amount of memory a script may consume (8MB)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Print out errors (as a part of the output). For production web sites,
; you're strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
display_errors = Off
; Even when display_errors is on, errors that occur during PHP's startup
; sequence are not displayed. It's strongly recommended to keep
; display_startup_errors off, except for when debugging.
display_startup_errors = Off
; Log errors into a log file (server-specific log, stderr, or erro_ log (below))
; As stated above, you're strongly advised to use error logging in place of
; error displaying on production web sites.
Reiner Jung
Install and Secure eGroupWare
Page 43 of 68
log_errors = On
; Store the last error/warning message in $php_errormsg (boolean).
track_errors = Off
; Log errors to syslog (Event Log on NT, not valid in Windows 95).
error_log = syslog
;;;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;;;
register_globals = OFF
 Il est plus prudent de spécifier les chemins pour session.save_path et upload_tmp_dir dans votre
fichier php.ini, et de les inclure dans les restrictions open basedir.
6.6
Création d’un certificat de serveur Web
Pour protéger la confidentialité, vous pouvez utiliser un certificat de serveur quand vous vous connectez à
une installation eGroupWare. Avec un certificat vous pouvez vous connecter au serveur web à travers une
connexion encryptée (https au lieu de http). Sans connexion https, d’autres personnes peuvent “sniffer” votre
mot de passe ou d’autres informations personnelles.
Vous avez plusieurs possibilités lorsque vous créez des certificats de serveurs web :
1.) Créez votre propre autorité de certification et signez votre certificat de serveur vous-même.
(Le niveau de confiance est bas)
2.) Utilisez une autorité de certification à but non lucratif.
https://www.cacert.org
(Le niveau de confiance est haut)
3.) Utilisez une autorité de certification commerciale.
http://www.thawte.com
https://www.verisign.com
(Le niveau de confiance est haut)
 Si vous souhaitez utiliser une autorité de certification commerciale, allez directement au chapitre 6.6.2.2.
Reiner Jung
Install and Secure eGroupWare
Page 44 of 68
6.6.1
Joindre “CA Cert “
La première étape pour recevoir un certificat de serveur est de rejoindre cacert.
Ouvrez votre navigateur et allez à l’URL suivante: https://www.cacert.org
Suivez le lien à gauche pour joindre CA Cert.
Procédez à l’enregistrement.
Remplissez toutes les informations requises pour obtenir votre compte personnel chez CA Cert.
Après avoir soumis votre mot de passe, vous recevrez plus d’instructions par Email.
6.6.2
Création de votre requête de signature de certificat
Sur votre installation serveur vous devez créer une paire de clés et une requête de signature de certificat.
6.6.2.1
Modification du fichier openssl.cnf
 Vous serez amené à modifier votre fichier openssl.cnf si vous désirez utiliser le certificat d’une autorité à
but non lucratif CA Cert. Sous Debian Linux, vous trouverez ce fichier sous /usr/lib/ssl/ et pour Red Hat le
chemin est /usr/share/ssl/
Vérifiez que votre openssl.cnf ressemble à l’exemple suivant. Les lignes importantes ici sont les lignes
commentées ou bien les modifications de la valeur de stateOrProvinceName.
[root@server ssl]# vi openssl.cnf
# For the CA policy
[ policy_match ]
countryName
= match
stateOrProvinceName
= optional
organizationName
= match
organizationalUnitName
= optional
commonName
= supplied
emailAddress
= optional
[ req_distinguished_name ]
Reiner Jung
countryName
= Country Name (2 letter code)
countryName_default
= GB
countryName_min
=2
countryName_max
=2
stateOrProvinceName
= State or Province Name (full name)
#stateOrProvinceName_default
= Berkshire
localityName
= Locality Name (eg, city)
#localityName_default
= Newbury
Install and Secure eGroupWare
Page 45 of 68
6.6.2.2
0.organizationName
= Organization Name (eg, company)
#0.organizationName_default
= My Company Ltd
organizationalUnitName
= Organizational Unit Name (eg, section)
#organizationalUnitName_default
=
Création de la clé serveur et de la requête de signature
Pour obtenir un certificat, vous devez créer une clé serveur et une requête de signature de certificat.
1.) Créez une clé serveur. La clé serveur est placée sous Debian dans le répertoire /etc/ssl/certs/
et sous Red Hat dans /etc/httpd/conf/ssl.csr/
 La commande suivante créée une clé serveur protégée par mot de passe. Si vous n’avez pas d’accès
à la console de votre serveur, NE CREEZ PAS une clé protégée par mot de passe. Votre serveur attendra sur
un mot de passe au démarrage et ne continuera pas tant que vous n’entrerez pas le mot de passe. Si vous
avez accès à la console, utilisez la clé protégée par mot de passe! C’est plus sécurisé.
[root@server ssl]# /usr/bin/openssl genrsa -des3 1024 > /etc/httpd/conf/ssl.key/server.key
Generating RSA private key, 1024 bit long modulus
.......++++++
................................................................++++++
e is 65537 (0x10001)
Enter PEM pass phrase:
Pour créer une clé non protégée par mot de passe:
[root@server ssl]# /usr/bin/openssl genrsa 1024 > /etc/httpd/conf/ssl.key/server.key
Modifiez les droits d’accès pour votre clé:
[root@server ssl]# chmod go-rwx /etc/httpd/conf/ssl.key/server.key
2.) Maintenant vous devez créer votre requête de signature de certificat. Veuillez vous rappeler
de modifier les chemins de vos chemins serveur pour les clés.
[root@server ssl]# /usr/bin/openssl req -new -key /etc/httpd/conf/ssl.key/server.key
-out /etc/httpd/conf/ssl.csr/server.csr
Using configuration from /usr/share/ssl/openssl.cnf
Enter PEM pass phrase:
Le système vous demande le mot de passe que vous avez donné quand vous avez créé la clé. Si vous avez
créé une clé sans protection par mot de passe, un mot de passe n’est pas requis.
Reiner Jung
Install and Secure eGroupWare
Page 46 of 68
You are about to be asked to enter information that will be incorporated
into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [GB]:DE
State or Province Name (full name) []:
Locality Name (eg, city) [Newbury]:
Organization Name (eg, company) [My Company Ltd]:egroupware.org
Organizational Unit Name (eg, section) []:
Common Name (your name or server's hostname) []:egroupware.org
Email Address []:[email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Dans votre répertoire, vous trouverez un fichier nommé server.csr. Ce fichier doit être envoyé à votre
autorité de certification.
6.6.2.3
Envoi de la requête de signature à votre autorité de certification
La requête de signature de certificat doit être envoyée à l’autorité de certification. Ici on l’envoie à CA
Cert.
1.
Ouvrez votre navigateur et allez à l’URL suivante. https://www.cacert.org
2.
Suivez le lien « Server Certificate » -> « Login »
3.
Ajoutez un nouveau domaine.
4.
Confirmez l’email qui vous est envoyé.
5.
Suivez le lien « Certificates » -> « Requests »
6.
Copiez tout le contenu de votre fichier server.csr dans le champ texte.
7.
Approuvez le processus.
6.6.2.4
Installation du certificat serveur.
Après avoir soumis votre requête de signature de certificat, vous recevrez un email de votre autorité de
certification avec votre certificat signé. Le corps entier de l’Email doit être copié vers un fichier nommé
server.crt sur votre serveur.
Après avoir enregistré le fichier, vous devez redémarrer votre service web.
Reiner Jung
Install and Secure eGroupWare
Page 47 of 68
6.7
Le service web
Sécurisez vos répertoires web pour qu’ils ne soient visibles que par le compte du service web.
[root@server html]# chown -R root:web serveruser egroupware
[root@server html]# find egroupware -type d -exec chmod 550 {} \;
[root@server html]# find egroupware -type f -exec chmod 440 {} \;
Nous vous recommandons fortement de sécuriser votre répertoire Apache. Veuillez ajouter les lignes
suivantes à httpd.conf:
<Directory /var/www/html/egroupware>
<Files ~ "\.inc\.php$ | \.tpl$">
Order allow,deny
Deny from all
</Files>
</Directory>
6.8
Le service SQL
MySQL
Assurez-vous que votre service de base de données est actif et qu’ils soit démarré
automatiquement quand votre serveur démarre
Si vous configurez votre base de données MySQL pour la première fois, n’oubliez pas de
spécifier le mot de passe de la base de données MySQL. Dans une installation standard, le mot
de passe est vide!
Pour spécifier un mot de passe MySQL, utilisez la commande suivante:
[root@server html]# mysqladmin –u root password ‘new-password’
Le serveur MySQL inclus une base de données de test. Cette base de données n’est pas
nécessaire dans les environnements de production. Effacez cette base de données.
[root@server html]# mysql –u root –p
Enter Password:
mysql>drop database test;
Query OK, 0 rows affected (0,03 sec)
Reiner Jung
Install and Secure eGroupWare
Page 48 of 68
Pour la base de données MySQL, ajoutez le paramètre suivant pour être certain que votre
service MySQL ne puisse être utilisé que par votre hôte local (localhost). Modifiez votre
/etc/my.cnf et ajoutez la ligne suivante:
[mysqld]
bind-address=127.0.0.1
Reiner Jung
Install and Secure eGroupWare
Page 49 of 68
7
7.1
Configuration d’eGroupWare
Création de votre base de données
 Avec la nouvelle version d’eGroupWare, les scripts de configuration peuvent créer une base de données
automatiquement. Pour l’instant cela ne fonctionne qu’avec les bases de données MySQL et PostGresSQL! Pour
MSSQL, vous devez créer votre base de données manuellement. Si vous voulez qu’ eGroupWare créée votre
base de données automatiquement, allez au point 7.3
MySQL
Créez votre base de données et un compte pouvant se connecter à la base de données.
Créez la base de données:
[root@server html]# mysqladmin –u yourmysqladmin –p create database
Enter password:
Créez le compte et donnez–lui les droits d’accès à la base de données:
[root@server html]# mysql –u yourmysqladmin –p
Enter password:
mysql> grant all on egroupware.* to egroupwaredbuser@localhost
identified by “password”
PostgreSQL
Vérifiez qu’une connection à votre base de données est possible.
Avec le compte ROOT allez au compte postgres:
[root@server html]# su - postgres
Editez le fichier postgresql.conf:
-bash-2.05b$ cd data
-bash-2.05b$ vi postgresql.conf
Votre fichier devrait ressembler à l’exemple ci-dessous:
#Connection Parameter
tcpip_socket = true
#ssl = false
#max_connections = 32
port = 5432
Editez le fichier pg_hba.conf pour qu’il ressemble à cet exemple:
# TYPE DATABASE USER IP_ADDRESS MASK AUTH_TYPE AUTH_ARGUMENT
local egroupware trust
host egroupwaredbname all 127.0.0.1 255.255.255.255 md5
Reiner Jung
Install and Secure eGroupWare
Page 50 of 68
 La valeur “User” n’est disponible que depuis PostgreSQL 7.3.X
Redémarrez votre service PostgreSQL et testez sa connectivité:
[root@server html]# /etc/init.d/postgresql restart
[root@server html]# su - postgres
bash-2.05b$ psql -h localhost template1
Fermez la connectivité base de données:
template1=# \q
Configurez votre base de données PostgreSQL.
Créez un utilisateur qui a le droit d’accès à la base de données eGroupWare:
bash-2.05b$ createuser yourdbusername –P
Répondez aux questions suivantes avec yes:
bash-2.0.5b$ Shall the new user be allowed to create databases?
(y/n) Y
bash-2.0.5b$ Shall the new user be allowed to create more new
users? (y/n) N
Créez la nouvelle base de données eGroupWare:
bash-2.05b$ createdb -U yourdbusername yourdatabasename
7.2
Comment démarrer la configuration?
Pointez votre navigateur à l’URL de votre serveur afind d’ouvrir les menus de configuration:
https://www.votreserveur.com/egroupware/setup
Vous serez redirigé vers une vérification de l’installation eGroupWare qui est la prochaine étape.
7.3
Vérification de l’installation eGroupWare
Si aucun fichier header.inc.php n’est créé, eGroupWare vérifie quelques paramètres dans vos fichiers php.ini
et votre système de fichiers local. La vérification vous montre les erreurs et les avertissements.
 Les erreurs s’affichent en rouge et doivent être corrigées par vous-même!
Les avertissement peuvent être ignorés. Par exemple, vous pourriez voir un avertissement au sujet du
safe_mode. Si vous savez comment configurer les restrictions du safe_mode, ce ne sera pas un problème
pour vous, mais pour les nouveaux utilisateurs il serait mieux de désactiver cette fonction.
Reiner Jung
Install and Secure eGroupWare
Page 51 of 68
7.4
Création de votre header.inc.php
La plupart des parties de configuration de votre header.inc.php sont assez explicites. Ce menu est
disponible dans d’autres langues que l’anglais, mais il se pourrait que cela ne soit pas encore traduit dans
votre langue.
Pour l’instant eGroupWare supporte les bases de données MySQL, PostgreSQL et MSSQL.
Avec la boîte de sélection de domaine, vous pouvez configurer plus d’un environnement eGroupWare. Par
exemple vous pouvez avoir un environnement pour la production et un domaine séparé pour la formation.
 Si vous installez votre base de données manuellement, comme à l’étape 6.1, vous avez spécifié un nom
de base de données, un utilisateur et un mot de passe. Si vous voulez qu’eGroupWare créée la base de
données automatiquement, vous devez auparavant renseigner ses valeurs ici.
Les champs suivants décrivent quelle base de données vous désirez utiliser pour eGroupWare et quels
utilisateurs peuvent s’y connecter. N’utilisez pas le compte administrateur pour vous connecter à la base de
données. Créez un compte séparé !
DB Host
Si votre base de données fonctionne sur la
même machine que votre installation
eGroupWare ce sera localhost.
Vous pouvez utiliser un serveur séparé pour
DB Name
accueillir votre base de données.
Le nom de la base de données que vous
voulez créer sur votre serveur de base de
DB User
DB Password
DB Type
données.
Le compte avec lequel eGroupWare se
connecte à la base de données.
Le mot de passe de l’utilisateur de la base de
données.
Sélectionnez le type de base de données.
Téléchargez le fichier header.inc.php créé sur votre machine locale, copiez-le dans votre répertoire racine
eGroupWare, et modifiez les droits d’accès pour que seul le serveur web puisse le lire.
Reiner Jung
Install and Secure eGroupWare
Page 52 of 68
[user@server tmp]$ scp header.inc.php youregwserver:/tmp
[user@server tmp]$ ssh youregwserver
[user@youregwserver user]$ su –
Password:
[root@server root]# mv /tmp/header.inc.php /var/www/html/egroupware; chmod 400
/var/www/html/egroupware/header.in.php;
chown apache /var/www/html/egroupware/header.in.php
Continuez avec votre navigateur pour aller à l’étape suivante.
7.5
Administration Installation / Configuration
Après que vous ayez terminé la création du fichier header.inc.php et avez continué, vous verrez une
nouvelle fenêtre qui vous permet de vous connecter. Connectez vous à Administration Installation /
Configuration « Setup/Config Admin Login » avec l’utilisateur et mot de passe que vous avez spécifié à
l’étape précédente (7.4)
7.5.1
Etape 1 – Gestion simplifiée des applications
Ici vous avez deux possibilités: si vous voulez créer automatiquement une base de données alors allez à
Créer la base de données. Si vous avez créé une base de données manuellement, alros allez au point Créer
les tables
Création de la base de données:
Complétez le formulaire suivant pour créer la base de données automatiquement:
DB root username
comptePrincipal
DB Password motDePasseComptePrincipal
Cliquez sur Création base de données « Create Database »
Reiner Jung
Install and Secure eGroupWare
Page 53 of 68
Cliquez sur Re-vérifier mon installation “Re-Check My Installation”:
S’il n’y a pas d’erreur vous pouvez installer les tables. Cliquez sur Installation « Install »:
Maintenant observez le résultat. Si vous ne voyez pas d’erreur, continuez avec Re-vérifier mon installation
« Re-Check My Installation »:
7.5.2
Etape 2 – Configuration
La plupart des étape sont assez explicites. Seulement quelques points mal compris sont décrits ici.
7.5.2.1
Création du répertoire d’accueil des fichiers
Vous devez créer le répertoire d’accueil des fichiers manuellement au prompt. Dans ce répertoire,
eGroupWare stockera les attachements des modules Infolog, Gestionnaire de fichiers « Filemanager » et autres
applications.
 Ce répertoire doit se trouver à l’extérieur du répertoire racine de votre service web! Si vous ne savez pas
où se trouve ce répertoire racine, regardez dans votre fichier httpd.conf ou tapez cette commande sous
Linux :
[root@server www]$ cat /etc/httpd/conf/httpd.conf | grep ^DocumentRoot
DocumentRoot “/var/www/html”
Reiner Jung
Install and Secure eGroupWare
Page 54 of 68
Créez le répertoire d’accueil des fichiers et les sous-répertoires nécessaires:
[root@server www]$ mkdir /var/www/files
[root@server www]$ mkdir /var/www/files/users /var/www/files/groups
Vous devez donner au serveur web les droits en lecture et écriture à ces répertoires:
[root@server www]$ chown –R apache.apache /var/www/files
[root@server www]$ chmod –R 0700 /var/www/files
7.5.2.2
Edition de la configuration actuelle
Informations de chemin
Entrez les valeurs nécessaires pour vos Informations de chemin
Le répertoire tmp est utilisé pour stocker les sessions et autres informations de votre installation
eGroupWare. Quand vous faites tourner votre installation eGroupWare dans un environnement
« chroot » ou avec des restrictions « open_basedir » dans votre php.ini, modifiez votre chemin
en conséquence
Le chemin complet pour les utilisateurs et groupes doivent se trouver à l’extérieur du répertoire
racine de votre service web pour des raisons de sécurité. Il n’est pas possible d’avoir un
répertoire à l’intérieur du répertoire racine de votre service web.
Entre la location de l’URL d’eGroupWare. Si vous désirez utiliser des connexions HTTPS et http,
utilisez /egroupware (si vous voulez forcer l’utilisation d’HTTPS, alors spécifiez
https://votredomaine/egroupware)
Veuillez ne pas modifier le sélecteur des types d’images standard par défaut (qui peut être
différent de l’exemple ci-dessous). Ceci pourrait détériorer l’apparence de l’interface
utilisateur.
Reiner Jung
Install and Secure eGroupWare
Page 55 of 68
Informations d’hôte
Entrez le nom d’hôte de votre serveur « hostname ». Celui-ci doit avoir un nom DNS correct ou
une adresse IP sous laquelle l’installation fonctionnera.
Si votre installation eGroupWare se trouve derrière un serveur Proxy (comme SQUID), et que
vous désirez utiliser les applications Manuel / Aide, Titres ou Actions, vous devez ajuster les
valeurs pour le Proxy.
Authentification/Comptes
Il existe plusieurs types d’authentification : SQL, SQL/SSL, LDAP, Mail; HTTP, NIS and PAM.
Choisissez le type désiré pour authentifier les comptes eGroupware.
Choisissez un type d’encryption pour les mots de passe des utilisateurs. Ceux-ci seront stockés
encryptés dans votre base de données.
Si vous désirez utiliser un arbre LDAP pour authentification dans différentes installations
eGroupware, vous pouvez vous servir des préfixes de comptes.
Utilisez des noms d’utilisateurs contenant des majuscule et des minuscules pour une meilleure
sécurité.
Reiner Jung
Install and Secure eGroupWare
Page 56 of 68
Si vous utilisez LDAP
Si vous n’utilisez pas LDAP, il n’est pas nécessaire de remplir ces champs. Si vous désirez utiliser LDAP, veuillez
consulter phpgwapi/doc/ldap/README.
Réglages Mcrypt (nécessite l'extension PHP mcrypt)
Pas toutes les distributions ne possèdent un module mcrypt intégré par défaut, vous devrez vérifier cela.
Vous devrez peut-être essayer plusieurs versions pour voir laquelle fonctionne le mieux avec eGroupware.
Réglages additionnels
Les valeurs par défaut sont ok.
Enregistrez votre configuration lorsque vous avez terminé.
7.5.3
Etape 3 – Compte Administrateur
Ici vous pouvez créer votre compte administrateur eGroupware. N’utilisez pas un nom d’administrateur comme
admin, administrateur, root, etc. Pour le mot de passe administrateur utilisez des lettres, des chiffres et des
caracères spéciaux.
Ne créez pas de comptes demo dans un environnement de production !
Reiner Jung
Install and Secure eGroupWare
Page 57 of 68
7.5.4
Etape 4 – Gestion linguistique
La langue standard qui sera installée est l’anglais et la langue qui est activée par défaut dans votre navigateur.
Il est possible d’installer plusieurs langues.
Vous pouvez convertir votre jeu de caractères automatiquement,
c’est-à-dire depuis iso-8859-1 vers UTF-8.
7.5.5
Etape 5 – Gestion avancée des applications
Dans l’installation standard, toutes les applications sont installées. Pour désinstaller une application, sélectionnezlà avec la coche et cliquez Enregistrer. Si vous recevez un message d’erreur au sujet de dépendances, vous
devez installer une autre application, par exemple Messagerie « Felamimail » requiert « emailadmin » pour
fonctionner.
8
Connectez-vous à eGroupWare
Dès que vous avez terminé l’installation d’eGroupware, vous pouvez vous connecter. Allez à
http://votredomaine/egroupware
La première étape en tant qu’administrateur est de vous rendre à l’application Admin et configurer votre
site, vos utilisateurs et groupes, la messagerie e-mail ainsi que d’autres informations indispensables.
Reiner Jung
Install and Secure eGroupWare
Page 58 of 68
9
9.1
Dépannage
Oubli du mot de passe de l’administrateur
J’ai oublié mon mot de passe administrateur et je ne peux plus me connecter à eGroupWare !
Allez à http://votreserveur.com/egroupware/setup
Connectez-vous à la Page de connexion pour la configuration et l'installation
Configurez un nouveau Compte Administrateur
9.2
L’Administrateur ou un autre utilisateur est bloqué
Je ne peux plus me connecter à mon installation eGroupWare. Le message est : Accès refusé car trop de
tentatives infructueuses. Que puis-je faire ?
avec la configuration standard, attendez 30 minutes avant de pouvoir vous connecter à
nouveau. Il s’agit d’un dispositif de sécurité, ne le désactivez pas !
9.3
Erreur base de données : lock(Array, write) failed
Database error: lock(Array, write) failed
MySQL Error 1044 (Access denied for user '@localhost' to database 'groupware')
Function: db::halt / db::lock / config::save_repository / sessions::sessions_ / session_sessions / createobject /
include / include
session halted
Vérifiez les permissions d’accès à votre base de données. Votre compte ne possède pas les
droits nécessaires.
9.4
Vérification des permissions de fichiers
Cette erreur apparaît lors du script de Vérification de l’installation :
Checking file-permissions of ./phpgwapi/images for not worldwritable: hri/users drwx---rwx
./phpgwapi/images is world writeable!!!
Modifiez les droits dans le répertoire phpgwapi/images afin que n’importe qui ne puisse pas y
modifier les fichiers :
chmod 700 images
Reiner Jung
Install and Secure eGroupWare
Page 59 of 68
9.5
Ne peut pas continuer dans Vérification de l’installation page (1)
Il n’y a pas d’avertissement ni d’erreur… J’installe le fichier header.inc.php avec les valeurs correctes, etc., mais
on revient chaque fois à cette maudite page check_install.php…
Vérifiez que le service web a bien les droits d’accès sur header.inc.php et que ce fichier se situe
dans le répertoire racine du service web
9.6
Ne peut pas continuer dans Vérification de l’installation page (2)
Nous avons installé eGroupWare sous Linux avec un serveur proxy configuré.
Les clients utilisent Microsoft Internet Explorer avec une référence au serveur proxy, bien que le serveur proxy ne
devrait pas être utilisé (Options Internet->Connexions->Paramètres réseau->Avancé)
Nous ne pouvons pas envoyer « upload » d’attachments plus grands que 1 Mo. Tout a été modifié dans php.ini
and httpd.conf mais cela ne fonctionne toujours pas pour > 1 Mo.
Les serveurs proxy doivent souvent autoriser un flux plus grand qu’une certaine taille. Par
exemple, avec Squid, vous devez modifier le "request_body_max_size" de son défaut à 1 Mo.
p.ex.: request_body_max_size 20 MB
9.7
[WINDOWS] fudforum/3814******9): Permission denied
Warning: mkdir(D:\Websites\yourwebsite\egroupware\fudforum/3814******9): Permission denied in D:\Websites
\egroupware\fudforum\setup\default_records.inc.php on line 114
ERROR: Failed to create D:\Websites\yourwebsite\egroupware\fudforum/38145******, please create this
directory manually and chmod it 777SiteMgr demo site installed
Allez simplement dans le répertoire 3814****** sous
D:\Websites\yourwebsite\egroupware\fudforum et donnez les droits d’accès et lecture et
écriture. Veuillez noter : le n° “3814******” sera leCRC32 de votre domaine, donc il sera différent
sur chaque machine.
Ceci est un extrait du fichier D:\websites\yourwebsite\fudforum\setup\readme :
“ The \fudforum\setup\index.php file will need to create several files inside the web browseable
fudforum\ directory. This will require you to grant write permissions to the web-server to several
files and directories (installer will complain about them, if they are not writable). The simplest
solution is to temporary give the fudforum/ directory full access permissions and then restore to
normal permissions (read and write) once the installation process is complete. If you wish to
save a few megabytes of space, once the forum is installedyou can remove the base/
directory, it is no longer needed.”
Reiner Jung
Install and Secure eGroupWare
Page 60 of 68
9.8
Sitemgr: mkdir(./sitemgr-link): Permission denied
Warning: mkdir(./sitemgr-link): Permission denied in
D:\Websites\calvarycentral\egrouptest\egroupware\sitemgr\setup\default_records.inc.php on line 165
Can't mkdir(./sitemgr-link) !!!sitemgr/sitemgr-link copied to eGroupWare dir and sitemgr-link NOT installed, you
need to copy it from egroupware/sitemgr/sitemgr-link to egroupware/sitemgr-link and install
Copiez le répertoire sitemgr-link de \egroupware\sitemgr\ créé par eGroupWare et placé dans
le répertoire racine de D:\Websites\yourwebsite\egroupware. Ceci vous permet de l’installer avec
le lien “Gérer les Applications” sur la page /egroupware/setup/index.php
Reiner Jung
Install and Secure eGroupWare
Page 61 of 68
10 Références
AIDE, Advanced Intrusion Detection System
Plateforme
Linux / BSD / *nix
Licence
GPL
Page d’accueil
http://sourceforge.net/projects/aide/
Téléchargements
RPM
Vérifiez votre distribution
DEB
Debian Project
tar.gz
AIDE Project file server
Projet Apache Web server
Plateforme
Linux / BSD / Win / other
Licence
Apache Software License
Page d’accueil
httpd.apache.org
Téléchargements
RPM
Vérifiez votre distribution
DEB
Debian Project
tar.gz
Apache Project file server
Win
Apache Project file server
Projet chkrootkit
Plateforme
Linux / BSD
Licence
BSD-Like
Page d’accueil
www.chkrootkit.org
Téléchargements
RPM
creativix chkrootkit page
tar.gz
chkrootkit project
Projet eGroupWare
Plateforme
Linux / BSD / WIN / other
Licence
GPL
Page d’accueil
www.egroupware.org
Téléchargements
Reiner Jung
RPM
sourceforge.net eGroupWare project
tar.gz
sourceforge.net eGroupWare project
tar.bz2
sourceforge.net eGroupWare project
zip
sourceforge.net eGroupWare project
Install and Secure eGroupWare
Page 62 of 68
Projet logwatch
Plateforme
Linux / BSD/ other
Licence
GPL
Page d’accueil
www.logwatch.org
Téléchargements
RPM
logwatch project
tar.gz
logwatch project
Projet logcheck
Plateforme
Linux / BSD/ other
Licence
GPL
Page d’accueil
sourceforge project page
Téléchargements
tar.gz
logcheck project
ModSecurity
Plateforme
Linux / BSD / WIN / other
Licence
GPL
Page d’accueil
http://www.modsecurity.org/
Téléchargements
tar.gz
ModSecurity project
zip
ModSecurity project
NMAP
Plateforme
Linux / BSD / WIN / other
Licence
GPL
Page d’accueil
http://www.nmap.org/
Téléchargements
RPM
NMAP project
tar.gz
NMAP project
tar.bz2
NMAP project
zip
NMAP project
Projet openssh
Plateforme
Linux / BSD
Licence
GPL
Page d’accueil
www.openssh.org
Téléchargements
Reiner Jung
RPM
OpenBSD project fileserver
tar.gz
OpenBSD project fileserver
Install and Secure eGroupWare
Page 63 of 68
Projet php
Plateforme
Linux / BSD / WIN /other
Licence
The PHP License
Page d’accueil
www.php.net
Téléchargements
RPM
Vérifiez votre distribution
tar.gz
php project
tar.bz2
php project
zip
php project
Projet Roxen web server
Plateforme
Linux / BSD /WIN / other
Licence
GPL
Page d’accueil
http://www.roxen.com/products/web server/
Téléchargements
The Linux package will be installed with a shell script
Turck MMCache
Plateforme
Linux / BSD / Win / other
Licence
GPL
Page d’accueil
sourceforge.net/projects/turck-mmcache
Téléchargements
Reiner Jung
tar.gz
turck-mmcache project
tar.bz2
turck-mmcache project
zip
turck-mmcache project
Install and Secure eGroupWare
Page 64 of 68
11 A faire et Journal des changements
11.1 A faire pour ce document
Pour le document version 1.0:
•
Préparer une installation eGroupWare.
•
Former les utilisateurs.
•
Installer un serveur LDAP et configuer OpenLDAP / Email / SMTP sous *nix.
•
Configuer un pare-feu de base sous Linux for eGroupWare.
Ensuite après cette version:
•
mod_log_forensic pour Apache.
•
Hide the ssh version.
•
support Fedora YUM, RPM-apt.
•
Ajouter psad au « Comment faire » sur la sécurité.
•
Installation et configuration de sXad.
•
Créer une checklist/ « Comment faire » sur la Création d’un plan de sauvegarde et récupération
de désastre.
•
Rsnapshot.
•
Bastille Linux / LSAD.
11.2 Journal des changements pour ce document
* Sun May 28 2004 Reiner Jung <r.jung AT creativix DOT net> 0.4
- licence modifiée en “creative commons“
- Création des paquetages SuSE depuis les sources RPM
- Sécurié et Optimisation Apache
- Encryption SQL possible pour les mots de passe des comptes
- L’installation fournit un préfixe de compte pour les installations LDAP
- Sélection de noms d’utilisateurs avec casse sensible
- Ajout de Dépannage
- Sécurisez votre eGroupWare avec ModSecurity
- mise à jour du fichier header.inc.php
- Installation PHP sécurisée mise à jour
restriction open basedir
désactivation journal d’erreurs
- Installation de Advanced Intrusion Detection System
- Modifié le HOWTO Installation rapide vers « Comment faire une installation rapide » et extension
- L’installation Express inclut Windows maintenant
- Analyseur de journal d’installation (logcheck)
- Extension de Turck-mmcache
Comment installer mmcache sur RedHat Enterprise Linux
Prérequis d’installation de mmcache
Reiner Jung
Install and Secure eGroupWare
Page 65 of 68
* Sun Nov 22 2003 Reiner Jung <r.jung AT creativix DOT net> 0.3
- Mise à jour d’eGroupWare
Mise à jour avec les paquetages
Mise à jour depuis CVS
- Installation depuis un RPM vers un autre chemin comme /var/www/html
- Références
Ajout logiciels et licences depuis le document 003
- quelques erreurs de frappe corrigées
Erreur de frappe clé GPG corrigée
- Vérification de la clé GPG ajoutée
- Création d’un certificat https
- Installation PHP sécurisée
* Fri Sep 16 2003 Reiner Jung <r.jung AT creativix DOT net> 0.2
- erreurs de frappes corrigées
correction dans la doc d’installation CVS
correction nmcache
- ajout du « Comment faire » chkrootkit
Exemple checkrootkit
Vérification d’installation rootkit RPM
Vérification d’installation rootkit tar.gz
- vérification du serveur pour services / ports ouverts non nécessaires
Ports sur lesquels eGW doit tourner
Le scanneur de ports
Le résultat d’un scanneur de ports
Désactivation de services/serveurs non nécessaires
- désinstallation de logiciels non nécessaires étendu
- sécuriser l’administration (ssh/sshd)
Se connecter à votre serveur avec une session sécurisée
Travailler avec des paires de clés ssh
Créer une paire de clés secure shell
Copie de votre clé publique vers le serveur
L’outil ssh-add
Sécurisation de votre client ssh
Sécurisation de votre sshd
* Fri Sep 12 2003 Reiner Jung <r.jung AT creativix DOT net> 0.1
- Création initiale de ce document
Reiner Jung
Install and Secure eGroupWare
Page 66 of 68
12 Contributeurs à ce document
Les personnes suivantes ont contribué à Comment installer et sécuriser eGroupWare:
Traductions
Portugais brésilien:
Roger de Souza Moraes
Français:
Antoine Theytaz (v0.4)
Patrice Lallement (v0.3)
Allemand:
Wolfgang Baumgartner, Andreas Wengrzik
Espagnol:
Oscár Manuel Gómez Senovilla
Chinois Traditionnel:
Finjon Kiang
Vérification
Anglais:
Jeff Mitchell (v0.4)
Geltmar von Buxhoeveden (v0.3)
Co-auteurs
Version Windows
Reiner Jung
John W. Brown
Install and Secure eGroupWare
Page 67 of 68
13 Termes et conditions
Attribution-ShareAlike 1.0
Vous êtes libre de:
•
copier, de distribuer, d’afficher et de profiter de ce travail
•
de créer des travaux dérivés
•
de faire un usage commercial de ce travail
Avec les conditions suivantes:
Attribution. Vous devez mentionner son auteur original.
Share Alike. Si vous altérez, modifiez, ou construisez autre chose à
partir de ce travail, vous devez distribuer le travail résultant seulement
sous une licence identique à celle-ci.
•
Pour toute réutilisation ou distribution, vous devez mentionner clairement les termes de licence de ce
travail.
•
N’importe quelle de ces conditions peuvent être levées si vous obtenez la permission de son auteur.
Your fair use and other rights are in no way affected by the above.
This is a human-readable summary of the Legal Code (the full license)
Voir aussi sa traduction « draft » en français Code juridique (le texte complet)
Reiner Jung
Install and Secure eGroupWare
Page 68 of 68