I – Contexte :

II – Configuration IP des postes :

Serveur WEB Serveur 2012 Client Windows 7
IP : 192.168.2.150

Passerelle : 192.168.2.254

DNS : 12.168.1.150

IP : 192.168.1.150

Passerelle : 192.168.1.254

DNS : 192.168.1.150

Nom DNS : office.local

IP : 192.168.1.X (DHCP)

Passerelle : 192.168.1.254

DNS : 192.168.1.150

III – Objectifs :

On va tout d’abord paramétrer la DMZ pour filtrer les trames qui entre et qui sortent dans les différents réseaux (WEB et LAN)

On va donc dresser un tableau de filtrage qui représente les autorisations de la DMZ :

(Les chiffres représentés sont ceux du contexte) ; «  » signifie « parle à »

Dialogue autorisé Dialogue interdit
1 2

1 3

1 4

2 3

3 2

4 1

4 2

4 3

2 1

3 1

2 4

3 4

IV – Pourquoi effectuer un filtrage sur la zone DMZ ?

Le filtrage va nous servir à protéger le serveur Web des intrusions tout en le rendant accessible pour ses fonctions principales (Visionner le contenu de la page HTML du serveur, accès à la base de données).

V – Configuration du filtrage:

Tout d’abord il faut vérifier la situation initiale, pour ce faire il faut réalise un ping vers l’extérieur et dans le réseau local. Si les deux répondent c’est que la configuration est correcte.

Les commandes à réaliser dans le terminal :

ping free.fr
ping 192.168.1.150

Etape 1 – Supprimer tout filtrage existant sur notre routeur Debian :

Pourquoi ? Pour partir sur une base saine ou l’on pourra tout choisir a notre guise.

iptables -F

Test : pour tester les modifications il va falloir afficher le contenu de la table, si cette dernière est vide, la commande a réussi.

iptables -L

Etape 2 – Mettre en place la politique par défaut qui consiste à tout bloquer sauf sorties du routeur URANUS.

On bloque toutes trames traversant le routeur:

iptables -P FORWARD DROP

On bloque toutes trames entrant dans le routeur:

iptables -P INPUT DROP

On accepte les trames sortant du routeur:

iptables -P OUTPUT ACCEPT

Test : réaliser un ping vers l’extérieur et dans le réseau local. Si les deux ne répondent pas c’est que la politique par défaut a bien été appliquée.

ping free.fr
ping 192.168.1.150

Etape 3 – Autoriser le Trafic établi

Le trafic établi est la réponse aux trames déjà existantes, il est important de l’autoriser.

Accepter les trames établies pour toutes trames traversant, entrant ou sortant du routeur :

iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

Etape 4 – Nouvelle règle : le LAN parle vers la DMZ et le LAN parle vers le WAN

L’objectif est d’autoriser toutes les trames sortant du LAN afin qu’elles puissent communiquer avec toutes les zones de notre situation initiale.

Accepter les trames traversant le routeur en provenance d’eth0 (LAN) :

iptables -A FORWARD -i eth0 -j ACCEPT

Test :

Réaliser un ping sur le poste client Windows 7 en direction d’internet et de la DMZ, ceux-là doivent fonctionner.

ping free.fr
ping 192.168.1.150

Etape 5 – Règle : le LAN parle au routeur

Le but est d’autoriser le dialogue avec le routeur. (ex : administration du routeur)

Accepter les trames en entrée du LAN vers le routeur :

iptables -A INPUT -i eth0 -j ACCEPT

Test: réaliser un un ping vers le routeur URANUS depuis le poste client Windows 7, ce dernier doit répondre à votre ping.

ping 192.168.1.254

Etape 6 – Règle : la DMZ parle vers le WAN

Quand le serveur web aura besoin d’aller sur internet il pourra envoyer des paquets sur ce dernier, ce qui n’était pas possible auparavant.

Accepter les trames en sortie du DMZ en direction du WAN (internet) :

iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT

Test : Réaliser un ping vers internet depuis le serveur web dans la DMZ.

ping free.fr

Etape 7 – Règle : Autoriser les trames du WAN vers le Serveur WEB

Quand le serveur web envoie des paquets il faut que le destinataire lui réponde, c’est pour cela qu’il est important que ce paramètre soit ajouté au script.

Autoriser les trames traversant du WAN vers la DMZ ayant comme port 80 pour aller en direction du serveur web :

