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: theytaz@users..net

Projet: eGroupWare Date de publication 13-Jan-05

Reiner Jung Install and Secure eGroupWare Page 2 of 68 Index

Index 3 1 Checklist d’installation pour eGroupWare 6 2 Comment faire une installation rapide 7 3 Migration de votre installation de phpGroupWare vers eGroupWare 1 3 4 Mise à jour d’eGroupWare 1 4 4 .1Mise à jour de l’installation eGroupWare 1 4 4 .2Adaptation de votre configuration vers une nouvelle version de header.inc. 1 4 5 Instructions d’installation 1 5 5 .1Téléchargement des paquetages 1 5 5 .2Pourquoi les paquetages signés GPG et les md5sum sont-ils nécessaires ? 1 5 5 .2.1Installation de la clé GPG pour tar.gz.gpg, tar.bz2.gpg et zip.gpg 1 5 5 .2.2Vérification de la clé GPG 1 5 5 .2.3Installez la clé GPG pour les paquetages RPM 1 7 5 .3Comment faire pour valider un paquetage? 1 7 5 .4Installation des paquetages sur votre serveur 1 9 5 .4.1Recomposition de paquetages RPM avec d’autres chemins 1 9 5 .4.2Installation d’un paquetage non signé sur votre serveur 1 9 5 .4.3Installation d’un paquetage signé GPG sur votre serveur 1 9 5 .4.4Installation depuis CVS 2 0 6 Sécurité de base du serveur 2 1 6 .1La plateforme du serveur 2 1 6 .1.1Vérification de votre serveur pour les services et ports ouverts 2 1 6 .1.1.1Ports qu’eGroupWare a besoin pour fonctionner 2 1 6 .1.1.2Le scanneur de ports 2 2 6 .1.1.3Affichage du résultat d’un scanneur de ports 2 2 6 .1.1.4Désactivation des services non nécessaires 2 2 6 .1.2Désinstallation des logiciels non nécessaires de votre serveur 2 3 6 .1.3Vérifications locales pour les signes d’un rootkit 2 3 6 .1.3.1Extrait de l’affichage du résultat d’un chkrootkit 2 4 6 .1.3.2Installation du RPM chkrootkit 2 4 6 .1.3.3Installation du chkrootkit depuis le fichier tar.gz 2 5 6 .1.4Administration sécurisée de votre serveur 2 5 6 .1.4.1Connexion à votre serveur à travers une session sécurisée 2 6 6 .1.4.2Travailler avec des paires de clés SSH 2 6 6 .1.4.2.1Création d’une paire de clés sécurisée 2 7 6 .1.4.2.2Copie de votre clé publique sur le serveur 2 7 6 .1.4.2.3L’outil ssh-add 2 7 6 .1.4.2.4Sécurisation de votre client SSH 2 8 6 .1.4.2.5Sécurisation de votre SSHD 2 8 6 .1.5Installation de logiciels pour surveiller les journaux de votre serveur 2 8

Reiner Jung Install and Secure eGroupWare Page 3 of 68 6 .1.6Environnement de détection d’intrusion 2 9 6 .1.6.1Installation de AIDE 2 9 6 .1.6.2Le fichier de configuration AIDE aide.conf 2 9 6 .1.6.3Création d’un fichier cronjob pour lancer AIDE automatiquement 3 1 6 .1.6.4Exemple de rapport AIDE 3 3 6 .1.6.5Création d’une nouvelle base de données après modifications 3 4 6 .1.7Sécurité des services (daemons) 3 4 6 .1.8Pare-feu 3 4 6 .2Sécurité des Application Internet 3 5 6 .2.1Installation de ModSecurity 3 5 6 .2.2Configuration de base 3 5 6 .2.3Test de ModSecurity 3 7 6 .2.4Exemple de journal de ModSecurity 3 7 6 .3Optimisation et sécurisation du serveur Apache web 3 8 6 .3.1Modules recommandés 3 8 6 .3.2Autres options de configuration Apache 3 9 6 .4Turck MMCache 3 9 6 .4.1Prérequis 3 9 6 .4.1.1Préliminaires pour RedHat Enterprise 3 3 9 6 .4.2Compatibilité 4 1 6 .4.3Installation rapide 4 1 6 .4.4Interface Web 4 2 6 .5Sécurisation de votre installation PHP 4 3 6 .6Création d’un certificat de serveur Web 4 4 6 .6.1Joindre “CA Cert “ 4 5 6 .6.2Création de votre requête de signature de certificat 4 5 6 .6.2.1Modification du fichier openssl.cnf 4 5 6 .6.2.2Création de la clé serveur et de la requête de signature 4 6 6 .6.2.3Envoi de la requête de signature à votre autorité de certification 4 7 6 .6.2.4Installation du certificat serveur. 4 7 6 .7Le service web 4 8 6 .8Le service SQL 4 8 7 Configuration d’eGroupWare 5 0 7 .1Création de votre base de données 5 0 7 .2Comment démarrer la configuration? 5 1 7 .3Vérification de l’installation eGroupWare 5 1 7 .4Création de votre header.inc.php 5 2 7 .5Administration Installation / Configuration 5 3 7 .5.1Etape 1 – Gestion simplifiée des applications 5 3 7 .5.2Etape 2 – Configuration 5 4 7 .5.2.1Création du répertoire d’accueil des fichiers 5 4 7 .5.2.2Edition de la configuration actuelle 5 5 7 .5.3Etape 3 – Compte Administrateur 5 7

