Université Paris Est Marne la Vallée Institut Gaspard Monge Master 2 TTT

Sécurité Réseau TP : Firewall sous Linux

Master 2 TTT

2011/2012

1. Contexte
1.1 Objectif Le but de ce TP est de concevoir une zone démilitarisée permettant à une entreprise de rendre accessible un serveur web à partir d'Internet. Ce serveur web est placé sur une zone neutre (DMZ), indépendante du réseau local de l'entreprise. En cas d'attaque venant d'Internet, seul le serveur web sera accessible. Le firewall utilisé fonctionne sous Linux avec les règle de filtrage iptables. Ce TP est composé de trois parties : • configuration de la plate-forme sans mise en oeuvre de sécurité particulière ; • installation et configuration du serveur http Apache : • mise en oeuvre de la DMZ, configuration des règles de filtrage. Nous utiliserons le logiciel de virtualisation Netkit pour notre TP. Pour cela nous créons dans notre répertoire de travail un sous-répertoire tp_dmz dans lequel nous recopions le fichier de configuration des machines virtuelles lab.conf. Ensuite nous créons dans le répertoire tp_dmz les sous-répertoires lan, dmz, internet, firewall répertoires correspondant aux 4 machines virtuelles. 1.2 Cahier des charges: Nous rappelons ici le cahier de charge qui nous a été indiqué. Une entreprise dispose d'un réseau local (machine LAN) et souhaite rendre accessible à partir d'Internet (machine INTERNET) son serveur http (machine DMZ). L'accès entre les différentes machines est géré par le routeur/firewall. Le schéma suivant présente l'architecture du réseau avec le plan d'adressage:

Fig1: Architecture Physique et Logique.

• • • • • • • • • • •

Le réseau (LAN) contient les machines du réseau local. Il doit permettre l'accès à Internet des utilisateurs (vers un serveur http). Il doit permettre le ping d'une machine vers une machine d'Internet (message echo request) Il doit accepter en retour la réponse du ping (echo reply) Il ne doit pas autoriser une demande de connexion à partir d'une machine venant d'Internet Les machines du réseau LAN ne doivent pas être visible d'Internet Les machines du réseau LAN doivent pouvoir accéder au serveur web de l'entreprise localisé dans la DMZ Le réseau coté DMZ contient les machines accessibles à la fois d'Internet et du réseau LAN. La machine INTERNET doit pouvoir accéder au serveur http de l'entreprise se trouvant dans la DMZ. Pour des raisons de sécurité, on ne souhaite pas que la machine INTERNET accède au serveur Web directement, avec l'adresse IP du serveur web. Pour cela, il faut mettre en place un reroutage de port pour que toute connexion arrivant sur l'interface externe de la machine ROUTEUR, vers le port standard du serveur http soit redirigée vers le serveur http interne de l'entreprise (sur DMZ). Dans le sens (DMZ) vers (INTERNET) et (LAN) vers (DMZ), une translation d'adresse sera réalisée (dans la partie 3).

2. Routage classique
2.1 Mise en œuvre du routage classique Le but de cette partie est de réaliser l'interconnexion fonctionnelle des 4 PC comme indiqué sur la Fig1: Configuration des interfaces Ethernet, activation du routage IP du ROUTEUR/FIREWALL et des PC sans contrôler les accès (pas de règle de filtrage particulière).

- Firewall
Configuration de l'adressage associé aux interfaces Ethernet et configuration du routage

fig2: configuration interface et routage firewall On peut voir sur la fig3 le contenu de la table de routage après configuration. Les réseaux 192.168.10.0/24 ; 192.168.20.0/24 ; 192.168.30.0 sont directement connecté au routeur/firewall. La route par défaut est celle passant par la Gateway 192.168.30.2.

fig3: table de routage firewall. -DMZ Configuration de l'adressage associé à l'interfaces Ethernet et configuration du routage. Le contenu de la table de routage après configuration, montre que le réseaux 192.168.2.0/24 est directement connecté à la DMZ. La route par défaut vers tous les autres réseau est celle passant par la Gateway 192.168.20.1/24

fig4:

-LAN Configuration de l'adressage associé aux interfaces Ethernet et configuration du routage

Le contenu de la table de routage après configuration, montre que le réseaux 192.168.10.0/24 est directement connecté à la DMZ. La route par défaut vers tous les autres réseau est celle passant par la Gateway 192.168.10.1/24

- INTERNET Configuration de l'adressage associé aux interfaces Ethernet et

Configuration du routage. Le contenu de la table de routage, montre que le réseaux 192.168.30.0/24 est directement connecté au host INTERNET. La route par défaut vers tous les autres réseau est celle passant par la Gateway 192.168.30.1/24.

Après configuration des interfaces et du routage sur les différents équipement, nous vérifions la connectivité entre eux. Pour cela on effectue un ping entre LAN<>DMZ ; LAN <> INTERNET et DMZ<> INTERNET. Ce qui nous permet de conclure une connectivité effective entre eux: • Ping LAN → INTERNET

Ping LAN → DMZ

Ping DMZ → INTERNET

Ping DMZ → LAN

Ping INTERNET → DMZ

Ping INTERNET→ LAN

2.2 Configuration du serveur http Dans cette partie nous configurons le serveur http sur la machine DMZ. Le port TCP d'écoute standard d'un serveur web est obtenu sur le serveur avec la commande: more /etc/services. Nous observons que ce port TCP standard est 80.

