39
1 / 39

1 / 39 · 2015-11-12 · LOT 2 Création et ... L'image à bien été copiée. ... Après avoir effectué cette action nous aurons une interface qui nous accompagnera tout

  • Upload
    ngominh

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

1 / 39

FAMEL Yoan 21/10/2015PAYET YoannBTS SIO – SISR

PPEEntreprise GSB

LOT 2Création et installation de la solution de gestion des notes de frais

Mise en place de l'infrastructure réseau de la DMZ et tests

Table des matièresIntroduction..........................................................................................................................................3Organisation..........................................................................................................................................4Infrastructure réseau.............................................................................................................................5

Réseau général................................................................................................................................5 Segmentation..................................................................................................................................6 Maquette avant DMZ......................................................................................................................6

Virtualisation........................................................................................................................................7 Installation des serveurs..................................................................................................................7 Création d'une machine virtuelle sur le serveur ESXi....................................................................8

Configuration du serveur de base de données BDNDF......................................................................14Configuration du serveur web WEBNDF..........................................................................................26

Installation d'Apache....................................................................................................................26 Installation de PHP.......................................................................................................................28 Importation des pages web et php.................................................................................................29

Adressage, routage et importation et paramétrage des commutateurs...............................................34 Configuration du switch virtuel....................................................................................................35 Configuration de COMMDMZ.....................................................................................................38 Configuration du routeur..............................................................................................................39

2 / 39

Introduction

Plaçons nous en contexte professionnel.

Après avoir finalisé le premier Lot de ce PPE nous allons maintenant nous intéresser à la gestion des notes de frais de l'entreprise GSB, pour cela, notre tâche a consisté à uniformiser cette dernière par le biais d'un service web lui même en collaboration avec un service de base données, de cette manière nous améliorons la sécurité du service en remplaçant l'ancien qui répétait de nombreux arrêts, une lenteur de traitement, en bref, sa QoS n'était pas réellement productive et la lenteur de son service empêchait les utilisateursdu service d'en profiter.

Une fois l’obsolescence du service réglée, nous isolerons notre service web du réseau consacré aux serveurs en créant une DMZ directement derrière notre routeur de manière à réellement sécuriser l'accès au service.

Nous retiendrons que :

« Les sytèmes pare-feu (firewall) permettent de définir des règles d'accès entre deux réseaux. Néanmoins, dans la pratique, les entreprises ont généralement plusieurs sous-réseaux avec des politiques de sécurité différentes. C'est la raison pour laquelle il est nécessaire de mettre en place des architectures de systèmes pare-feux permettant d'isoler les différents réseaux del'entreprise : on parle ainsi de « cloisonnement des réseaux » (le terme isolation est parfois également utilisé). »

Source : www.commentçamarche,net

3 / 39

Organisation

Nous avons donc basé notre topologie sous forme de diagramme de Gantt pour la répartition des tâches.

LOT2 CREATION ET INSTALLATION DE LA SOLUTION DE GESTION DES NOTES DE FRAIS - TâcEstimation Débutée Terminée Etat Etudiant Remarque

Analyse des documents 30min 10/27/2015 10/27/2015 Terminé Yoan.F / Yoann.P

Istallation du serveur Debian sous ESXi 30min 10/27/2015 10/27/2015 Terminé Yoan.F / Yoann.P

Duplication du serveur 30min 10/27/2015 10/27/2015 Terminé Yoan.F / Yoann.P

Création du serveur web WEBNDF et de base de données BDNDF 2h00 10/3/2015 10/3/2015 Terminé Yoan.F / Yoann.P

MISE EN PLACE DE L'INFRASTRUCTURE RESEAU DE LA DMZ ET TESTS - Tâche(s) Estimation Débutée Terminée Etat Etudiant Remarque

Câblage et connection du commutateur COMMDMZ, de RTROUT et des deux serveurs web et30min 11/10/2015 11/10/2015 Terminé Yoan.F

Mise en place de l'adressage 40min 11/10/2015 11/10/2015 Terminé Yoan.F / Yoann.P

Paramétrage de RTROUT 10min 11/10/2015 11/10/2015 Terminé Yoan.F

Test du fonctionnement du site sur le poste visiteur 20min 11/10/2015 11/10/2015 Terminé Yoan.F / Yoann.P

