GUIDE D'INSTALLATION ET DE CONFIGURATION MSCCV 23/11/14 1/26
Table des matières 1.Installation...3 Serveur hébergeant le logiciel...3 Système d'exploitation...4 Pare-feu...4 Services supplémentaires...5 Création du user et groupe msccv...10 SELinux...10 Configuration Apache...11 Génération du jeu de clé SSH...12 Chargement de la base de données...13 Logs...14 Exécutables...15 Démarrage automatique...16 Client...18 Linux...19 Windows...20 Avec Cygwin...20 Avec freesshd...20 2.Connexion au portail Web...25 3.Licence de cette documentation...26 23/11/14 2/26
1. Installation Serveur hébergeant le logiciel Le serveur MSCCV est celui qui va héberger le site Web d'administration et d'exploitation. Il regroupe aussi tous les programmes permettant le bon fonctionnement. Il faut : Un serveur physique ou une machine virtuelle (hyperviseur KVM/RHEV, Vmware ESX ou Hyper-V) supportant le système d'exploitation GNU/Linux Redhat Un système d'exploitation Linux. Dans tout ce document, la distribution Linux utilisée est Red Hat Enterprise Linux 6.X ou CentOs 6.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.2 Le language PHP 5 Le nombre de processeur est dépendant du nombre de traitements parallèles souhaités et de sa fréquence. 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 également 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 MSCCV. A noter dans cette documentation : les instructions débutant par # sont à effectuer avec le user root, tandis que les instructions débutant par $ sont à effectuer avec le user msccv. 23/11/14 3/26
Système d'exploitation Installer le système d'exploitation en mode Basic Server 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). # yum y update Modifier le paramètre /proc/sys/fs/file-max avec une entrée dans le fichier /etc/sysctl.conf fs.file max = 300000 Pour la prise en compte, lancer la commande suivante (ou redémarrer le serveur) # sysctl p Bien que non obligatoire, il est conseillé de créer deux file-system /opt/msccv (1Go) /opt/msccv/log (10Go au minimum - en mode verbeux, le programme produit de très gros logs) La suite du document part du principe que l'installation a lieu dans /opt/msccv/ Pare-feu Ouvrir les ports réseaux nécessaires (80 entrée, 22 en sortie) ou désactiver le firewall 23/11/14 4/26
Ouvrir les ports réseaux nécessaires (80 ou 443 si https) # iptables I INPUT 5 i eth0 p tcp dport 80 m state state NEW,ESTABLISHED j ACCEPT # service iptables save Ou désactiver le firewall # iptables F # service iptables save Services supplémentaires Installer Apache, MySQL et PHP # yum install httpd mysql server php php pdo php mysql phpmbstring php process Installer le dépôt EPEL (http://fedoraproject.org/wiki/epel) # yum install http://fr2.rpmfind.net/linux/epel/6/i386/epelrelease 6 8.noarch.rpm Installer éventuellement phpmyadmin pour faciliter l'administration de la base de données MySQL. # yum install phpmyadmin Supprimer éventuellement les restrictions HTTP dans /etc/httpd/conf.d/phpmyadmin.conf <Directory /usr/share/phpmyadmin/> <Directory /usr/share/phpmyadmin/setup/> <Directory /usr/share/phpmyadmin/> <IfModule mod_authz_core.c> # Apache 2.4 #<RequireAny> # Require ip 127.0.0.1 # Require ip ::1 #</RequireAny> </IfModule> 23/11/14 5/26
<IfModule!mod_authz_core.c> # Apache 2.2 #Order Deny,Allow #Deny from All #Allow from 127.0.0.1 #Allow from ::1 </IfModule> </Directory> <Directory /usr/share/phpmyadmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 #<RequireAny> # Require ip 127.0.0.1 # Require ip ::1 #</RequireAny> </IfModule> <IfModule!mod_authz_core.c> # Apache 2.2 #Order Deny,Allow #Deny from All #Allow from 127.0.0.1 #Allow from ::1 </IfModule> </Directory> Modifier le fichier /etc/php.ini en saisissant le paramètre date.timezone date.timezone = Europe/Paris Installer l'extension PHP de gestion du SSH # yum install php pecl ssh2 Mettre en place le démarrage automatique # chkconfig httpd on # chkconfig mysqld on Démarrage des démons 23/11/14 6/26
# service httpd start # service mysqld start Configurer MySQL (ou MariaDB) # /usr/bin/mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, 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 MySQL 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 MySQL installation has an anonymous user, allowing anyone to log into MySQL 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. 23/11/14 7/26
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, MySQL comes with a database named 'test' that anyone can access. removed This is also intended only for testing, and should be before moving into a production environment. 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... 23/11/14 8/26
All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL! Modifier le nombre de connexions possibles en éditant le fichier 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. 23/11/14 9/26
Création du user et groupe msccv # useradd d /opt/msccv m U msccv p msccv Ajouter les lignes suivantes au.bash_profile de l'utilisateur msccv PS1="msccv@`hostname`$ " export PS1 Ajouter le user apache au groupe msccv pour que le serveur puisse écrire dans des fichiers # usermod G msccv a apache # cd /opt # chown msccv:msccv msccv # chmod g+w msccv # cd msccv # chown msccv:msccv log # chmod g+w log Décompresser le fichier msccv-<version>.tar.gz $ tar xvfz msccv <version>.tar.gz SELinux Ajouter le contexte http SELinux au répertoire # semanage fcontext a t httpd_sys_content_t "/opt/msccv(/.*)?" # restorecon -Rv /opt/msccv Vous pouvez également désactiver SELinux en passant la directive SELINUX=disabled dans le fichier /etc/sysconfig/selinux Pour la prise en compte, lancer la commande suivante (ou redémarrer le serveur) # setenforce 0 23/11/14 10/26
Configuration Apache Apache est configuré en mode serveur dédié. L'utilisation de virtualhost est tout à fait possible. Modifier le fichier /etc/httpd/conf/httpd.conf Modifier les lignes DocumentRoot "/opt/msccv/www" <Directory "/opt/msccv/www"> Redémarrer Apache # service httpd restart Se connecter avec un navigateur à l'url : http://localhost/ La page d'accueil de MSCCV doit s'afficher. 23/11/14 11/26
Génération du jeu de clé SSH $ cd /opt/msccv/key $ ssh keygen Il faut générer la clé 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 a régénérer le jeu de clé et de redéployer la partie publique associée sur tous les serveurs gérés. 23/11/14 12/26
Chargement de la base de données Se connecter avec un navigateur à l'url : http://localhost/phpmyadmin/ Créer un utilisateur msccv et sa base de données. Éditer le fichier /opt/msccv/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']='msccv';///nom de la base $configuration['db_user']='msccv';///utilisateur de connexion $configuration['db_password']='msccv';///mot de passe Insérer le script sql tables.sql $ cd /opt/msccv/sql/ $ mysql user=msccv password= msccv msccv < tables.sql Exécuter le script load.php en passant en paramètre le fichier de langue. Il permet de charger le 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/msccv/sql/ $ php load.php fr.php 23/11/14 13/26
Logs Vérifier que les fichiers de log ont les droits suivants : $ cd /opt/msccv/log $ chmod 664 * $ chown msccv:msccv * # ll total 280 rw rw r. 1 msccv msccv 51040 23 déc. 13:37 mysql.log rw rw r. 1 msccv msccv 166800 23 déc. 13:37 o_core.log rw rw r. 1 msccv msccv 340 23 déc. 13:35 other.log rw rw r. 1 msccv msccv 58741 22 déc. 22:44 web.log Créer un fichier /etc/logrotate.d/msccv pour la rotation des logs # vi /etc/logrotate.d/msccv /opt/msccv/log/*.log { missingok notifempty create 664 msccv msccv rotate 5 compress size 10M } 23/11/14 14/26
Exécutables Ajouter les droits d'exécution si manquant. $ cd /opt/msccv/core $ chmod 774 *.php 23/11/14 15/26
Démarrage automatique Créer un fichier /etc/init.d/msccv # chown root:root # chmod 755 msccv rwxr xr x 1 root root # chkconfig msccv on 784 24 déc. 14:38 msccv Il démarrera en S99 et se fermera en K00 #!/bin/bash # # MSCCV # # Authors: MSCCV Team # chkconfig: 345 99 00 # ### BEGIN INIT INFO # Provides: # Short Description: Start MSCCV programs. # Description: Start MSCCV programs : o core.php o checkserver.php o stats.php. ### END INIT INFO [ f /usr/bin/php ] exit 0 case "$1" in start) su msccv c "cd /opt/msccv/core/;./o stats.php > /dev/null &" su msccv c "cd /opt/msccv/core/;./o check server.php > /dev/null &" /dev/null &" stop) ;; su msccv c "cd /opt/msccv/core/;./o core.php > 23/11/14 16/26
pkill 15 u msccv "o stats" pkill 15 u msccv "o check server" pkill 15 u msccv "o core" ;; restart) $0 stop $0 start exit $? ;; *) echo $"Usage: $0 {start stop restart}" exit 2 esac exit 0 Lancer MSCCV # service msccv start 23/11/14 17/26
Client MSCCV discute avec son client via ssh. Il faut donc installer un serveur sshd sur le client. 23/11/14 18/26
Linux Sous Linux, le démon sshd est souvent déjà installé et en fonctionnement. Si ce n'est pas le cas, exécuter les commandes suivantes # yum install openssh server # chkconfig sshd on # service sshd start Pour créer un utilisateur sur ce client (ceci n'est pas nécessaire, cela dépend avec quel utilisateur les commandes doivent être exécutées). # useradd msccv # passwd msccv Depuis le serveur MSCCV copier la clé ssh sur le client srv1 pour l'utilisateur msccv # ssh copy id i id_rsa.pub msccv@srv1 23/11/14 19/26
Windows Avec Cygwin La procédure suivante montre l'installation du service sshd de Cygwin. Il est possible d'utiliser un autre serveur sshd. Télécharger le fichier de setup en fonction de votre architecture. 32 bits :http://cygwin.com/setup-x86.exe 64 bits :http://cygwin.com/setup-x86_64.exe Lancer l'exécutable et choisir les composants suivants : Admin --> cygrunsrv Net --> openssh Ouvrir un shell bash en tant qu'administrateur Exécuter la commande # ssh host config y Il sera demandé un mot de passe pour l'utilisateur cyg_server qui sera créé. Créer les fichiers Cygwin /etc/passwd et /etc/group, les utilisateurs Windows seront ainsi créés et utilisable par sshd. # mkpasswd l > /etc/passwd # mkgroup l > /etc/group Démarrer le service «CYGWIN sshd» Ne pas oublier de gérer le pare-feu si celui-ci est démarré. Avec freesshd Télécharger le fichier de setup http://www.freesshd.com/freesshd.exe Exécuter le fichier.exe an suivant les étapes suivantes. 23/11/14 20/26
23/11/14 21/26
23/11/14 22/26
23/11/14 23/26
23/11/14 24/26
2. 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 23/11/14 25/26
3. Licence de cette documentation Cette documentation est sous licence Creative Commons, libre de partager avec les mêmes conditions. http://creativecommons.org/licenses/by-sa/4.0/deed.fr 23/11/14 26/26