iptables -A FORWARD -i eth1 -o eth2 -d 192.168.2.150 -p tcp --dport 80 -j ACCEPT

Etape 8 – Règle : Autoriser l’accès au serveur DNS depuis le serveur WEB

Cela permettra au serveur web de pouvoir bénéficier de la résolution de noms proposée par le serveur 2012.

Filtrer et accepter toutes les trames traversant de la DMZ vers le LAN ayant comme port 53 via le protocole UDP ayant pour destination le serveur 2012 pour une résolution de nom (DNS) :

iptables -t filter -A FORWARD -i eth2 -o eth0 -d 192.168.1.150 -p udp --dport 53 -j ACCEPT

Ensuite il faut bien sûr ajouter le serveur DNS dans la configuration IP de votre poste Debian (Voir documentation : configuration IP d’un poste Debian)

Une fois que tout cela est fait il faut savoir si le serveur DNS a bien accroché à votre serveur web.

nslookup

# écran va afficher via quel serveur Debian passe. Dans mon cas il s’agit d’office.local (nom du serveur 2012)

Etape 9 – Règle : Autoriser l’accès en consultation au serveur web depuis l’extérieur

Cela consiste à rediriger les trames adressées à l’IP publique du réseau vers le serveur web. Cela permettra à l’avenir d’avoir accès à la page web du serveur web depuis l’extérieur.

Accorder l’adresse IP publique du routeur Uranus pour un accès externe à la page publique du serveur WEB. L’accès se fera comme cela (http://XX.XX.XX.XX:80) :

iptables –t nat –A PREROUTING –i eth1 –p tcp --dport 80 –j DNAT --to-destination 192.168.2.150

Test : se rendre sur une machine à l’extérieur du groupement de réseau et entrer dans la barre d’adresse l’adresse IP de la broche eth1 (comprendre adresse IP publique). Et vous devriez voir la page par défaut de votre serveur web (apache /var/www/index.html).

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

VI – Sauvegarder la configuration d’iptables :

Toutes les lignes que nous avons rentré dans la partie V sont éphémères, c’est-à-dire qu’après un redémarrage de votre routeur Debian elles ne prennent plus effet, il est donc préférable de sauvegarder la configuration d’iptables grâce au paquet iptables-persistent

apt install iptables-persistent

Il suffit d’enregistrer les règles IPv4 dynamique :

BONUS – Création du fichier script de filtrage

Etape 1 – Création du fichier et du dossier

Créer un dossier « scripts » :

mkdir /root/scripts

Création du fichier « script_filtrage » :

nano /root/scripts/scripts_filtrage

Etape 2 – rendre le fichier note en un script

Sur Windows la création d’un script se passe par le biais de la surcouche « bloc-notes » et après on le sauvegarde au format « .bat ». Sur linux c’est formellement la même chose sauf que bloc-notes se surnomme « nano » nous sommes à l’intérieur à présent, il suffit d’y ajouter une première ligne qui définira le type de fichier, dans notre cas nous voulons un script (donc il s’agit d’un « .sh »).

A insérer au début du script :

# !/bin/sh

Etape 3 – insertion de lignes présentées dans la partie V

(PS : les « # » représentent les lignes de commentaires, elles ne sont pas obligatoires mais vous aide à comprendre votre script)

# !/bin/sh
# supprimer le filtrage
  iptables -F
# politique par defaut: on bloque tout sauf output
  iptables -P FORWARD DROP
  iptables -P INPUT DROP
  iptables -P OUTPUT ACCEPT
# trafic etabli autorise
  iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
  iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
  iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
# le LAN parle vers la DMZ et le LAN parle vers le WAN
  iptables -A FORWARD -i eth0 -j ACCEPT
# le LAN parle au routeur
  iptables -A INPUT -i eth0 -j ACCEPT
# la DMZ parle vers le WAN
  iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
# redirection ip-pub/serveur web
  iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.150
# autorise les trames rediriges du WAN vers le serveur web
  iptables -A FORWARD -i eth1 -o eth2 -d 192.168.2.150 -p tcp --dport 80 -j ACCEPT
# Acces au DNS depuis le serveur WEB
  iptables –t filter –A FORWARD –i eth2 –o eth0 –d 192.168.1.150 –p udp --dport 53 –j ACCEPT

Il est entièrement possible d’appeler ce script au démarrage du poste par exemple.




Catégories : UNIX/Linux

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *