Installation VMware Pont-Filtrant Virtuel (Virtual DMZ)

logo

L’installation d’une DMZ sur des serveurs esx est souvent floue, comment sécurisé efficacement une DMZ sur des serveurs virtuels sans mettre en péril l’infra complète ?

Je vous propose dans ce bref tuto de créer une plateforme complète afin d’installer une DMZ totalement sécurisée et virtuelle, je m’appuierai sur la distribution de firewall Pfsense permettant de virtualisé des “boîtiers” de sécurité complet.

Dans un premier temps nous installerons un pont-filtrant permettant de sécurisé le flux en direction de la DMZ, puis nous installerons ensuite le firewall le dernier rempart entre votre DMZ et votre LAN interne.

  • Le pont filtrant c’est quoi

Hop une définition copier/coller qui va bien :

Un pont est un équipement réseau qui permet de relier deux sous-réseaux de manière totalement transparente. Pour ceux qui connaissent un peu le modèle OSI, il effectue une interconnexion au niveau 2, c’est-à-dire qu’il travaille au niveau des trames.
En gros, un pont écoute toute l’activité de chaque sous-réseau auquel il est connecté, les stocke en mémoire et les redirige vers le (ou les) sous-réseaux concernés.
Il n’a pas besoin d’adresse MAC (donc pas besoin d’adresse IP non plus) pour fonctionner, et est donc totalement indétectable.

passons donc a la configuration a proprement parlé afin de schématisé au mieux de flux de données provenant d’internet voici un petit schéma

Internet <->  ISP router <-> Front-end <->  DMZ <->  Back-end <-> Lan network

le pont-filtrant est appelé Front-end et le firewall est appelé Back-end

  • Configuration de VMWARE

La configuration Vmware nous oblige à configurer 2 vswitch qui séparerons 2 VLANs physiques,

  • 1 VLAN nommé VLAN 101 qui n’aura pas d’adressage, il sera relié physiquement au routeur de l’ISP et à nos deux ESX et virtuellement sur une carte du front end
  • 1 VLAN nommé VLAN 103 l’adressage public sera utilisé dans ce VLAN, il contiendra une patte du front-end, la DMZ et une patte du back-end
  • Le pont filtrant sera établie entre le VLAN 101 et le VLAN 103
  • Il faut configurer le promiscious mode sur le vswitch gérant le VLAN 101 et le vswitch gérant le VLAN 103

ca se passe par la http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1004099

  • Configuration Front-end Pfsense

Configuration de la machine virtuelle

La machine virtuelle est déployée depuis un template VMWare :

http://pfsense.mirrors.ovh.net/pfsense.org/downloads/pfSense-2.0.3-RELEASE-amd64.ova

Une fois la machine déployé il faudra prendre soin de lui attribué 3 carte réseau, une dans le VLan INTERNET (101) une dans le VLAN 103 (DMZ) et l’autre dans le Vlan 999 (VM Network pour la configuration)

pfsense01

Il faudra bien repérer les MAC de chaque interface afin de les identifié sur la machine.

pfsense02

 

Dans la configuration de pfSense en routeur transparent nous sommes dans l’obligation d’utiliser l’adresse WAN comme adresse de configuration. C’est une limitation système que nous ne pouvons contourner. Dans l’exemple du dessus nous pouvons donc établir la correspondance suivant :

Carte 00:50 :56 :86 :00 :1b => VM LAN 999 (VM Network) => Carte WAN pfSense => em0

Une fois votre machine configurer et booter vous arriverez sur le menu de configuration :

pfsense03

D’ici nous allons configurer l’interface WAN et uniquement celle-ci, elle ne servira qu’a la configuration de ce pont filtrant les autres interfaces servirons a faire le Bridge entre le vlan101 et le vlan 103

Sélectionné l’option 1 et repérer l’interface WAN grâce à son adresse MAC pour moi il s’agit de l’interface em0

A la question de création de VLAN mettre no

pfsense04

A la question

pfsense05

Je réponds em0 afin d’attribué l’interface 00 :1b connecter dans le VM Network à l’interface WAN

pfsense07

Maintenant l’adresse WAN est la seule configurée et vous devez obtenir une IP du DHCP server (si configuré dans votre VLAN)

pfsense08

Nous allons fixer cette adresse avec l’option 2

pfsense09

Une fois cette configuration faite vous pourrez vous connecter à l’interface web de configuration, mais uniquement depuis le VLAN 999 (les routes de retours pour les autres VLAN n’existent pas encore)

Connexion avec le user login par défaut admin : pfsense renseigner les différents paramètres, mettre en adresse LAN 0.0.0.0/32 (pas d’adressage pour le bridge)