Mise en place du test des solutions de QoS avec MGEN 30min 11/10/2015 11/10/2015 Terminé Yoan.F / Yoann.P

QoS avec du trafic prioritaire et réservation de la bande passante 20min 11/10/2015 11/10/2015 Terminé Yoan.F / Yoann.P

Infrastructure réseau

Réseau général

De manière à pouvoir comprendre le fonctionnement du réseau et de la maquette de tests que nous mettrons en place nous présenterons les schémas suivants :

Nous constatons ici toujours le même réseau, le VLAN 300 gérant l'ensemble des serveurs de l'entreprise, le VLAN 400 destiné à la « sortie » du réseau vers l'internet selon l’organisation des réseaux virtuels et de l'adressage IP en page suivante.

Nous y présenterons également notre maquette réseau avant la création de la DMZ.

5 / 39

Segmentation

N° VLAN Service(s) Adressage IP

10 Réseau & système 192.168.10.0/24

20 Direction / DSI 192.168.20.0/24

30 RH / Compta / Juridique / Secrétariat / Administratif 192.168.30.0/24

40 Communication / Rédaction 192.168.40.0/24

50 Développement 192.168.50.0/24

60 Commercial 192.168.60.0/24

70 Labo-Recherche 192.168.70.0/24

100 Accueil 192.168.100.0/24

150 Visiteurs 192.168.150.0/24

200 Démonstration 192.168.200.0/24

300 Serveurs 172.17.0.0/24

400 Sortie 172.18.0.0/30

Maquette avant DMZ

On remarque donc qu'avant la création de la DMZ notre serveur sera placé dans le VLAN 300 pour favoriser sa création et le téléchargement des paquets.

6 / 39

Virtualisation

Afin de créer nos deux serveurs nous allons devoir partir d'un modèle commun pour cela nous aurons besoin d'un serveur ESXi au préalable installé sur le réseau afin que nous puissions virtualiser nos tests sans causer de dommages et surcharger le réseau réel.

Notre modèle commun sera une machine évoluant sous Debian 7 que nous dupliquerons dans deux répertoires créés au préalable sur la banque de données présente dans ESXi et que nous nommerons par les noms se référant au nom des serveurs (c'est-à-dire WEBNDF et BDNDF).

Installation des serveurs

Pour notre besoin nous importerons un master Debian depuis la banque de données (datastore) d'ESXi que nous clonerons avec 1Go de mémoire vive, 20Go de disque dur alloué en Thin provisioning afin d'en créer deux.

Nous procéderons en deux temps :

Création d'un serveur master ;

Effectuer sa duplication pour créer nos serveurs web et base de données.

L'interface de ESXi est la suivante :

7 / 39

Nous allons donc voir ensemble la façon dont il faut créer et configurer une machine sous ESXi afin de pouvoir par la suite la virtualiser et l'utiliser, nous préciserons que notre exemple s'applique de la même façon à n'importe quel cas de création de machine virtuelle sous le serveur ESXi.

Création d'une machine virtuelle sur le serveur ESXi

Dans un premier temps, nous allons créer un répertoire pour notre future machine qui contiendra les données d’installation. Puis nous allons copier si possible l'image d'une machine modèle (Master) ayant l'extension .vmdk (cette dernière représente la décompression d'une image ISO), dans le répertoire créer précédemment (figure suivante),

8 / 39

Ainsi que comme indiqué dans l'exemple ci-dessous :

Dans cet exemple notre machine master Master-DB7.vmdk est copié dans le répertoire WEBNDF lui même compris dans le répertoire parent HM-PPE3.

L'image à bien été copiée.

9 / 39

Maintenant que nous avons copié notre image .vmdk nous allons créer notre machine virtuelle qui sera en référence avec cette même image. Pour cela un clique droit sur notre pool de ressource nous le permet :

Après avoir effectué cette action nous aurons une interface qui nous accompagnera tout au long de la création de la machine. Nous choisissons une configuration personnalisée :

On y précise ensuite le nom de la machine virtuelle que l'on va créer, dans notre cas le nomcorrespondra au serveur Web :

10 / 39

On sélectionne ensuite le stockage de destination dans lequel les fichiers de la machine seront enregistrés après modification. Dans notre cas, ce sera le datastore se trouvant à la racine du serveur :

Puis nous choisissons la version compatible avec Vmware et ESXI :

À l'étape suivante, nous devons renseigner la version ainsi que l'OS que notre serveur utilisera :

L'utilisateur peut à sa guise changer l'OS de la machine, du moment que celle-ci est en adéquation avec l'image qu'il aura sélectionné au préalable.

11 / 39

Tout dépend ensuite du nombre de CPU compris par l'hôte. Généralement on choisis 1 dans les deux cas (figure suivante) :

La configuration de la mémoire vive dépendra du ou des services que nous allouerons à notre serveur. Pour ma part 1 GO de RAM sera alloué car la virtualisation actuelle ne nous poussera pas à utiliser une grosse configuration :

On peut

définir également le nombre de carte réseau que va utiliser notre machine virtuelle. Dans notre cas 1 NIC (Network interface communication) est suffisante car la machine est de type serveur et non routeur logiciel :

12 / 39

On sélectionne le contrôleur SCSI par défaut :

En tenant compte qu'au début nous avons copié (si c'est le cas) notre image .vmdk, nous allons établir le lien avec cette dernière. Pour cela, il faut donc choisir, utiliser un disque virtuel existant.

On montre le chemin de l'image copié à l’assistance de création de machine virtuelle de ESXi :

13 / 39

Les étapes qui suivent sont à laisser par défaut, c'est donc après celle-ci que nous cliquons sur Terminer pour créer notre machine virtuelle.

Nous faisons bien évidemment la même manipulation pour chacun de nos deux serveurs s'appliquant à notre cas.

Une fois nos deux serveurs créés nous les démarrons :

Configuration du serveur de base de données BDNDF

Pour commencer nous allons mettre à jour les paquets sur notre machine en tapant la commande suivante :

apt-get update

Une fois nos paquets et dépôts mis à jour nous allons débuter l'installation des paquets destinés à l'installation du service MySQL permettant la gestion de nos bases de données ainsi que de la futur application destiné aux notes de frais.

14 / 39

Pour cela les paquets ainsi que la commande suivante est requise :

apt-get install mysql-server libmysqlclient15-dev mysql-common

Un mot de passe nous sera demandé lors de la configuration du service, pour notre exemple nous définirons ce dernier avec 'root'. Bien entendu il est conseillé d'y mettre un mot de passe moins sensible à la casse afin d'augmenter la sécurité.

Il est facile de mettre en place quelques règles simples pour sécuriser le serveur, grâce au script :

mysql_secure_installation

Et en répondant à quelques questions :

Set root password ? Y

# Permet de modifier le mot de passe root (de mysql)

Remove anonymous users ? Y

# Retire les accès anonymes

Disallow root login remotely ? Y

# Retire l'accès root distant (recommandé)

Remove test database and access to it ? Y

# Retire la base test et ses accès

Reload privilege tables now ? Y

# Recharge les privilèges suite aux modification

15 / 39

La configuration du mot ressemblera à ceci :

Nous redémarrons dans un premier temps le service ou du moins nous nous assurons qu'il est actuellement en fonction :

Service mysql status # S'assure du bon fontionnement du serviceService mysql restart # Redémarre le serviceService mysql stop # Arrête le serviceService mysql start # Lance le service

Puis, une fois la sécurisation mise en place nous nous occuperons de l'installation du paquet phpmyadmin qui nous permettra de gérer nos bases de données simplement de part son interface graphique simplifié.

Pour cela cette simple commande fera l'affaire,

apt-get install phpmyadmin

16 / 39

Le mot de passe de l'administrateur de la base de données SQL nous est alors demandé :

Puis un

deuxième mot de passe, celui-ci concernant le mot de passe de connexion à l'interface de phpmyadmin :

Une fois

l'installation effectué, nous lançons notre navigateur et tapons notre boucle locale suivi du nom du service comme suit :

17 / 39

127.0.0.1/phpmyadmin

Il nous faudra alors préciser le login et le mot de passe de connexion que nous avons configuré plus tôt lors de l'installation du service SQL.

