bts sio 2 projet gsb serveur web.pdf3 1-contexte d’utilisation un visiteur médical veut se...
TRANSCRIPT
1
BTS SIO 2
Projet GSB
Apache 2
Voiset Nicolas
2
Table des matières
1-Contexte d’utilisation ........................................................................................................................... 3
2-Informations d’utilisation ..................................................................................................................... 5
3-Comparaison ........................................................................................................................................ 5
4-Problèmes et solutions ......................................................................................................................... 6
5-Phase de test ........................................................................................................................................ 6
Annexe1-Configuration et utilisation de Zenload balancer ...................................................................... 7
Annexe2-Configuration d’apache ............................................................................................................ 9
Annexe3-Connexion au serveur web (Authentification liée à l’Active directory)................................... 14
Annexe4-Mise à jour des serveurs web (FTPdpro & Filezilla) ................................................................ 16
Annexe5-Synchronisation des serveurs (RSYNC & INCRON) .................................................................. 17
3
1-Contexte d’utilisation
Un Visiteur médical veut se connecter au site web de GSB pour y rentrer son compte rendu.
La requête arrivera sur une première machine assurant le rôle de load-balancer et renvoyant les demandes
selon l’algorithme de traitement des redirections « round robin » (à tour de rôle).
La communication est effectuée en SSL (Secure Sockets Layer), qui en délivrant un certificat à un client permet
de sécuriser la connexion. Il est ensuite invité à saisir un « login ». L’authentification est liée à l’annuaire de
l’entreprise.
Pour mettre à jour les serveurs web nous avons installé le service FTPdpro sur les seveurs web. Le transfert de
fichier va s’effectuer via le client ftp Filezilla.
Prérequis : Installation de deux serveurs web apache 2 en load-balancing dans une zone démilitarisée. Une
machine de plus est nécessaire sous Debian 7 pour gérer le load-balancing (Zen loadbalancer).
Noms des serveurs :
- WEB0-ZEN
- WEB1-DEBIAN7
- WEB2-DEBIAN7
Nom de domaine :
- GSB.LAN
Un serveur héberge ESXi et les machines virtuelles (WEB0-ZEN, WEB1-DEBIAN7, WEB2-DEBIAN7).
Choix du système : Debian 7 (Linux).
Choix des serveurs web : Apache 2.
Schéma de la zone démilitarisée qui accueille les trois serveurs :
4
5
2-Informations d’utilisation
Serveur ESXI-DMZ WEB1-GSB WEB2-GSB WEB0-ZEN
Nom d’utilisateur Root utilisateur utilisateur root
Mot de passe Password Password Password Password
Super utilisateur Root Root Root
Mot de passe
(super utilisateur)
Root Root Root
Adresse IP 172.31.0.10 172.31.0.2 172.31.0.3 172.31.0.1
Zone pare-feu : Orange
Accès à la page web de gsb :
- Depuis le réseau de gsb : https://172.31.0.1
- Depuis l’extérieur : https://
3-Comparaison
Le logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation
Apache. C'est le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la
licence Apache.
� Pourquoi Apache ?
o Découverte de Linux et les commandes de bases.
o Facilité de maintenance et stabilité système
o Logiciel libre.
o Noyau linux stable avec peu de correctifs (contrairement à Windows).
APACHE 2 IIS
Points fort
-Gratuité
-Peu gourmand en ressources
matérielles
-Excellente stabilité
-Compatibilité PHP
-Grande simplicité d’installation et
d’utilisation
Point faible
-Installation et administration
laborieuses (pas d’interface
graphique)
-Pas de support technique
-Coût du support technique
-Très gourmand en ressources
matérielles
6
4-Problèmes et solutions
Problème Solution
Problème de certificat : les certificats par défaut
d’apache n’existaient plus sur la nouvelle version de
debian 7.
Génération manuelle des nouveaux certificats.
La nouvelle version esxi est incompatible avec l’hôte
de virtualisation.
Installation d’une version antérieure.
Problème au redémarrage d’apache suite à une
authentification par une pass phrase générée par les
certificats.
Suppression de la pass phrase avec la commande :
Openssl rsa –in ssl-cert-snakeoil.key –out ssl-cert-snakeoiloff.key
5-Phase de test
Service testé Phase de test Résultat
Zen load balancer Connexion au serveur web via
https://172.31.0.1
Connexion en round robin sur un des
serveurs web
Fail over Extinction d’un serveur web Accès à la page web
Authentification Login avec l’un des
utilisateurs présents dans
l’Active Directory :
Accès à la page web
FTP Modification de la page web
par défaut
Nouvelle page web
7
Annexe1-Configuration et utilisation de Zenload balancer
� Pour accéder à l’interface d’administration entrer l’adresse suivante dans votre navigateur :
https://172.31.0.1:444
loggin : admin
password : password
� Créer une nouvelle ferme dans l’onglet Manage>Farms :
Ici le nom de la ferme est « farmgsb ».
� Ajouter vos serveurs web dans l’onglet Manage>Edit farm>Add server :
Il faut changer la méthode de load balancing en « round robin »
8
Mais attention ! Il existe plusieurs types d’algorithme :
- Round Robin ( à tour de rôle )
- Hash ( client collante )
- Weight ( connexion linéaire par répartition de poids )
- Priority ( connexion à la plus haute priorité disponible )
On peut également choisir si l’on veut ou non activer la persistance de l’adresse IP du client dans la
mémoire c’est-à-dire que le client se connectera au serveur avec lequel il a déjà été en relation.
Et choisir le nombre maximum de clients mémorisés dans la ferme.
Et le temps de réponse maximum du serveur.
9
Puis on peut choisir le nombre maximum de connexions simultanées.
Ensuite le nombre maximum de serveurs dans la ferme.
Et choisir de fournir ou non l’adresse IP du client au serveur.
Puis changer la valeur de la période pour obtenir un serveur.
Et enfin vous avez la possibilité d’installer un module complémentaire « Farmguardian » qui détectera les
erreurs des serveurs.
Par la suite il faut ajouter le deuxième serveur
Annexe2-Configuration d’apache
Commandes utiles :
� Accéder au sous répertoire : cd /nomrepertoire/nomsousrepertoire
� Accéder en écriture : nano /nomdufichier.conf
� Lister l’arborescence : ls
� Copier : cp adresse_source adresse_destination
� Supprimer : rm adresse_fichier
� Créer un fichier : mkdir nom_fichier
� Affichage configuration réseau : ifconfig
� Démarre le service : start
� Stoppe le service : stop
� Redémarre le service : restart ou reload
Fichiers de configuration utiles :
� Hosts : /etc/hosts
� Hostname : /etc/hostname
� Fichier de configuration des cartes réseau : /etc/network/interfaces
10
� Page par défaut d’apache : /var/www/index.html
� Fichier de configuration d’apache : /etc/apache2/apache2.conf
� Ports d’écoute : /etc/apache2/ports.conf
� Sites hébergés par apache : /etc/apache2/sites-available
� Virtualhost apache : /etc/apache2/sites-enabled
� Configuration DNS : /etc/resolv.conf
Tutoriel d’installation du service Apache2 et de la mise en place du certificat auto-signé :
Config de la carte réseau : nano /etc/network/interfaces
Config DNS : nano /etc/resolv.conf
Redémarrage des services : service networking restart
Mise à jour :
� Commenter ou décommenter, pour une MAJ par internet, le fichier de configuration : nano /etc/apt/sources.list
� MAJ :
apt-get update
apt-get upgrade
Installer Apache2 : apt-get install Apache2
Test de la page web par défaut : accès par le navigateur à http://127.0.0.1
Activer SSL : a2enmod ssl
Activer le site : a2ensite default-ssl
Créer la clé privée : openssl genrsa –des3 –out certif.key 1024
Et copie dans son répertoire : cp certif.key /etc/ssl/private
Demande de certificat : open ssl req –new –key certif.key –out certif.csr
Créer le certificat auto-signé : openssl x509 –req –days 365 –in certify.csr –signke y certify.key –out certify.crt
Et copie dans son repertoire : cp certif.crt /etc/ssl/certs
Aller dans le virtualhost : nano /etc/apache2/sites-enabled/default-ssl
Noter les clés public/privée et renommer les dans leurs répertoires (certs & private) : cp /chemin/nom_départ /chemin/nom_final
Capture d’écran des fichiers de configuration :
� Carte réseau :
11
� DNS :
� Virtualhost :
12
13
Les certificats auto-signés que l’on doit créer
- Activer SSL : « a2ensite default-ssl » puis « a2enmod ssl ».
- Redémarrer Apache : « /etc/init.d/apache2 restart ».
- Créer le certificat : « apt-get install ssl-cert » puis « make –ssl –cert
generate –default –snakeoil –force overwrite ».
- Editer le virtualhost et ajouter les certificats comme ci-dessus en rouge.
� Ports d’écoute :
14
Annexe3-Connexion au serveur web (Authentification liée à l’Active
directory)
Premièrement il faut installer les modules adéquats sur votre serveur Apache grâce à la ligne de
commande suivante.
A2enmod authnz_ldap
Il faut ensuite redémarrer apache, on va même forcer la reconfiguration.
/etc/init.d/apache2 force-reload
Nous allons tout simplement éditer le fichier de configuration du site hébergé par Apache, le «
virtualhost ».
Nano /etc/apache2/site-enabled/000-default *quand il s’agit du site par
défaut
15
Accès depuis la zone verte :
� Pour se connecter au site web de GSB il faut ouvrir le navigateur et entrer l’adresse IP du Zenload
balancer qui va nous rediriger sur la page web d’un des deux serveurs Apache selon la méthode
« round robin » :
� Il faut alors entrer le nom et le mot de passe d’un des utilisateurs de l’unité d’organisation « Visiteur »
crée dans l’Active Directory.
Comme ci-dessous :
Loggin : [email protected]
Password : P@ssw0rd
16
Accès depuis la zone rouge :
Entrer dans le navigateur en HTTPS l’adresse de la carte rouge du FIREWALL PFSENSE.
Annexe4-Mise à jour des serveurs web (FTPdpro & Filezilla)
� Pour mettre à jour les pages web grâce au ftp FTP on doit installer un module complémentaire, c’est-
à-dire FTPdpro sur les serveurs web.
Apt-get install proftpd
� Puis il faut créer un utilisateur et lui donner les droits nécessaires pour mettre à jour les pages web.
Nous utiliserons l’utilisateur courant c’est-à-dire « utilisateur » et mot de passe « password ». Sinon :
Sudo add user « nom utilisateur »
Chmod 777 /var/www
Il faut ensuite se connecter avec Filezilla client en entrant le nom et le mot de passe de l’utilisateur.
La connexion s’effectue de la « zone verte ». Pour cela, les connexions ont été autorisées sur Endian firewall.
17
Annexe5-Synchronisation des serveurs (RSYNC & INCRON)
Nous souhaitons synchroniser notre serveur avec un deuxième serveur qui est et sera également
utilisé pour créer des pages web et des sites internet.
Nous devons synchroniser sur le premier serveur un dossier qui sera la réplique exacte sur l’autre. Et
cela de façon dynamique et en temps réel.
Premièrement il faut installer RSYNC en « démon » sur chaque serveur puis en « client ».
Apt-get install rsync
Pour configurer le « démon » il faut modifier un premier fichier de configuration en passant le
paramètre RSYNC_ENABLED à « = True ». Pour cela lancer la commande suivante :
nano /etc/default/rsync
En ajoutant également l’emplacement du fichier de configuration principal : /etc/rsyncd.conf
Puis modifier ce fichier de configuration principal en ajoutant les paramètres suivants :
Uid = 0 // utilisateur
Gid = 0 // groupe
Use chroot = no
Max connections = 4
Syslog facility = local5
Pid file = /var/run/rsyncd.pid
[synchronisation] // le module nommé « synchronisat ion »
Path = /var/www
Read only = false
List = yes
Hosts allow = *
Secrets file = /etc/rsyncd.secrets
Et ensuite démarrer le “démon” :
/etc/init.d/rsync start
Sur le client il ne vous reste plus qu’à lancer la commande suivante (Pour tester en synchronisation
manuelle) :
Rsync –rtv –stats /var/www/dev/ daemon::synchronisa tion/
« deamon » est le serveur démon. (adresse IP)
Il faut maintenant dynamiser cette synchronisation avec INCRON.
Nous allons donc créer un script que lancera INCRON à chaque modification, création, suppression
dans le dossier « www » de chaque serveur.
Création du script à la racine de chaque serveur : sync.sh (enregistrer le en lui donnant un nom)
# !/bin/sh
18
Rsync –rtv /var/www/dev/ serveurclient::synchroniza tion/
N’oubliez pas de donner les droits d’administrateur au script :
chmod 777 /sync.sh
Installer INCRON :
Apt-get install incron
Ajouter des utilisateurs tel que root et l’utilisateur courant dans le fichier :
Nano /etc/incron.allow
Ensuite il faut paramétrer INCRON. Taper la commande suivante :
Incrontab -e
Puis ajouter la ligne suivante et enregistrer :
/var/www/dev/ IN_CREATE,IN_DELETE,IN_CLOSE_WRITE,IN _MOVED_TO /sync.sh
Redémarrer pour finir le service :
service incron restart