Une fois que cette première étape de configuration est faite vous devrez recommencer les premières afin de désactiver l’interface LAN fraichement configuré.

Enfin vous aurez accès à l’interface web

pfsense10

Configuration de l’Antilockout

Premièrement nous allons créer une règle d’antilockout sur l’interface WAN, elle permettra l’accès à l’interface sur le port 80 et 443 pour la conf, nous devons explicitement en créer une nouvelle car celle par défaut va migrer sur l’interface LAN aussitôt celle-ci up

Dans Firewall => Rules

pfsense11

Configuration de l’interface WAN –Conf – VLAN 999

Sur l’interface WAN nous allons devoir désactiver une option tout en bas

pfsense12

A partir de la vous devriez etre capable de vous connecter à votre interface de conf depuis n’importe quel VLAN

Configuration de l’interface LAN – Internet – VLAN 101

L’interface LAN correspond au VLAN 101 c’est-à-dire ce qui est branché avec votre routeur ISP, ce qui est exposé aux réseaux extérieur, nous allons activer cette interface sans lui assigné d’adresse, elle n’en a pas besoin, tout le flux est bloqué par défaut à part certain ports :

Interfaces> assign > sélectionner le ‘+’ > vérifier que l’adresse mac correspond avec la carte réseau dans le VLAN 100 et faite SAVE

Ensuite dans interfaces > LAN

pfsense13

 

Configuration de l’interface OPT1 – DMZ – VLAN 103

Comme pour l’interface LAN nous allons activer l’interface OPT1 qui sera le lien avec la DMZ public

Interfaces > assign > le signe ‘+’ > vérification une nouvelle fois de la MAC address et SAVE

Interfaces > OPT1

pfsense14

 

Configuration Bridge LAN-OPT1

Interfaces > assign > onglet bridges > ‘+’

Sélectionner l’interface LAN et OPT en se servant de la touche CTRL du clavier puis SAVE

pfsense15

Mise en place du « Filtering Bridge »

Rendez vous dans System > advanced et sélectionner System Tunables

Repérer la ligne :  “net.link.bridge.pfil_bridge”

Double cliquer dessus pour l’éditer à une valeur de 1  et Appliquer

pfsense16

Une fois cette configuration faite vous n’aurez plus qu’à établir vos règles sur les différentes interfaces.

Les règles par défaut sont de tout autorisé sur l’interface OPT1 (sortie de DMZ) et de filtrer tout sur l’interface LAN (tout bloqué sauf certain paquets)

 

 

Installation de sondes de Monitoring VMWare sur Centreon/Nagios

Suite à mon billet d’installation sur Nagios j’ai dernièrement mis en place des sondes de surveillance dans l’infra de mon entreprise, étant donner que j’ai pas mal chercher et pas mal galérer pour faire cette configuration je vous met ici les différentes étapes que j’ai suivi, en esperant que cela puisse vous aider.

Ce plugin est développé par la société OP5 et est disponible en version OPEN SOURCE pour les utilisateurs de Nagios. J’ai réalisé l’installation sur une Ubuntu 10.10

Installation des dépendances

Tout d’abord afin de préparer la mise en place de ce plugin nous allons devoir télécharger et installer plusieurs dépendances :

http://pastebin.com/embed_js.php?i=ZAU1p33e

Ensuite nous allons devoir installer le SDK VMWare correspondant à notre version de Vsphere (ici 4.1) il est disponible sur le site de VMWARE il vous faudra un compte pour le télécharger une fois télécharger transférer le sur votre machine (WinSCP)

http://www.vmware.com/support/developer/viperltoolkit/

http://pastebin.com/embed_js.php?i=Ks7kZUwx


Suivez les instructions à l’écran pour procéder à l’installation du SDK

Installation du plugin

Le plugin est disponible sur NagiosExchange

http://exchange.nagios.org/directory/Plugins/Operating-Systems/*-Virtual-Environments/VMWare/check_vmware_api/details

Il suffira de télécharger ce plugin et de le coller dans le répertoire par défaut de vos plugins Nagios /usr/local/nagios/libexec

Il faudra aussi le rendre exécutable :


http://pastebin.com/embed_js.php?i=FJJWQprq

Création du compte de monitoring

Afin de se connecter à votre vCenter pour récupérer les informations vous aller devoir créer un compte en lecture seule sur votre infrastructure. Pour cela dans votre domaine AD créer un utilisateur Monitoring et attribué le en lecture seule sur votre vCenter :

check_vmware_api
check_vmware_api2
check_vmware_api3

Dans l’onglet permission sélectionner Read-Only

Test du Plugin

Vous pouvez dès à présent tester votre plugin avec une commande simple depuis votre serveur de monitoring

