[TUTORIEL] : Mise en place d'un serveur web en DMZ

Ce forum est dédié à PF Sense, une distribution open-source, basée sur FreeBSD et destinée à la mise en place d'un routeur firewall. Une description est donnée sur le portail phénIXUS : http://www.ixus.net/pfsense-2/.

[TUTORIEL] : Mise en place d'un serveur web en DMZ

Message par jdh » 13 Déc 2011 14:28

Une problématique très simple, très courante et à la portée du premier débutant venu ! (enfin un débutant qui réfléchit un peu quand même)


Mon besoin :
Je veux installer un petit serveur web à partir du réseau de l'entreprise pour publier avec Joomla (cms).

Mon contexte :
- une ligne adsl avec un box (qui gère le dns dynamique, 192.168.1.1),
- un firewall pfSense 2.0 en config WAN+LAN + une carte réseau disponible,
- WAN en config statique, relié par câble croisé avec la box, laquelle configure l'@ip WAN comme "dmz"
- LAN : 192.168.44.1/24, pfSense a le DNS forwarder activé pour le contrôleur de domaine Windows interne,
- (pfSense n'est pas le fournisseur dhcp du réseau local LAN -> c'est le DC qui fait le job)

Les étapes à réaliser :

- activer la carte lan de pfSense comme DMZ : 192.168.144.1/24 + DNS forwarder actif,
- création d'un alias "srvweb" (host) = 192.168.144.10
- création de 3 règles dans l'onglet DMZ (Firewall > Rules > onglet DMZ) :
--> accept / proto: udp / source: srvweb / destination: DMZ address / port: 53 / le srvweb accède au dns
--> accept / proto: tcp / source: srvweb / destination: any / port: 80 (http) / le srvweb peut se mettre à jour par http
--> accept / proto: icmp/echo request / source: srvweb / destination: any / le servweb peut pinguer
- création de 2 règles dans l'onglet LAN (Firewall > Rules > onglet LAN) :
--> accept / proto: tcp / source: LAN subnet / destination: srvweb / port: 22 (ssh) / administration en ssh
--> accept / proto: tcp / source: LAN subnet / destination: srvweb / port: 80 (http) / acces http à srvweb

- installer une Debian Squeeze en netinstall avec un câble croisé sur la carte DMZ de pfSense,
- adresse ip 192.168.144.10/24 + dns et gateway 192.168.144.1 = DMZ de pfSense,
- vérification : ping 192.168.144.1, ping 192.168.1.1, ping 173.194.66.104, ping http://www.google.fr,
- vérification : apt-get update,
- install ssh,
- vérification accès ssh depuis LAN,

- install apache2, mysql, php5
- vérification accès http depuis LAN,
- install Joomla
- à partir d'une station du LAN, suite de la config de Joomla (en http), ...

- création d'un règle NAT (Firewall > Nat > onglet Port forward) :
--> interface: WAN / destination: WAN address / destination port: http / redirect: srvweb / redirect port: http

- test depuis l'extérieur avec http://(nom dynamique)


Activer une interface supplémentaire dans pfSense plus 1 alias et 6 règles (3 en DMZ, 2 en LAN et 1 NAT).
C'est quand même pas très long !

Le plus long pour moi, c'est bien sûr l'install de Joomla !


Merci pour vos réactions ...
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
jdh
 
Message(s) : 731
Inscription : 02 Nov 2011 00:36
Localisation : Nantes - Angers

Re: Tuto : Mise en place d'un serveur web en DMZ

Message par jibe » 13 Déc 2011 23:52

Salut,

Bien, bien ! (enfin.. J'ai lu en diagonale : c'est l'impression d'ensemble, pas une relecture)

Je dirais quand même qu'un petit schéma serait bienvenu, même si ça reste assez basique comme architecture. Maintenant qu'Argenlos nous a fait une super bibliothèque, il ne faut pas s'en priver ;)

Pourquoi pas sur le wiki ?
jibe. En vert ou en rouge-orangé : je modère - En noir ou autre couleur : je parle à titre personnel.

L'idée que quand on n'a pas quelque chose, on puisse se bouger pour l'avoir, c'est une démarche qui parait absolument normale pour les gens du Logiciel Libre et totalement surnaturelle pour tout le reste de la population. (Benjamin Bayart)
jibe
 
Message(s) : 943
Inscription : 09 Sep 2011 23:19
Localisation : Haute Savoie

Re: Tuto : Mise en place d'un serveur web en DMZ

Message par jdh » 14 Déc 2011 01:53

Un schéma ? Le voilà :

Les règles créées dans la config pfSense sont indiquées par des flèches de flux (en pointillé avec flèches pour indiquer le sens).

