« WATERBEAR:Installation » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 136 : | Ligne 136 : | ||
Vous pouvez consulter les journaux de ces services respectivement: | Vous pouvez consulter les journaux de ces services respectivement: | ||
** dans le répertoire /var/log/httpd pour le service httpd.service | |||
** dans le répertoire /var/log/php-fpm pour le service php-fpm.service | |||
Version du 16 août 2020 à 21:27
But
Cette rubrique décrit les différentes étape afin d'installer le logiciel Waterbear sur votre serveur Linux. Nous allons utiliser la distribution Fedora Version 32.
Prérequis
- Un serveur LINUX avec la distribution Fedora (version 32)
Nous nommerons le nom de la machine: serveur (voir le fichier /etc/hostname). Il a l'adresse IP, par exemple, 192.168.1.100 .
- Installer le serveur WEB Apache (version 2.4):
dnf install httpd
- Installer PHP (version 7.4):
dnf install php php-gd
- Installer le gestionnaire de base de données MariaDB (version 10.4):
dnf install mariadb-server dnf install php-mysqlnd
Note: Nous n'abordons pas ici les aspects sécuritaires.
Télécharger WATERBEAR et le mettre en place
- Télécharger les sources du logiciel à l'URL http://waterbear.info/
- Sous Linux, créer un répertoire par exemple /web/waterbear
mkdir /web mkdir /web/waterbear
- Transférer le fichier waterbear.zip sous Linux et le décompresser:
unzip waterbear.zip
- En parcourant l'arborescence générée, copier le contenu du sous-répertoire waterbear dans le répertoire créé plus haut /web/waterbear.
- Récupérer le fichier contenant les adaptations et correctifs pour PHP 7.4.
Télécharger le fichier ZIP des modifications de Waterbear
- Faire les mêmes opérations effectuées pour le fichier waterbear.zip.
- Changer le propriétaire de ce répertoire /web/waterbear et l'attribuer au propriétaire du processus Apache (HTTPD). Sous Fedora, c'est par défaut l'utilisateur apache et le groupe apache:
chown -R apache:apache /web/waterbear
- Changer les droits d'accès.
Au plus simple mais peu sécurisé, on peut de lui mettre tous les droits:
chmod -R 750 /web/waterbear
Mais il est préférable d'être plus restrictif:
chmod -R 550 /web/waterbear
Mais alors certains répertoires doivent avoir un accès en écriture tels les répertoires LOG, download, upload:
chmod -R 750 /web/waterbear/LOG chmod -R 750 /web/waterbear/download chmod -R 750 /web/waterbear/upload
Configuration d'Apache
Nous n'aborderons pas ici l'aspect de son accès direct à partir d'Internet. Cet aspect est abordé sous la rubrique Linux. Nous supposons ici qu'il est accessible sur le réseau local. La liaison entre son adresse IP et son nom peut être défini de différentes façons:
- via votre serveur DNS interne - via le modem de votre FAI si c'est possible - via le fichier hosts de la machine client à partir de laquelle vous utiliser un navigateur (/etc/hosts sous Linux, C:\windows\system32\drivers\etc\hosts sous Windows).
L'URL d'appel, sera HTTP://serveur/waterbear
- Sous Fedora, les fichiers de configurations se trouvent par défaut dans le répertoire /etc/httpd/conf.d
Le fichier de configuration se nommera waterbear.conf
Voici son contenu:
Alias /waterbear /web/waterbear/ <Directory /web/waterbear> <IfModule mod_headers.c> Header always append X-Frame-Options SAMEORIGIN Header always set X-XSS-Protection "1; mode=block" Header always set X-Content-Type-Options nosniff Header always set Strict-Transport-Security "max-age=15552001; includeSubDomains;" </IfModule> DirectoryIndex bib.php Options +FollowSymLinks -Indexes AllowOverride All <IfModule mod_authz_core.c> Require all granted </IfModule> <LimitExcept GET POST HEAD> Require all denied </LimitExcept> </Directory>
<Directory /web/waterbear/doc> <IfModule mod_headers.c> Header always append X-Frame-Options SAMEORIGIN Header always set X-XSS-Protection "1; mode=block" Header always set X-Content-Type-Options nosniff Header always set Strict-Transport-Security "max-age=15552001; includeSubDomains;" </IfModule> DirectoryIndex doc.php Options +FollowSymLinks -Indexes AllowOverride All <IfModule mod_authz_core.c> Require all granted </IfModule> <LimitExcept GET POST HEAD> Require all denied </LimitExcept> </Directory>
Explications:
- L'option "Alias" fait la liaison entre le chemin de l'URL et le répertoire du système - Les deux blocs Directory à définir les options de des deux répertoires principaux. Le premier est l'entrée de base du logiciel et le second concerne sa documentation. - Les options Header sont facultatives mais aident fortement à sécuriser le site - L'option DirectoryIndex définit quelle fichier est à lancer par défaut. - L'option AllowOverride sert à activer les fichiers .htaccess - L'option "Require all granted" permet que tout le monde aie accès au site
- Redémarrer le service HTTPD
systemctl restart httpd.service
Note: pour activer le service:
systemctl enable httpd.service
Note: Ce service lance par la même occasion le service php-fpm.service
Vous pouvez consulter les journaux de ces services respectivement:
- dans le répertoire /var/log/httpd pour le service httpd.service
- dans le répertoire /var/log/php-fpm pour le service php-fpm.service
Configurer PHP
Configurer MySql (Mariadb)
- Créer le schéma dans la base de données Mysql
- Nom du schéma: dbwaterbear - Mot de passe de l'utilisateur root (à adapter): ZZZZZZZZ
Récupérer le fichier DB.sql contenu dans le fichier waterbear.zip décompressé auparavent (avant le sous-répertoire waterbear).
Créer 2 fichiers, donner les droits d'exécution au script Bash (chmod 700 import.bat) et exécuter ce script (./import.bat).
Contenu du fichier schema.sql
DROP SCHEMA IF EXISTS dbwaterbear ; CREATE SCHEMA dbwaterbear ;
Contenu du fichier import.bat
#!/bin/bash dbuser=root dbpw=ZZZZZZZZ mysql --user=$dbuser --password=$dbpw < schema.sql mysql --user=$dbuser --password=$dbpw -D dbwaterbear < DB.sql
- Création de l'utilisateur MySql qui permettra à Waterbear l'accéder à la base de données.
- Nom du schéma: dbwaterbear - Nom d'utilisateur: userwaterbear - Mot de passe de l'utilisateur userwaterbear (à adapter): TTTTTTTT - Mot de passe de l'utilisateur root (à adapter): ZZZZZZZZ
Créer 4 fichiers, donner les droits d'exécution au script Bash (chmod 700 user.bat) et exécuter ce script (./user.bat)
Contenu du fichier dropuser.sql
drop user 'userwaterbear'@'localhost' ; drop user 'userwaterbear'@'127.0.0.1' ; drop user 'userwaterbear'@'::1' ;
Contenu du fichier createuser.sql
create user 'userwaterbear'@'localhost' identified by 'TTTTTTTT' ; create user 'userwaterbear'@'127.0.0.1' identified by 'TTTTTTTT' ; create user 'userwaterbear'@'::1' identified by 'TTTTTTTT' ;
Contenu du fichier grant.sql
grant all privileges on dbwaterbear.* to 'userwaterbear'@'localhost'; grant all privileges on dbwaterbear.* to 'userwaterbear'@'127.0.0.1'; grant all privileges on dbwaterbear.* to 'userwaterbear'@'::1';
Contenu du fichier user.bat
#!/bin/bash -xv dbuser=root dbpw=ZZZZZZZZ mysql --user=$dbuser --password=$dbpw < dropuser.sql mysql --user=$dbuser --password=$dbpw < createuser.sql mysql --user=$dbuser --password=$dbpw < grant.sql