TP TP Firewall sous Linux

Transcription

TP TP Firewall sous Linux
TP Firewall sous Linux
– IR1 –
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ègles
règle de
filtrage iptables.
Ce TP est composé de trois parties :
• configuration
on 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.
Liste du matériel nécessaire:
• 3 PC sous Linux avec une carte réseau (LAN, DMZ et INTERNET)
• 1 PC sous Linux avec 3 cartes réseaux (ROUTEUR/FIREWALL)
• 3 câbles croisés
A défaut de matériel suffisant, vous pouvez simuler le réseau avec le logiciel de virtualisation Netkit (http://www.netkit.org/)
Pour cela vous créez dans votre répertoire de travail un sous-répertoire tp_dmz dans lequel
quel vous recopierez le fichier de
configuration des machines virtuelles lab.conf. Créer dans le répertoire tp_dmz les sous-répertoires
répertoires lan, dmz, internet, firewall
correspondant aux 4 machines virtuelles.
Dans le répertoire tp_dmz, lancez le programme lstart permettant de démarrer les 4 machines virtuelles
virtuel sous Netkit (lhalt pour
toutes les arrêter ou vhalt firewall pour arrêter une seule machine).
Spécificités Linux :
Sous Linux, la translation d'adresse (NAT) correspond à la fonction IP Masquerade. Rappelons que cette fonction permet
d'utiliser un adressage IP indépendant pour un réseau local. Cette fonction est activée sur le routeur en sortie du réseau local.
l
Toute machine A du réseau local accédant au réseau Internet voit sont adresse IP remplacée par l'adresse IP du routeur coté
internet. Ainsi, A n'est pas visible d'Internet, seule l'interface IP du routeur est visible.
Le re-routage de ports (port forwarding)
rwarding) permet lorsque l'on reçoit un paquet à destination d'un service (numéro de port) de
rediriger la demande vers une autre machine internet. On peut utiliser cette technique par exemple pour équilibrer la charge
soumise à un serveur http ou pour masquer
quer la localisation d'un serveur interne.
1.2 Plate-forme de sécurité étudiée
Cahier des charges:
Une entreprise dispose d'un réseau local (machine LAN) et souhaite rendre accessible à partir d'Internet (machine INTERNET)
son serveur http (machinee 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:
Le réseau (LAN) contient les machines du réseau local.
IR1
TP Firewall sous Linux
S.Lohier
1/4
•
•
•
•
•
•
•
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 oeuvre du routage classique
Le but de cette partie est de réaliser l'interconnexion des 4 PC en configurant leurs interfaces Ethernet, en activant le routage IP
sur la machine ROUTEUR et en configurant les tables de routage des PC sans contrôler les accès (pas de règle de filtrage
particulière).
Réalisez le câblage des 4 PC. Vérifiez sur le routeur que les trois interfaces Ethernet sont actives (ifconfig).
Vérifiez sur le routeur que le routage est activé :
more /etc/sysconfig/network ou /etc/network/options. L'option ipforward=true (ou =yes) doit être présente.
Ou echo 1 > /proc/sys/net/ipv4/ip_forward
Ou encore dans /etc/sysctl.conf : net.ipv4.ip_forward=1
Ne pas oublier de relancer le daemon réseau : # /etc/init.d/networking restart
Q1: Déterminez les serveurs actifs sur la machine ROUTEUR (man netstat)
Configurez la passerelle défaut des pc LAN, DMZ et INTERNET. Cette adresse de passerelle correspond à l'adresse IP du
routeur respectivement coté LAN, DMZ et INTERNET.
Sur les stations sous Linux:
- vérifiez la configuration de l'interface Ethernet relié au routeur (ifconfig ethx)
- ajoutez une table de routage par défaut à l'aide de la commande route (man route).
- puis vérifiez à l'aide de la commande netstat -r (ou route) que la table de routage par défaut dirige bien vers le routeur.
Sur le ROUTEUR :
- vérifiez la configuration des 3 interfaces Ethernet
- configurez la table de routage pour ces 3 interfaces
- puis vérifiez à l'aide de la commande netstat -r que la table de routage route vers les 3 réseaux.
Q2. Quelles sont les commandes utilisées pour paramétrer les différentes interfaces réseau et quelles sont les tables de routage
sur les 3 PC et le routeur ?
Vérifiez à l'aide de la commande ping sur les PC LAN, DMZ et INTERNET que vous pouvez accéder à toutes les autres
machines (ping @IP).
2.2 Configuration du serveur http
Le but de cette partie est de configurer et de lancer le serveur http de l'entreprise se trouvant sur la machine DMZ. Installez le
serveur Apache si nécessaire.
Q3: Quel est le port TCP d'écoute standard d'un serveur web ? (more /etc/services)
Éditez le fichier /etc/httpd/conf/httpd.conf (ou /etc/apache2/apache2.conf ou /etc/apache2/ports.conf) et modifiez le port
d'écoute du serveur web pour qu'il écoute sur le port 8080 (options listen et port).
Lancez le serveur web : /etc/init.d/apache2 restart
Puis vérifiez qu'il est effectivement lancé: (man ps). Le serveur httpd (ou apache) doit être affiché.
Q4 : Pourquoi observez vous plusieurs fois le serveur httpd (ou apache) ?
A partir de la machine LAN, ouvrez un navigateur (éventuellement lynx en mode console) et connectez-vous au serveur web
(http://&IPserveur:portduserveur).
IR1
TP Firewall sous Linux
S.Lohier
2/4
Q5 : Quelle page est ouverte lorsque vous ne précisez pas de nom de page ? (voir le fichier httpd.conf ou apache2.conf sur
DMZ).
Sur DMZ, allez dans le répertoire /home/httpd/html (ou /var/www/apache2-default)
Copiez le fichier index.html en test.html. Éditez le fichier et ajoutez une ligne de texte.
Vérifiez ensuite que la page est bien accessible à partir dur LAN (http://&IPserveur:port-du- serveur/test.html)
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 PC 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.
La commande iptables permet de définir les règles de filtrage des flux en entrée/sortie sur le routeur il se base sur des règles,
des options et des protocoles.
iptables propose les règles :
• INPUT: cette règle est appelée lorsqu’un datagramme est reçu sur une interface
• OUTPUT: cette règle est appelée lorsqu’un datagramme quitte une interface
• FORWARD: cette règle est appelée lorsqu’un flux passe d'un réseau à un autre à travers deux interfaces.
Vous disposez des options suivantes pour un flux:
• ACCEPT : acceptation du flux
• DROP : rejet du flux
Les protocoles supportés sont:
• tcp
• udp
• icmp
Résumé de la commande:
Pour afficher l'état courant du firewall : iptables -L
Pour supprimer toutes les règles du firewall (sauf les règles par defaut) : iptables -F
Pour définir la politique par défaut: iptables -P regle -i interface option
Exemple: iptables -P INPUT -i eth0 DROP pour interdire par défaut tout flux en entrée sur l'interface ethernet eth0
Pour ajouter une nouvelle règle au firewall:
iptables -A regle -i interface -s @res/nb-bit-masque-reseau -d @res/nb-bit-masque-reseau -p protocole -j option
Exemples: iptables -A INPUT -i eth0 -s 192.168.10.0/24 -d 192.168.20.0/24 80 -p tcp -j ACCEPT
Cette commande accepte les flux en entrée de l'interface eth0 pour un flux venant du réseau IP 192.168.10.0 avec le masque
255.255.255.0 (24 bits à "1") vers le réseau destination 192.168.20.0 vers le port 80 pour le protocole tcp
iptables -A FORWARD -s 192.168.10.0/24 -d 192.168.20.0/24 80 -p tcp -j ACCEPT
Cette commande accepte le routage entre les réseaux IP 192.168.10.0 et 192.168.20.0 vers le port 80 pour le protocole tcp.
Q6: Réalisez une configuration par défaut du firewall qui rejette tout flux dans les règles INPUT, OUTPUT et FORWARD.
(iptables -P ...). Donnez la syntaxe des trois lignes obtenues dans le fichier script.
Vérifiez maintenant que les 3 PC ne se ping plus (PC LAN vers INTERNET et DMZ)
Q7 : Quel est l'état d' iptables (iptables -L) ?
3.1 Filtrage entre LAN <->DMZ
Le but de cette partie est de réaliser une translation d'adresse pour toute adresse venant du PC LAN vers le réseau de la DMZ.
Q8 Ajouter les filtres permettant d'accepter sur l'interface du firewall coté LAN un ping venant du réseau (LAN). (règles
iptables -A sur INPUT et OUTPUT). Donnez les règles ajoutées.
Exécutez votre script. Faites un ping sur le PC LAN vers l'interface 192.168.10.1 et vérifiez que cela fonctionne.
Q9 : Même question pour la liaison PC DMZ <-> interface du routeur coté DMZ.
Q10 : Quelle règle devez vous modifier pour pouvoir pinger la DMZ à partir du LAN ?
IR1
TP Firewall sous Linux
S.Lohier
3/4
Effectuez la modification et testez.
Q11 Ajoutez une règle sur le firewall permettant de faire de la translation d'adresse entre le PC LAN et la DMZ. Donnez la
règle ajoutée et justifiez les options choisies (chaine utilisée, prerouting ou post routing, politique masquerade…).
Exécutez votre script.
Sur le pc DMZ, exécutez la commande tcpdump –i eth1 (ou utilisez WireShark)
Sur le PC LAN, tapez: ping 192.168.20.2
Q12 : Donnez la séquence des trames obtenue sur le PC DMZ avant et après la mise en place de la translation. Interprétez les
résultats obtenus.
On souhaite maintenant permettre l'accès au serveur http pour les machines du (LAN).
Proposez les règles de filtrage INPUT, OUTPUT et FORWARD adaptées pour une connexion du LAN à destination du
serveur http, sur le port d'écoute sur serveur http.
Q13 : Donnez les règles de filtrage obtenues et testez sur le PC LAN que cela fonctionne (utilisez un navigateur et connectez
vous à l'url : http://192.168.20.2:8080 )
3.2 Filtrage (LAN) <->(INTERNET)
Le filtrage à effectuer est analogue. Les PC du LAN ne doivent pas être directement visibles.
Réalisez la configuration des règles de filtrage INPUT, OUTPUT et FORWARD pour accepter un ping et un accès à un
serveur web situé sur internet. On 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. Vérifiez les accès et la translation.
Q14 : Donnez les commandes iptables utilisées et les filtres obtenus.
3.3 Filtrage (DMZ)<->(INTERNET)
Cette dernière partie est consacrée à la configuration entre le PC DMZ et le PC INTERNET.
La configuration est légèrement plus complexe.
Le serveur http de l'entreprise doit être accessible à partir du pc INTERNET mais pas directement.
On ne souhaite pas autoriser les accès directs (avec l'adresse ip 192.168.20.2) depuis internet.
A partir du pc INTERNET, seul une connexion url : http://192.168.30.1 doit fonctionner.
Pour cela, il faut mettre 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,
vers le port d'écoute du serveur http (sur DMZ).
Q15 : Quelles sont les règles de filtrage iptables pour réaliser la translation d'adresse et le forwarding de port (vous justifierez
les options choisies : prerouting ou post routing, SNAT ou DNAT…)?
Testez la configuration sur le PC Internet avec un navigateur sur http://192.168.30.1. Vous devez normalement accéder au
serveur de l'entreprise sur la DMZ.
Q16 : Analysez avec tcpdump ou WireShark les trames obtenues lors de la connexion http précédente sur le pc DMZ.
IR1
TP Firewall sous Linux
S.Lohier
4/4

Documents pareils