Ne pas oublier que la règle se créé dans l'onglet de l'interface d'arrivée dans le pfSense !
(et qu'une règle NAT génèrera une règle WAN.)

Il faut noter qu'un serveur en DMZ, c'est, outre les tests et l'install de celui-ci, juste 3 règles DMZ + 1 règle NAT + 2 règles LAN !
Cela vaut le coût de pensez simple !

Je résume :
- le serveur web en DMZ cherche le dns avec le firewall pfSense (DMZ address),
- le serveur web en DMZ peut accéder à Internet avec http (pour maj) et ping (pour test),
- le serveur web est accessible depuis l'extérieur en http (règle NAT),
- depuis le LAN, on peut accéder au serveur web en DMZ par http et par ssh.
Pièces jointes
Serveur en DMZ.png
Serveur en DMZ
Serveur en DMZ.png (112.21 Kio) Consulté 3435 fois
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
jdh
 
Message(s) : 731
Inscription : 02 Nov 2011 00:36
Localisation : Nantes - Angers

Re: Tuto : Mise en place d'un serveur web en DMZ

Message par jibe » 14 Déc 2011 09:36

Salut,

Super Image Merci jdh Image

Même si je persiste à penser que ce petit tuto aurait bien sa place dans le wiki, je le post-it comme modèle de présentation, particulièrement pour la description des besoins. J'attire l'attention sur le fait que la solution technique découle des besoins, et même si elle figure dans le titre (pour un tuto, c'est quand même mieux ;) ), elle n'est pas choisie avant analyse des besoins.

Ce n'était pas le but ici et ça aurait alourdi inutilement le tuto, mais la démarche amenant au choix de cette solution parmi les diverses possibles aurait pu être décrite. Elle l'aurait certainement été si le but premier n'avait pas été de faire un tuto sur l'installation d'un serveur web en DMZ, mais sur la manière d'aborder un projet informatique.
jibe. En vert ou en rouge-orangé : je modère - En noir ou autre couleur : je parle à titre personnel.

L'idée que quand on n'a pas quelque chose, on puisse se bouger pour l'avoir, c'est une démarche qui parait absolument normale pour les gens du Logiciel Libre et totalement surnaturelle pour tout le reste de la population. (Benjamin Bayart)
jibe
 
Message(s) : 943
Inscription : 09 Sep 2011 23:19
Localisation : Haute Savoie

Re: [TUTORIEL] : Mise en place d'un serveur web en DMZ

Message par jdh » 14 Déc 2011 10:07

En effet !

Mon besoin :
Je veux installer un petit serveur web à partir du réseau de l'entreprise pour publier avec Joomla (cms).

Petite analyse :
L'entreprise utilise déjà un firewall pfSense -> pas besoin de décrire les règles existantes qui ne joueraient pas !
Le serveur va utiliser Debian (parce que je connais bien : ça compte d'être à l'aise !)
Le serveur devra être isolé des PC de l'entreprise mais accessible aussi de ce réseau -> création d'une DMZ
Pour la sécurité, le minimum de trafic réseau doit être autorisé
Le serveur doit résoudre dns (comme n'importe quel pc : ip, masque, dns, gateway) -> fourni par pfSense (dns forwarder)
Le serveur doit se mettre à jour -> debian : deb http -> accès à Internet pour http
Test de connexion réseau correcte -> test de ping -> autoriser ping sortant
Depuis le lan, ssh pour accéder au serveur + http pour joomla -> règles onglet LAN

Résumé schéma :
- zone DMZ : isolation
- adressage (dmz<>lan !)
- serveur en dmz : doit être ok niveau réseau (dns+ping)

Résumé règles :
- srv -> firewall / dns : résoudre le dns
- srv -> internet /http : mise à jour
- srv -> internet / ping : test de connectivité
- lan -> srv / ssh : ligne de commande
- lan -> srv / http : utilisation locale de joomla
- internet -> srv / http : utilisation distante de joomla
(règles 1-2-3 : onglet DMZ puisque srv est en dmz)
(règles 4-5 : onglet LAN)
(règle 6 : règle NAT : je ne m'occupe pas de la règles WAN créé automatiquement)
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
jdh
 
Message(s) : 731
Inscription : 02 Nov 2011 00:36
Localisation : Nantes - Angers

Re: [TUTORIEL] : Mise en place d'un serveur web en DMZ

Message par jdh » 14 Déc 2011 14:43

Franck78 m'a passé un MP avec une remarque parfaitement juste (comme toujours !).


Perso, j'ajoute TOUJOURS une règle sur l'interface WAN d'acceptation des ping :

Firewall > Rules > onglet WAN :
accept / proto: icmp/echo request / source: any / destination: WAN address

L'intérêt est, à distance, de vérifier si le firewall répond : un ping ne donne pas plus d'information.
Je ne crois pas que l'absence de réponse à un ping permette d'être plus en sécurité.
(Attention, je n'autorise QUE icmp/echo request=8, et pas d'autres type de paquets icmp ! Sous-entendu : d'autres types pourraient donner des informations !)

C'est d'ailleurs pourquoi, même initialement en WAN+LAN, il y a besoin de configurer la fonction dmz de la box.

Des sites parfaitement sérieux répondent au ping sur le www. : essayez ping www.google.fr, ...


Ce tutoriel simple permet d'installer, en toute sécurité, un serveur web (ou autre) dans une DMZ.
Il n'aborde pas la sécurité locale du serveur que l'on pourrait/devrait ajouter ...
Comme tout tutoriel, chacun doit s'inspirer et prendre un recul par rapport aux différentes étapes ...
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
jdh
 
Message(s) : 731
Inscription : 02 Nov 2011 00:36
Localisation : Nantes - Angers


Retour vers pfSense

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron