guide d’installation v20 - yeebble...version 20.04 yeebble – guide d’installation 4 système...

17
Guide d’installation V20.04

Upload: others

Post on 01-Aug-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Guide d’installation

V20.04

Page 2: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

2

Table des matières Serveur .................................................................................................................................................... 3

Système d’exploitation ............................................................................................................................ 4

Système ............................................................................................................................................... 4

SELinux ................................................................................................................................................. 6

Pare-feu ............................................................................................................................................... 6

Services supplémentaires .................................................................................................................... 6

Utilisateur et groupe ............................................................................................................................... 9

Utilisateur et groupe ........................................................................................................................... 9

SELinux ................................................................................................................................................. 9

Configuration d’Apache ....................................................................................................................... 9

Génération du jeu de clés SSH .......................................................................................................... 10

Base de données ............................................................................................................................... 10

Synchronisation horaire .................................................................................................................... 10

Rotation des journaux ....................................................................................................................... 10

Application Yeebble ............................................................................................................................... 11

Decompression .................................................................................................................................. 11

Configuration ..................................................................................................................................... 11

Démarrage automatique ................................................................................................................... 11

Identifiant du serveur ........................................................................................................................ 12

Connexion au portail Web ..................................................................................................................... 13

Exploitation ........................................................................................................................................... 14

Sauvegarde ........................................................................................................................................ 14

Logs .................................................................................................................................................... 14

Les clients .............................................................................................................................................. 15

Linux et Unix ...................................................................................................................................... 15

Méthode 1 ..................................................................................................................................... 15

Méthode 2 ..................................................................................................................................... 15

Windows ............................................................................................................................................ 15

Outils tiers ............................................................................................................................................. 17

Page 3: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

3

Serveur

Le serveur Yeebble est celui qui va héberger :

Le site Web d'administration et d'exploitation

Tous les programmes permettant le bon fonctionnement.

Le serveur présentera les prérequis suivants :

Un serveur physique ou une machine virtuelle (hyperviseur KVM/RHEV, Vmware ESX ou Hyper-

V) supportant le système d'exploitation GNU/Linux Redhat ou CentOS;

Un système d'exploitation Linux. Dans tout ce document, la distribution Linux utilisée est Red

Hat Enterprise Linux 7.X ou CentOs .X. Fedora est compatible car il s'agit de l'environnement

de développement. Il faudra cependant adapter les commandes et il faut bien avoir à l'esprit

que Fedora n'est pas un environnement de production optimal ;

Un serveur MySQL ou MariaDB ;

Un serveur Apache 2.4 ;

Le langage PHP 5 ;

Le nombre de processeur est dépendant du nombre de traitements parallèles souhaités et de

leurs fréquences. Chaque commande exécutée va lancer un processus. Si le nombre de

processus est important, le nombre de CPU devra être ajusté ;

La quantité de mémoire est également dépendante du nombre de processus et améliore les

performances de MariaDB et Apache. 4Go de RAM semble souhaitable.

Il est tout à fait possible de mutualiser le serveur avec d'autres applications mais la présente

documentation suppose le principe que le serveur est dédié à l'application Yeebble.

A noter dans cette documentation : les instructions débutant par # sont à effectuer avec l’utilisateur

root, tandis que les instructions débutant par $ sont à effectuer avec l’utilisateur yeebble.

Page 4: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

4

Système d’exploitation

Système Installer le système d’exploitation RedHat ou CentOS en mode « Installation minimale ». Bien que

non obligatoire, il est conseillé de créer deux file-system

/opt/yeebble : 10Go

/opt/yeebble/log : 10Go au minimum. En effet, en mode verbeux, le programme produit de

très gros logs)

Page 5: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

5

Page 6: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

6

La suite du document part du principe que l'installation a lieu dans /opt/yeebble/

Une fois l'installation terminée, mettez le système à jour. Dans le cadre d'une distribution RHEL, il faut

au préalable enregistrer votre système auprès de Redhat ou de votre satellite (rhn_register).

Procéder à la mise à jour de votre système et redémarrer le.

# yum –y update ; reboot

Modifier le paramètre /proc/sys/fs/file-max en ajoutant la ligne suivante dans le fichier /etc/sysctl.conf fs.file-max=300000 Pour prendre en compte ce nouveau paramètre, exécuter la commande suivante (ou redémarrer le serveur) # sysctl –p Date au format 24H : # date +%T –s "HH:MM:SS"

SELinux # yum install policycoreutils-python

Pare-feu Ouvrir les ports réseaux nécessaires (80 en entrée pour http)

# firewall-cmd --zone=public --add-service=http

# firewall-cmd --zone=public --add-service=http --permanent

Services supplémentaires

Installer Apache, MariaDB et PHP

# yum install httpd mariadb-server php php-pdo php-mysql php-mbstring php-process