Reiner Jung Install and Secure eGroupWare Page 4 of 68 7 .5.4Etape 4 – Gestion linguistique 5 8 7 .5.5Etape 5 – Gestion avancée des applications 5 8 8 Connectez-vous à eGroupWare 5 8 9 Dépannage 5 9 9 .1Oubli du mot de passe de l’administrateur 5 9 9 .2L’Administrateur ou un autre utilisateur est bloqué 5 9 9 .3Erreur base de données : lock(Array, write) failed 5 9 9 .4Vérification des permissions de fichiers 5 9 9 .5Ne peut pas continuer dans Vérification de l’installation page (1) 6 0 9 .6Ne peut pas continuer dans Vérification de l’installation page (2) 6 0 9 .7[WINDOWS] fudforum/3814******9): Permission denied 6 0 9 .8Sitemgr: mkdir(./sitemgr-link): Permission denied 6 1 1 0Références 6 2 1 1A faire et Journal des changements 6 5 1 1.1A faire pour ce document 6 5 1 1.2Journal des changements pour ce document 6 5 1 2Contributeurs à ce document 6 7 1 3Termes et conditions 6 8

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 Vérifiez vos prérequis eGroupWare Vous avez besoin d’un système Linux, , *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/

[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 .”

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, md5sum- eGroupWare-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 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 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

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 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

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 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 Installation des paquetages sur votre serveur

5.4.1 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.xxx- x.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:

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

6.1.1.2 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

• 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)

Reiner Jung 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 “chkrootkit output” to “resultat chkrootkit monserveur” root to [email protected]

6.1.3.3 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-01-26 13:43:35 , 2004-02-14 16:51:06

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 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.

# 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" "^$"

 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= HTTP/1.0" 406 352 Handler: cgi-script ------GET /cgi-bin/modsec-test.pl?p= 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 /server- status 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 vous- mê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 ; Maximum execution time of each script, inseconds memory_limit = 24M ; 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 ] 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

Reiner Jung Install and Secure eGroupWare Page 45 of 68 0.organizationName = Organization Name (eg, company) #0.organizationName_default = My Company Ltd

organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default =

6.6.2.2 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: Order allow,deny Deny from all

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]# –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 Configuration d’eGroupWare

7.1 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 .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 ? (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 accueillir votre base de données. DB Name Le nom de la base de données que vous voulez créer sur votre serveur de base de données. DB User Le compte avec lequel eGroupWare se connecte à la base de données. Le mot de passe de l’utilisateur de la base de DB Password données. DB Type 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électionnez- là 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 Dépannage

9.1 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 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 RPM sourceforge.net eGroupWare project tar.gz sourceforge.net eGroupWare project tar.bz2 sourceforge.net eGroupWare project zip sourceforge.net eGroupWare project

Reiner Jung 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 RPM OpenBSD project fileserver tar.gz OpenBSD project fileserver

Reiner Jung 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 tar.gz turck-mmcache project tar.bz2 turck-mmcache project zip turck-mmcache project

Reiner Jung 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 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 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 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 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 John W. Brown

Reiner Jung 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