18
1 BTS SIO 2 Projet GSB Apache 2 Voiset Nicolas

BTS SIO 2 Projet GSB serveur WEB.pdf3 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

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

1

BTS SIO 2

Projet GSB

Apache 2

Voiset Nicolas

Page 2: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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

Page 3: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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 :

Page 4: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

4

Page 5: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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

Page 6: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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 :

« [email protected] »

Accès à la page web

FTP Modification de la page web

par défaut

Nouvelle page web

Page 7: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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 »

Page 8: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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.

Page 9: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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

Page 10: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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 :

Page 11: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

11

� DNS :

� Virtualhost :

Page 12: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

12

Page 13: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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 :

Page 14: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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

Page 15: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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

Page 16: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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.

Page 17: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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

Page 18: BTS SIO 2 Projet GSB serveur WEB.pdf3 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

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