====== Post-installation ======
===== Paramétrage =====
Le fichier de configuration de l'instance du serveur EzGED est par défaut:
C:\nchp\etc\nchp\ezged\instance.conf
===== Sauvegardes =====
C'est le point le plus important à prendre en compte une fois l'installation terminée.
Ne considérez jamais que tout va bien se passer et que cela n'arrive qu'aux autres.
Il y a 2 éléments que vous DEVEZ sauvegarder :
* La base de données.
* Les fichiers intégrés dans EzGED.
==== Base de données ====
Un travail de sauvegarde de la base de données est créé par le système EzGED au cours de l'installation.
Les paramètres de ce travail sont expliqués dans le tableau ci-dessous :
^ Paramètre ^ Description ^ Valeur par défaut ^
| path | Le chemin du répertoire où les sauvegardes sont déposées | C:\nchp\var\nchp\instance |
| rotation | Combien de sauvegardes sont conservées (tri décroissant par date) | 5 |
Par défaut donc, EzGED procède à une sauvegarde de la base de données tous les jours à 23h00.
Elle dépose chaque nouvelle sauvegarde dans le répertoire C:\nchp\var\nchp\instance et ne conserve
que les 5 plus récentes.
Nb: si vous souhaitez ne jamais éliminer de sauvegardes parmi les plus anciennes vous devez affecter la valeur -1 au paramètre rotation.
Si ce travail ne devait pas être mis en place suite à l'installation déclarez-le sans tarder comme suit:
- Rendez-vous sur l'interface d'//administration//, onglet //travaux//.
- Sélectionnez //Sauvegarde de base de données// dans l'arborescence //Assistants de création de travaux//.
- Choisissez :
- Le chemin. Par exemple //C:\nchp\var\nchp\instance//.
- Le nombre de rotations. L'assistant vous propose 2 par défaut. Je vous conseille d'augmenter ce nombre (5 par exemple).
- Validez.
==== Les fichiers ====
Nous vous conseillons fortement de mettre en place des sauvegardes et réplications des disques sur lesquelles travaillent EzGED et surtout de ceux où se trouvent vos espaces de stockage EzGED.
Rappel : UNE BONNE SAUVEGARDE EST UNE SAUVEGARDE "OFF LINE", c'est à dire sortie physiquement du système informatique. Elle sera alors à l’épreuve, de toute attaque, quelque soit son origine. Les plus terribles étant les attaques de virus, ou malveillance d'utilisateurs interne, intentionnelles ou accidentelles.
===== Sécurité =====
==== URLs pour whitelist ====
Services EzDEV
https://ged.ezdev.fr/*
https://ged01.ezdev.fr/*
https://ged02.ezdev.fr/*
https://svn01.ezdev.fr/svn/ezged/compile/*
https://svn02.ezdev.fr/svn/ezged/compile/*
https://ezged-updates-testing.ezdev.fr/svn/ezged/compile/*
https://siren01.ezdev.fr/*
https://siren02.ezdev.fr/*
https://dev.ezdev.fr/*
Python
https://pypi.org/
Pour les connecteurs Office 365:
https://graph.microsoft.com/v1.0/
https://microsoft.com/devicelogin
https://login.microsoftonline.com
==== MySQL ====
Avant toute mise en production assurez-vous d'avoir définit un mot de passe pour le compte root
du serveur MySQL (d'autant plus nécessaire si vous décidez de laisser l'accès à phpmyadmin depuis une autre machine).
En ligne de commande:
>C:\nchp\mysql\mysql.exe -u root
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
Via phpmyadmin
Pour des raisons de compatibilité avec notre module mysql en python nous utilisons la fonction OLD_PASSWORD plutôt que PASSWORD.
Plus d'informations sur la sécurisation du compte root: http://dev.mysql.com/doc/refman/4.1/en/default-privileges.html
==== Apache ====
Nous ne pouvons malheureusement pas garantir la sécurité des outils tiers comme Apache et phpmyadmin. Même en disposant des dernières mises à jour, voir des derniers antivirus, vous n'êtes pas à l'abri du dernier virus à la mode, non encore référencé par les antivirus et exploitant une faille de sécurité de ces logiciels. la seule solution fiable est donc de fermer la porte au net à ces outils.
La première chose que nous voulons faire est de restreindre l'accès à phpmyadmin :
Nous allons modifier la configuration ci-dessous :
Alias "/mysql" "C:/nchp/tools/phpMyAdmin"
Options Indexes FollowSymLinks Includes
AllowOverride All
Allow from all
Par la suivante :
Alias "/mysql" "C:/nchp/tools/phpMyAdmin"
Options Indexes FollowSymLinks Includes
AllowOverride All
Deny from all
Allow from 127.0.0.1
Ainsi l'accès au répertoire C:\nchp\tools\phpMyAdmin par l'intermédiaire de l'alias /mysql n'est possible
que depuis la machine locale.
Vous pouvez le restreindre à une plage locale d'IP également exemple :
Allow from 192.168.1.0/24 127.0.0.1
Enfin, nous vous conseillons d'installer un certificat sur le serveur pour réaliser du HTTPS afin que les mots de passe d'accès à EzGED soient cryptés
=== WEBDAV ===
Configurer un répertoire d'accès Webdav sur Apache
Créer votre répertoire de configuration Webdav (il recevra les mots de passe et la base de données de verrous sur les fichiers), ici nous utiliserons C:/nchp/var/spool/ezged/instance/webdav (créer donc le répertoire Webdav )
Nous allons maintenant créer un utilisateur pour l'authentification Webdav.
En ligne de commande dos, positionnez vous dans ce répertoire. En utilisant un logiciel fournit avec apache2 (htdigest), créer un fichier de mot de passe.
Ici je vais créer un utilisateur chorus_user dans le fichier auth.
D:\>C:
C:\>cd \nchp\var\spool\ezged\instance\webdav
C:\nchp\var\spool\ezged\instance\webdav>c:\nchp\apache2\bin\htdigest.exe -c auth webdav chorus_user
Adding password for chorus_user in realm webdav.
New password: ****
Re-type new password: ****
Vous obtenez un fichier auth dans le répertoire cd \nchp\var\spool\ezged\instance\webdav
Ouvrez le fichier httpd.conf dans c:\nchp\apache2\conf
Activez les modules suivants en enlevant le # en début de ligne
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so
Ajouter en fin de fichier la configuration suivante :
DavLockDB "C:/nchp/var/spool/ezged/instance/webdav/DavLock"
Alias /webdav "C:/nchp/var/spool/ezged/instance/ocr/wait/adullact"
Options Indexes FollowSymLinks Includes
AllowOverride All
Allow from all
DAV On
DavDepthInfinity on
AuthType Digest
AuthName "webdav"
AuthUserFile "C:/nchp/var/spool/ezged/instance/webdav/auth"
AuthDigestDomain "C:/nchp/var/spool/ezged/instance/webdav"
Require valid-user
Redémarrer Apache2.
Afin de tester votre configuration, essayez de monter un disque réseau sur http://127.0.0.1/webdav, avec l'utilisateur chorus_user et votre mot de passe. testez dans l'explorateur l'ajout de fichier.
==== EzGED ====
N'oubliez pas de changer le mot de passe , voir le compte admin d'EzGED.
Vous pouvez également dans les sécurités d'EzGED restreindre l'accès à certains comptes de la même manière qu'Apache.
Vous pouvez également changer l'accés à EzGED sur votre routeur pour éviter d'utiliser le port 80 depuis l'extèrieur.
Dans la règle de translation d'adresse NAT de votre routeur vous avez dû configurer
que le port 80 de l'IP Fixe est renvoyée sur le serveur GED sur le port 80
configurez par exemple le port 8023 de l'ip fixe est renvoyé sur le serveur GED sur le port 80
l'adresse d'accès à EzGEd sera alors http://monipfixe:8023/ezged
Le port 80 étant attaqué par les hackers systématiquement, alors que les autres le sont beaucoup moins.
====== Mises-à-jour ======
===== Apache (téléchargement) =====
Pour windows des binaires sont téléchargeables sur https://www.apachelounge.com/download/
Pour d'autres sources voir aussi https://httpd.apache.org/docs/current/platform/windows.html#down
Il est important de télécharger une version compilée avec VC15 (Visual Studio 2017). Prendre également une version 64bits.
===== PHP (téléchargement) =====
Binaires pour windows à télécharger sur https://windows.php.net/download#php-7.4
Idem que pour Apache prendre une version 64bits et compilée avec VC15 (Visual Studio 2017).
Préférez toujours rester sur la même version majeure que la version actuelle.
Un passage sur une version majeure supérieure (ex: passer de php 7 à php 8) n'est pas recommandé et pourrait entraîner des problèmes
===== Installation Apache + PHP =====
1. Arrêter le service ged (facultatif) puis apache
2. Renommer le répertoire C:\nchp\Apache24 pour le sauvegarder (retour arrière éventuel)
3. Extraire le zip apache téléchargé à la place de l'ancien (C:\nchp\Apache24)
4. Récupérer l'ancien "httpd.conf" pour remplacer le nouvellement installé (C:\nchp\Apache24\conf\httpd.conf)
5. Extraire le zip php dans C:\nchp\Apache24\php7
6. Récupérer l'ancien "php.ini" pour remplacer le nouvellement installé (C:\nchp\Apache24\php7\php.ini)
7. Redémarrer le service Apache (et éventuellement GED)
8. Tester
====== Apache ======
===== Accès aux app React =====
Depuis EzGED 3.5.24808 et l'arrivée du viewer PDF développé via React, il est nécessaire pour que le viewer
puisse être servi par Apache d'ajouter la ligne de configuration suivante (au niveau global):
AliasMatch "^/react/([^/]+)(.*)" "D:/nchp/usr/local/nchp/ezged/www3.src/react/$1/build/$2"
Il faut aussi s'assurer d'avoir la directive suivante:
DirectoryIndex index.php index.html
Le contexte où mettre cette directive peut dépendre de votre configuration.
Sachant qu'elle peut déjà exister et il faudra juste ajouter ''index.html''
Se référer à la documentation: https://httpd.apache.org/docs/2.4/mod/mod_dir.html#directoryindex
====== Maintenance ======
Si vous souhaitez effectuer une opération de maintenance de EzGED sans arrêter le service
vous devez veiller aux deux éléments suivants:
* Arrêter le serveur de travaux.
* Couper l'accès à EzGED.
N.B: après avoir couper l'accès à EzGED veillez bien à supprimer les sessions utilisateurs existantes.
===== Couper l'accès à EzGED =====
==== Couper l'accès aux utilisateurs ====
Vous pouvez empêcher les utilisateurs de se connecter à EzGED de deux manières.
1/En verrouillant tout les comptes utilisateurs qui ne doivent pas y accéder pendant la maintenance.
2/En configurer la restriction d'IP sur tout les comptes utilisateurs qui doivent être bloqués.
==== Couper l'accès globalement ====
Vous pouvez aussi modifier la configuration Apache de telle sorte qu'il ne soit plus possible
d'accéder à EzGED en dehors de l'adresse locale.
On utilise la directive ''Require local''.
Selon votre configuration il faudra la mettre en place sur le Directory pointant sur le site EzGED et/ou sur
vos virtualhost s'il y en a.
Exemple
Alias "/ezged" "C:/nchp/usr/local/nchp/ezged/www"
Allowoverride All
Options Indexes FollowSymLinks Includes
Require local
Et dans un virtualhost on peut ajouter une ''Location'' avec une restriction pour un accès local
Require local
Il suffit ensuite de redémarrer Apache.
Cette méthode a l'avantage de couper l'accès aussi aux appels vers les services web de EzGED.
====== Remise à Zéro ======
Au préalable on arrête bien entendu le service EzGED.
===== Supprimer la base de données =====
mysql -u root -p drop database
C'est faisable bien sûr via PhpMyadmin ou HeidiSQL par exemple.
===== Supprimer les fichiers =====
Supprimer les volumes qui sont, par défaut, dans le répertoire ''C:\nchp\var\nchp\instance\EMDOM\DEFTSA''
Si jamais vous rencontrez des problèmes de stockage une fois EzGED redémarré sur la base vierge, peut-être qu'il vous faudra recréer à la main le premier volume ''00000001''
Si vous avez plusieurs espaces de stockages vous pourrez aussi supprimer les répertoires correspondants à ces espaces de stockage (la racine étant ''C:\nchp\var\nchp\instance'')
===== Initialiser la base de données =====
On ouvre un terminal, on se place dans le répertoire ''C:\nchp\usr\local\nchp\ezged\bin'' et on exécute
le script python d'initialisation de la base de données.
cd C:\nchp\usr\local\nchp\ezged\bin
python init_db.py 1 1 1 1