====== SISR2 - Séance 9 ====== Mise en oeuvre d'un routeur filtrant dans une configuration à 3 réseaux ===== Prérequis ===== ==== Schema ==== {{:routeur-3.png|}} ==== les machines ==== === un routeur Linux Debian Squeeze PF (machine virtuelle VirtualBox) avec 3 cartes réseau === * carte 1 (bridgée) : connectée au réseau externe représentant l'internet : 192.168.0.200/24 * carte 2 (réseau interne **dmz**) : connectée à la DMZ : 172.16.0.1/16 * carte 3 (réseau interne **local**) : connectée au réseau interne : 10.0.0.1/16 === un client interne linux Debian cli === * carte 1 : réseau interne **local** * paquets : lynks, lynx, tcpdump, nmap === un serveur web srvweb linux Debian dans la DMZ === * carte 1 : réseau interne **dmz** * paquets : apache2, ssh, lynks, lynx, tcpdump, nmap, === un client externe cliext linux Debian === * carte 1 : bridgée : 192.168.0.x * paquets : lynks, lynx, tcpdump, nmap ===== Objectifs ===== * assurer la NAT pour les machines du réseau local * donner la possibilité d'accéder au serveur srvweb en http et ssh depuis partout * les machines srvweb et pf doivent etre capable de récuperer des paquets sur les depots debian et de les installer * autoriser les requetes DNS sortantes pour toutes les machines * la machine parefeu PF doit etre accessible en ssh * tous les autres flux sont bloqués ==== Remarques générales ==== * il est impératif de repérer les chaines concernées par la modification avant d'utiliser **iptables** * on pourra utilser **iptables -L** pour vérifier l'effet produit * on pourra également utiliser **nmap** depuis le bon endroit ==== Etape 0 : vérification de la connectivité ==== * aucune couche de filtrage sur PF * chacune des 3 machines doit être capable de pinguer l'interface de **PF** située sur le même réseau ==== Etape 0-bis : activation du routage sur PF ==== * vérifier les passerelles par défaut pour chacune des machines * cli : * srvweb : * cliext : * PF : * activer le routage * tester les ping * cli → srvweb * cli → cliext * srvweb → cli * srvweb → cliext * cliext → cli * cliext → srvweb ==== Etape 1 : configuration de base du parefeu – on bloque tout ==== * créer le script **fw.sh** dans **/root/tppf** (on devra créer le répertoire **tppf** dans** /root**) * politique par défaut (DROP), remise à zéro des chaines * vérifier avec **iptables -L** * vérifier les ping ==== Etape 2 : on autorise l'accès SSH à la machine PF ==== * modifier le script **fw2.sh** dans **/root/tppf** * indiquer les chaines concernées * tester en se connectant en ssh depuis **cli**, **cliext** et **srvweb** ==== Etape 3 : on autorise les requetes DNS et les installations de paquets (HTTP et FTP) depuis la machine PF ==== * modifier le script **fw3.sh** dans **/root/tppf** * indiquer les chaines concernées * autoriser les requetes DNS depuis PF, verifier avec host ou nslookup * autoriser les requetes http et ftp sortantes, tester avec aptitude update ==== Etape 4 : mettre en oeuvre la NAT pour le réseau local ==== * modifier le script **fw5.sh** dans **/root/tppf** * vérifier l'accès à une page web avec **lynx http://10.121.32.6** ==== Etape 5 : on autorise les requetes DNS sortantes pour toutes les machines ==== * modifier le script **fw4.sh** dans **/root/tppf** * indiquer les chaines concernées * autoriser les requetes DNS depuis le reseau **local**, tester avec host ou nslookup depuis **cli** * autoriser les requetes DNS depuis le reseau **dmz**, tester avec host ou nslookup depuis **srvweb** ==== Etape 6 : permettre l'acces web et ssh au serveur srvweb ==== * modifier le script **fw6.sh** dans **/root/tppf** * vérifier l'accès à une page web avec **lynx http://172.16.0.2** depuis **cli** * vérifier l'accès à une page web avec **lynx http://172.16.0.2** depuis **cliext** ==== Etape 7 : permettre l'installation de paquets sur le serveur srvweb ==== * modifier le script **fw7.sh** dans **/root/tppf** * vérifier avec **aptitude update** ==== Etape 8 : interdir les pings venant de l'extérieur ==== * modifier le script **fw8.sh** dans **/root/tppf** * tester