Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système...
Transcript of Guide d’installation V20 - Yeebble...Version 20.04 Yeebble – Guide d’installation 4 Système...
Guide d’installation
V20.04
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
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.
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)
Version 20.04
Yeebble – Guide d’installation
5
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
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.
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.
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
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 }
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]
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
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é.
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
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
Version 20.04
Yeebble – Guide d’installation
16
Version 20.04
Yeebble – Guide d’installation
17
Outils tiers
https://github.com/major/MySQLTuner-perl