Pour la configuration du serveur, dans le fichier /etc/apache2/ports.conf nous changeons la directive Listen à 8080 permettant au serveur d'écouter sur le port 8080. Nous ajoutons aussi la directive ServerName 192.168.20.2 dans le fichier /etc/apache2/apache2.conf.

3. Mise en oeuvre de la plate-forme sécurisée
Pour sécuriser la plate-forme, nous allons mettre en place un firewall sur le routeur et définir les règles de filtrage. Nous allons grâce à cela déterminer les flux autorisés en fonction de l'adresse du réseau, du port tcp, source ou destination. Pour mettre nos règles de filtrage en place il est impératif de réaliser une configuration par défaut du firewall qui rejette tout flux dans les règles INPUT, OUTPUT et FORWARD. Ce qui nous permettra de répondre à la règle générale du filtrage qui veut que tout ce qui n'est pas explicitement autorisé est interdit. La Syntaxe des trois filtres obtenu sont:

L'état d' iptables est donnée par iptables -L Dans toutes les tables aucun flux n'est autorisé.

3.1 Filtrage entre LAN <->DMZ Le but de cette partie est de réaliser une translation d'adresse pour toute adresse venant du LAN vers le réseau de la DMZ. Pour cela : Nous ajoutons les filtres permettant d'accepter sur l'interface (eth0) du firewall coté LAN un ping (porter par le protocol ICMP) venant du réseau (LAN). Les règles sont:

Nous ajoutons aussi les filtres permettant d'accepter sur l'interface (eth1) du firewall coté DMZ un ping venant du DMZ.

Pour pouvoir pinger la DMZ à partir du LAN il faut établir une règle de forwarding sur le firewall du réseau LAN (192.168.10.0/24 8.10.0/24) vers la DMZ(192.168.20.0).La règle est établit dans les deux sens de communication.

Nous pouvons maintenant ajouter une règle sur le firewall permettant de faire de la translation d'adresse entre un PC du LAN et la DMZ. La règle ajoutée est donnée par la syntaxe suivante:

POSTROUTING car se sont les adresses sources des paquets réseau que nous souhaitons modifier. Ainsi, toutes les connexions qui sont faites depuis l'intérieur du réseau local (192.168.10.0) sembleront provenir de la machine 192.168.20.0 MASQUERADE pour permettre à toutes les adresses du réseau privé d'utiliser la même adresse public. Après avoir exécuté la syntaxe nous exécutons sur le pc DMZ la commande tcpdump –i eth1 pour capturer les trames échangées, à l'issue d'un ping 192.168.20.2 provenant du LAN. La séquence des trames obtenue sur le PC DMZ avant la mise en place de la translation est la suivante:

On remarque que l'adresse source est effectivement celui du Pc LAN (192.168.10.2) initiateur du ping.

La séquence des trames obtenue sur le PC DMZ après la mise en place de la translation est la suivante :

Nous constatons que l'adresse source du ping est 192.168.20.1 (interfaces du firewall coté DMZ). Ce qui montre que l'adresse du LAN (192.168.10.2) qui a initié le ping a été translaté en 192.168.20.1 Q13 : Maintenant nous allons proposer les règles de filtrage adaptées pour une connexion du LAN à destination du serveur http, sur le port d'écoute sur serveur http.

3.2 Filtrage (LAN) <->(INTERNET) Le but de cette partie est de réaliser la configuration des règles de filtrage pour accepter un ping et un accès à un serveur web situé sur internet et de réalisera une translation d'adresse pour toute machine ayant comme adresse source le réseau LAN et comme réseau destination le réseau INTERNET. Nous devons pour cela autoriser le ping (icmp) et le service http porter par le protocole tcp entre LAN <>INTERNET et translater toutes les adresses du LAN de sorte à ce qu'elles soient vu comme venant de l'interface 192.168.30.1. Les commandes sont les suivantes :

Après un ping initié par le PC LAN on peut bien observer sur le Pc INTERNET l'adresse 192.168.30.1 correspondant à l'adresse de l'interface eth2 du firewall côté Internet. Ce qui est la preuve de la translation d'adresse et de l'autorisation configurée du ping.

3.3 Filtrage (DMZ)<->(INTERNET) Le but de cette partie est de permettre l’accessibilité du serveur http de l'entreprise à partir du pc INTERNET uniquement avec une connexion url : http://192.168.30.1 Pour cela, nous mettrons en place une translation d'adresse du réseau DMZ vers le réseau INTERNET et un forwarding de port pour que toute connexion http venant d'INTERNET vers la machine 192.168.30.1 soit redirigée vers la machine 192.168.20.2, et vers le port d'écoute du serveur http (sur DMZ). Syntaxe pour le forwarding des flux web : Iptables -A FORWARD -o eth2 -p tcp –source-port 8080 -j ACCEPT Iptables -A FORWARD -o eth1 -p tcp –destination-port 8080 -j ACCEPT Pour la translation d'adresse, nous utilisons PREROUTING et DNAT car il s'agit de modifier sur le firewall les adresses de destinations des trames avant de les router vers le serveur de la DMZ.

CONCLUSION A l'issue de ce TP nous avons acquis les capacités à mettre en place des firewall basé à la fois sur les règles de filtrage et sur la translation d'adresse sous linux.