Nous arrivons alors sur l'interface de phpmyadmin (page suivante), l'interface est configuréde manière à nous proposer des tables et des bases par défaut afin de comprendre son fonctionnement.

L'interface est la suivante :

18 / 39

PhpMyAdmin est donc correctement installé sur notre machine.

Il va nous falloir maintenant importer les fichiers concernant les bases crées par les programmeurs. Nous les récupérons sur le serveur FTP en les téléchargeant, elles seront placées dans le répertoire 'téléchargements', libre alors à nous de choisir un répertoire ou d'en créer un afin de les stocker proprement.

Le téléchargement concerne trois fichiers, un seul nous sera utile dans notre cas, les deux autres servant uniquement à nous présenter les anciennes configurations des bases de données et de leur tables afin de pouvoir en faire la distinction.Il va donc falloir importer cette configuration depuis l'interface de phpmyadmin, pour cela nous nous rendons sur l'onglet « plus » puis « importer ».

19 / 39

Nous retrouvons alors l'interface suivante :

Nous remarquons que l'interface est réellement simplifiée ce qui rend l'importation ou la gestion des bases beaucoup plus simple et intuitive.

Bien sûr d'autres solutions existent mais nous prônerons celle-ci dans notre cas afin d'en étudier ses contours.

Après avoir importé notre base, nous remarquons alors la création de la base de données 'gsb_frais' sur la partie gauche de notre écran.

20 / 39

En cliquant dessus nous arrivons ensuite sur l'interface suivante, nous remarquons les différentes tables gérant l'application de notes de frais :

Une fois que tout les paquets ont été installés et qu'aucunes connexion à internet n'est nécessaire nous pouvons commencer à adresser notre serveur avec l'adresse précisé dans le schéma suivant :

En effet nous allons maintenant commencer à simuler notre DMZ.

21 / 39

Nous nous occuperons dans un premier temps uniquement de l'adressage en lui implantant son adresse, son masque ainsi que sa passerelle, comme suit :

La passerelle par défaut de notre serveur de base de données est le routeur RTROUT cependant il est également possible de ne pas surcharger le routeur en activant la commande suivante, destiné à activer le routage :

echo > 1 /proc/sys/net/ipv4/ip_forward

Puis d'y implanter les deux routes, l'une allant vers le VLAN400 l'autre VLAN300.

Nous redémarrons ensuite notre carte réseau avec les commandes,

ifdown eth0ifup eth0

Nous vérifierons son adressage avec un ifconfig.

Il faudra par la suite permettre l'accès à distance à notre base de données afin qu'un utilisateur présent sur le réseau puisse accéder à son compte sur l'application en saisissantson mot de passe ainsi identifiant.

De cette manière, le service aura une réelle utilité et les visiteurs y auront pleinement accès,mais également les administrateurs chargés de la maintenance de la base, tel que l'ajout ou la suppression d'entrée, ou encore le filtrage de plusieurs champs.

22 / 39

Pour activer cette fonction, nous nous connecterons sur l'interface en ligne de commandes de notre service MySQL depuis un terminal grâce à la commande :

mysql -u root -p

Un mot de passe nous sera demandé, nous entrons celui que nous avons configuré plus tôt, c'est-à-dire 'root'.

La commande activant ce service sera :

grant all privileges on *.* to '%'@'172.31.0.0' identified by 'root' ;

Pour traduire cette commande, nous pouvons comprendre ici que tout les utilisateurs compris dans le réseau 172.31.0.0 et identifié par le mot de passe 'root' aura tout les privilèges et donc accès à la base.

Le terminal nous retourne alors :

23 / 39

Mais il est également possible d'effectuer cette commande au sein de phpmyadmin :

Nous testerons l'accès à distance plus tard, lorsque notre serveur web aura été mis en place.

Pour le moment nous devons nous concentrer sur une dernière chose, nous ne devons pas oublier de modifier le fichier my.cnf se trouvant dans le répertoire suivant :

/etc/mysql/my.cnf

Et qui est le fichier de configuration de notre base de données.

Nous devrons ici modifier la ligne 'bind-address' afin que celle-ci s'accorde avec notre adresse IP (attention cependant à ne pas confondre avec localhost, 127.0.0.1).

24 / 39

Voici notre fichier modifié :

25 / 39

Configuration du serveur web WEBNDF

Le nouveau service de gestion d'application étant répartit en deux serveurs nous allons donc également créer un serveur web fonctionnant sous Apache 2 afin qu'il puisse héberger les pages web permettant un accès graphique aux visiteurs.

Nous allons donc depuis notre autre machine mettre à jour nos paquets, toujours avec la commande suivante,

apt-get update

Installation d'Apache

Puis nous y installerons le paquet Apache 2,

apt-get install apache2

En nous rendant ensuite dans notre navigateur, nous saisissons localhost ou bien 127.0.0.1 dans la barre d'adresse, s'affiche alors :

Nous

confirmant le bon fonctionnement du service.

Par défaut, Apache affiche certaines informations sur les pages par défaut (comme la page d’erreur par exemple) :

26 / 39

On constate ici que le système d’exploitation, la version d’Apache et de PHP sont clairement affichés ce qui n’est pas appréciable dans la mesure où ces informations peuvent servir à un éventuel pirate.

Nous allons donc demander à Apache de ne plus afficher ces informations :

nano /etc/apache2/apache2.conf

Puis nous ajoutons la ligne suivante en fin de fichier :

ServerSignature Off

Et voilà, les informations ont disparues :

Nous allons maintenant activer un module supplémentaire d’Apache :

Le module Rewrite qui nous permettra d’activer la réécriture d’URL (URL rewriting) et donc d’obtenir des URL plus propres plus tard.

Pour cela nous faisons comme ceci,

27 / 39

a2enmod rewrite

On redémarre ensuite le service avec la commande :

Service apache2 restart

Installation de PHP

Nous nous devons également d'installer les packages nécessaires au fonctionnement de PHP, ce qui permettra par la suite de lire les pages web faites par les programmeurs.

Nous installons donc ces derniers avec tout les modules requis :

apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

On va aussi installer PHP-APC (Alternatice PHP Cache) qui va permettre d’accélérer PHP en générant un cache du code PHP.

apt-get install php-apc

On redémarre une fois de plus Apache pour valider les nouveaux réglages.

Notre serveur web est maintenant configuré et prêt à l'emploi.

28 / 39

Importation des pages web et php

Nous allons maintenant importer nos pages web dans le dossier approprié de notre serveur Apache, pour cela nous les récupérons sur le serveur FTP de notre établissement :

et nousles

greffons dans /var/www/ le dossier web par défaut du service :

Bien sûr il est

recommandé d'effectuer cette manipulation en lignes de commande car l'interface

29 / 39

graphique (ou glisser/déposer) ne dispose pas des droits d'accès nécessaires pour effectuer cette opération (à moins de faire un chmod), nous montrons ici les dossiers pour le côté pratique de l'interface.

Une fois avoir déposer ces fichiers nous redémarrons le service Apache et retournons sur notre navigateur, il s'agit alors d'entrer l'adresse de notre boucle local (ou notre adresse IP)pour retrouver les différentes pages que nous avons mises en place :

Nous cliquerons alors sur la page d’accueil afin de voir si le code html fonctionne bel et bien.

La page de connexion se lance alors, nous demandant de nous logger sur le service, nous utiliserons alors un mot de passe ainsi qu'un identifiant d'un des visiteurs présent dans la base.

30 / 39

L'interface est la suivante :

Il nous reste alors un autre détail à régler, il va nous falloir adapter le code php permettant la connexion et l'accès à la base de données, de cette façon l'authentification sera correcte et l'accès à l'application sera fonctionnelle.

Nous allons donc dans :

/var/www/_bdGestiondonnees.lib.php

Et nous changerons les champs renseignant l'hôte, le login et le mot de passe de connexion au serveur de base de données dans un premier temps.

Puis enfin, nous implanterons le nom exacte de la base dans la fonction prévue pour l'activation de la base. (figure suivante).

31 / 39

32 / 39

Nous pouvons alors tester simplement son fonctionnement en rafraîchissant notre page web et en entrant le mot de passe et le login d'un des visiteurs :

Il est alors possible d'utiliser pleinement l'interface, le grant autorisant l'accès à distance auservice, notre serveur web est prêt à être utilisé.

Nous pouvons désormais l'adresser afin qu'ils soit disponible sur le réseau comme suit :

33 / 39

Adressage, routage et importation et paramétrage des commutateurs

Comme nous l'avons vu précédemment nous avons adressé nos deux serveurs selon l'adressage proposé par le cahier des charges, faisons donc un rappel des différents adressages et du schéma :

Adresse IP Masque de sous réseau Passerelle

172.31.0.5 255.255.255.240 172.31.0.1

Adresse IP Masque de sous réseau Passerelle

172.31.0.6 255.255.255.240 172.31.0.1

Selon l'infrastructure réseau et notre façon de procéder, nous avons donc placé les serveurs web et base de base de données sur notre serveur ESXi, nous allons donc les isoler en les connectant à un switch virtuel lui même fonctionnant sous ESXi. Ce même switch sera ensuite relié au commutateur physique COMMDMZ.

Nous allons donc voir les différents paramétrages à effectuer.

34 / 39

Configuration du switch virtuel

Nous allons donc isoler nos deux machines, pour cela il nous suffit de cliquer sur modifier les paramètres de la machine nous arrivons ensuite sur l'interface suivante :

Nous nous rendons sur l'interface de notre serveur (ici le WEBNDF).

Dans Connexion Réseau en bas à droite nous constatons que les différents commutateurssont proposés, ici nous choisirons le switch virtuel VM Network 5.

De cette façon notre machine sera placé dans ce commutateur, nous verrons par la suite comment s'en rendre compte.

La même configuration est à effectuer pour BDNDF afin qu'il soit dans le même réseau quele serveur web.

35 / 39

Nous remarquons alors sur le schéma que nos deux serveurs ont bien été ajoutés :

Cependant notre commutateur ne possède pas encore d'interface réseau, il sera donc impossible d'effectuer la liaison avec le switch physique COMMDMZ par la suite.

Pour cela nous nous rendons dans les paramètres du commutateur vSwitch4 évoluant sur VM Network 5 comme suit :

Nous cliquons sur notre switch et nous nous rendons dans l'onglet Adaptateurs réseau.

36 / 39

Ces adaptateurs font référence au carte réseau présentes sur le serveur ESXi. Nous allons donc choisir une des cartes :

Nous

allons ici choisir la carte réseau vmnic01 (non présente ici car nous l'avons déjà choisie).

37 / 39

Nous remarquons alors que notre switch possède bel et bien l'adaptateur réseau correspondant que nous avons ajouté, il peut donc accéder au réseau.

Nous allons par la suite le connecter à notre COMMDMZ lui même relié au routeur et au proxy. Aucunes configuration de VLAN ou tout autre n'est pour le moment désiré sur le commutateur.

Configuration de COMMDMZ

Nous configurons donc uniquement le VLAN par défaut de notre switch afin qu'il possède une adresse et un masque :

# Renommage du switchSwitch(config)#hostname COMMDMZ

# Affectation ip vlan 1COMMDMZ(config)#interface vlan 1 COMMDMZ(config-if)#ip address 172.31.0.3 255.255.255.240COMMDMZ(config-if)#no shutdownCOMMDMZ(config-if)#exit

38 / 39

Configuration du routeur

La configuration du routeur reste la même que précédemment nous gardons donc exactement la même configuration.

RTROUT(config)#interface fastEthernet 0/0 RTROUT(config-if)#ip address 172.31.0.1 255.255.255.240 RTROUT(config-if)#no shut RTROUT(config-if)#ex RTROUT(config)#interface fastethernet 0/1 RTROUT(config-if)#ip address 172.16.61.5 255.255.0.0 RTROUT(config-if)#no shut RTROUT(config-if)#ex

#DEFAUTRTROUT(config)#ip route 0.0.0.0 0.0.0.0 172.16.253.253

#VLAN 400RTROUT(config)#ip route 172.18.0.0 255.255.255.252 172.31.0.2

#VLAN 300RTROUT(config)#ip route 172.17.0.0 255.255.255.0 172.31.0.2

Nous testons ensuite la communication entre les différents équipements.

Nos tests sont fonctionnels, de même les ping vers les différents réseaux ainsi que le proxy ont bien fonctionné, notre réseau est donc prêt à l'emploi.

39 / 39