check_vmware_api4

-D : nom dns ou adresse IP de votre vCenter

-u : Utilisateur Read-Only vCenter

-p : mot de passe

-l : Commande à monitorer

Comme vous le voyez cette commande dois vous renvoyé une réponse qui vous indique le pourcentage d’utilisation de processor de votre vCenter.

  • Création des commandes Centreon

Depuis Centreon nous allons maintenant configurer des commandes nous permettant de questionner notre ferme VMWare autant les machines virtuelle que les hôtes ESX.

Dans un premier temps nous allons définir des variables utilisées pour ces commandes, rendez-vous dans Centreon ==> Configuration ==> Nagios ==> (Menu de gauche) ressources. Cliquez sur « Add ». Puis entrez dans « Resources Name » : $USER10$ dans « MACRO Expression » : Nom d’utilisateur ESXi, cliquez sur « Save ». Répétez cette opération pour chaque élément présent dans le tableau ci-dessous :

Resources Name

MACRO Expression

$USER11$

Mot de passe ESXi

$USER12$

IP du vCenter

$USER13$

Nom d’utilisateur du vCenter

$USER14$

Mot de passe du vCenter

  • Commandes destinées à questionner les VMs

check_vcenter_vm_cpu

$USER1$/check_vmware_api.pl -D $USER12$ -u $USER13$ -p $USER14$ -N $HOSTALIAS$ -l cpu -s usage -w $ARG1$ -c $ARG2$

!80!90

Vérifie la charge CPU de la machine virtuelle – Argument : niveau WARNING et CRITICAL (en %)

check_vcenter_vm_mem

$USER1$/check_vmware_api.pl -D $USER12$ -u $USER13$ -p $USER14$ -N $HOSTALIAS$ -l mem -s usage -w $ARG1$ -c $ARG2$

!80!90

Vérifie la charge mémoire des machines virtuelles – Argument : niveau WARNING et CRITICAL (en %)

check_vcenter_vm_net

$USER1$/check_vmware_api.pl -D $USER12$ -u $USER13$ -p $USER14$ -N $HOSTALIAS$ -l net -s usage -w $ARG1$ -c $ARG2$

!102400!204800

Vérifie la charge réseaux des machines virtuelles – Argument : niveau WARNING et CRITICAL (en Kbps)

check_vcenter_vm_swap

$USER1$/check_vmware_api.pl -D $USER12$ -u $USER13$ -p $USER14$ -N $HOSTALIAS$ -l mem -s swap -w $ARG1$ -c $ARG2$

!500!1000

Vérifie la swap des machines virtuelles – Argument : niveau WARNING et CRITICAL (en MB)

check_vcenter_datastore

$USER1$/check_vmware_api.pl -D $USER12$ -u $USER13$ -p $USER14$ -N $HOSTALIAS$ -l vmfs -s $HOSTALIAS$ -w “$ARG1$:” -c “$ARG2$:”

!15%!10%

Vérifie l’espace libre sur le datastore – Argument : espace libre WARNING et CRITICAL (en %)

  • Commande destinées à questionner les hôtes

check_vcenter_esx_health

$USER1$/check_vmware_api.pl -D $USER12$ -H $HOSTALIAS$ -T 20 -u $USER13$ -p $USER14$ -l runtime -s health

Vérifie l’Etat de santé de vos serveurs ESX

check_vcenter_esx_io

$USER1$/check_vmware_api.pl -D $USER12$ -H $HOSTALIAS$ -T 20 -u $USER13$ -p $USER14$ -l io

Vérifie les entrée/sortie de votre serveur ESX

check_vcenter_esx_net

$USER1$/check_vmware_api.pl -D $USER12$ -H $HOSTALIAS$ -T 20 -u $USER13$ -p $USER14$ -l net

Vérifie l’état des vmnic de vos serveurs ESX, indique si l’une d’elle est déconnectée

check_vcenter_esx_temperature

$USER1$/check_vmware_api.pl -D $USER12$ -H $HOSTALIAS$ -T 20 -u $USER13$ -p $USER14$ -l runtime -s temperature

Vérifie les sondes de températures sur vos serveurs ESX

check_vcenter_esx_vmfs_local

$USER1$/check_vmware_api.pl -D $USER12$ -H $HOSTALIAS$ -T 20 -u $USER13$ -p $USER14$ -l vmfs -s $ARG1$ -w $ARG2$  -c $ARG3$

!esx02:local!75%!80%

Vérifie l’espace libre sur le datastore en local

Et voila pour la configuration, j’ai réaliser quelques commandes pour le moment et tout fonctionne correctement.

Concevoir un site comme celui-ci avec WordPress.com
Commencer