Installer le dépôt EPEL (http://fedoraproject.org/wiki/EPEL)

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Installer l'extension PHP de gestion du SSH

# yum install php-pecl-ssh2

Modifier le fichier /etc/php.ini en saisissant le paramètre date.timezone

date.timezone = Europe/Paris

Page 7: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

7

expose_php = Off

Mettre en place le démarrage automatique

# systemctl enable httpd

# systemctl enable madiadb

Démarrage des démons

# systemctl start httpd

# systemctl start mariadb

Configurer MariaDB # /usr/bin/mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.

Page 8: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

8

Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB! Modifier le nombre de connexions possibles en éditant le fichier /etc/my.cnf et en modifiant l'entrée : [mysqld] max_connections=5000 Ce paramètre prend pour valeur le nombre maximum de commande exécutée simultanément.

Page 9: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

9

Utilisateur et groupe

Utilisateur et groupe Créer un utilisateur et un groupe yeebble

# useradd -d /opt/yeebble -m -U yeebble -p yeebble

Ajouter l’utilisateur apache au groupe yeebble pour que le serveur puisse écrire dans les fichiers et

positionner les bons droits

# usermod -G yeebble -a apache yeebble

# cd /opt

# chown yeebble:yeebble yeebble

# chmod g+w yeebble

# cd yeebble

# mkdir www

# chown yeebble:yeebble log www

# chmod g+w log

Ajouter les lignes suivantes au .bash_profile de l'utilisateur yeebble pour obtenir un prompt

sympathique.

PS1="yeebble@`hostname`$ "

export PS1

export PATH=$PATH:/opt/yeebble/core

SELinux Ajouter le contexte http SELinux au répertoire

# semanage fcontext -a -t httpd_sys_content_t "/opt/yeebble(/.*)?"

# chcon -t httpd_sys_rw_content_t /opt/yeebble -R

# restorecon -Rv /opt/yeebble

Vous pouvez également désactiver SELinux.

Modifier la directive à SELINUX=disabled dans le fichier /etc/sysconfig/selinux mais ceci est

déconseillé sur un serveur de production.

Pour la prise en compte, redémarrer le serveur.

# reboot

Configuration d’Apache Apache est configuré ici en mode serveur dédié mais l'utilisation de virtualhost est tout à fait

possible.

Modifier le fichier /etc/httpd/conf/httpd.conf

Modifier les lignes

DocumentRoot "/opt/yeebble/www"

<Directory "/opt/yeebble/www">

Apache doit être sécurisé, en particulier en retirant les informations de versions.

Créer le fichier /etc/httpd/conf.d/options.conf

## Disable TRACE

TraceEnable off

## Disable Signature

ServerSignature Off

## Disable Banner

ServerTokens Prod

Page 10: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

10

Redémarrer Apache

# systemctl restart httpd

Se connecter avec un navigateur à l'URL : http://<IP_du_serveur> ou http://<nom_DNS>

La page d'accueil de Yeebble doit s'afficher.

Génération du jeu de clés SSH Ce jeu de clés va permettre au serveur Yeebble de se connecter aux autres serveurs (clients) en SSH.

Il faut générer les clés et prendre soin de sauvegarder la partie privée dans un autre endroit que le

serveur. La perte de la partie privée vous obligera à régénérer le jeu de clé et de redéployer la partie

publique associée sur tous les serveurs gérés.

L’ajout du droit r permet à l’utilisateur apache de lire la clé.

$ cd /opt/msccv/key

$ ssh-keygen -f id_rsa

$ chmod g+r id_rsa

Base de données Se connecter en root au serveur MariaDB, créer une base de données et un utilisateur :

Nom de la base de données: yeebble

Utilisateur : yeebble

Mot de passe : xxxx

Avec les commandes SQL suivantes :

CREATE USER 'yeebble'@'localhost' IDENTIFIED BY 'xxxx';

GRANT USAGE ON * . * TO 'yeebble'@'localhost' IDENTIFIED BY 'xxxx' ;

CREATE DATABASE IF NOT EXISTS `yeebble` ;

GRANT ALL PRIVILEGES ON `yeebble` . * TO 'yeebble'@'localhost';

Synchronisation horaire

# systemctl enable chronyd

Rotation des journaux

Créer un fichier /etc/logrotate.d/yeebble pour la rotation des logs # vi /etc/logrotate.d/yeebble /opt/yeebble/log/*.log { missingok notifempty create 664 yeebble yeebble rotate 5 compress size 10M }

Page 11: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

11

Application Yeebble

Decompression Décompresser le fichier yeebble -<version>.tar.gz à la racine de l’utilisateur yeebble.

$ tar xvfz yeebble-<version>.tar.gz

Configuration Éditer le fichier /opt/yeebble/config.php et modifier les informations concernant la connexion à la

base de données.

$configuration['db_host']='localhost';///Nom du serveur hébergeant ma base de données

$configuration['db_name']='yeebble';///Nom de la base

$configuration['db_user']='yeebble';///Utilisateur de connexion

$configuration['db_password']='xxxx';///Mot de passe

Charger le script sql tables.sql

$ cd /opt/yeebble/sql/

$ mysql --user=yeebble --password=xxxx yeebble < tables.sql

Exécuter le script load.php en passant en paramètre le fichier de langue. Il permet de charger le

fichier SQL en lisant le fichier de langue (fr.php, us.php). Ainsi les données stockées dans la base de

données seront dans la bonne langue.

$ cd /opt/yeebble/sql/

$ php load.php fr.php

Ajouter les droits d'exécution si manquant.

$ cd /opt/yeebble/core

$ chmod 774 *.php

Vérifier que les fichiers de log ont les droits suivants :

$ cd /opt/yeebble /log

$ chmod 664 *

$ chown yeebble:yeebble *

Démarrage automatique

Créer un fichier yeebble.service dans /etc/systemd/system/ avec le contenu si dessous :

[Unit] Description=Yeebble Requires=mariadb.service After= mariadb.service [Service] Type=oneshot ExecStart=/opt/yeebble/core/yeebble start RemainAfterExit=true ExecStop=/opt/yeebble/core/yeebble stop ExecReload=/opt/yeebble/core/yeebble restart [Install]

Page 12: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

12

WantedBy=multi-user.target Activation du service au démarrage # systemctl enable yeebble Created symlink from /etc/systemd/system/multi-user.target.wants/yeebble.service to /etc/systemd/system/yeebble.service. Démarrage du service # systemctl start yeebble

Identifiant du serveur En cas de clone du serveur (VM), le machine-id reste le même. Pour le regénérer, voici la procédure.

# rm /etc/machine-id

# systemd-machine-id-setup

Page 13: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

13

Connexion au portail Web

Il existe 2 utilisateurs créés par défaut, le premier avec les rôles d’administration, le second avec les

rôles d'exploitation.

Utilisateur : admin

Mot de passe : admin

Utilisateur : exploit

Mot de passe : exploit

Nous vous invitons à changer immédiatement les mots de passe par défaut avec une règle de

complexité.

Page 14: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

14

Exploitation

Sauvegarde Pour sauvegarder l’application, vous pouvez par un logiciel tiers. L’application nécessite la sauvegarde du répertoire /opt/yeebble. Pour les données, il faut sauvegarder le contenu de la base de données. Le script /opt/yeebble/sql/mysqbackup.sh permet de faire cette sauvegarde. Il faut exécuter ce script de manière régulière, à l’aide de cron, par exemple.

$ crontab –l

0 1 * * * /opt/yeebble/sql/mysqlbackup.sh yeebble xxx yeebble

Logs Les journaux sont disponibles dans le répertoire /opt/yeebble/log

mysql.log : tous les événements liés à la base de données

o-core.log : tous les événements du noyau de yeebble

www.log : tous les événements de l’interface web

other.log : tous les autres événements

Page 15: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

15

Les clients

Le serveur Yeebble communique avec les clients via ssh. Il faut donc installer un serveur ssh sur le

client.

Linux et Unix Sous les systèmes Linux ou Unix, le démon sshd est souvent installé et en fonctionnement.

Cependant, si ce n’est pas le cas, il faudra procéder à son installtion. Voici un exemple :

# yum install openssh-server

# systemctl enable sshd

# systemctl start sshd

Ensuite, depuis le serveur Yeebble, copier la partie publique de la clé sur le client, dans le répertoire

.ssh.

Méthode 1 $ ssh-copy-id -i id_rsa.pub <user>@<client01>

Méthode 2 $ sftp <user>@<client01>

> mkdir .ssh

> cd .ssh

> put id_rsa.pub authorized_keys

> exit

Pour tester le bon fonctionnement, exécuter la commande suivante :

$ ssh -i id_rsa <user>@<client01>

La connexion doit se faire sans la saisie d’un mot de passe (acceptation du fingerprint la première

fois)

Windows Il existe plusieurs serveurs ssh pour Windows mais Microsoft a documenté OpenSSH.

Télécharger la dernière version d’OpenSSH

https://github.com/PowerShell/Win32-OpenSSH/releases

En tant qu’administrateur, extraire le contenu du fichier dans le répertoire « C:\Program

Files\OpenSSH »

En tant qu’administrateur, exécuter la commande powershell

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

Page 16: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

16

Page 17: Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système d’exploitation Système Installer le système d’exploitation RedHat ou CentOS

Version 20.04

Yeebble – Guide d’installation

17

Outils tiers

https://github.com/major/MySQLTuner-perl