Lors de cette séance double de TP, on étudie la configuration classique de filtrage avec 3 réseaux (extérieur, intérieur, DMZ) et un unique pare-feu dans 4 configurations différentes :

  • sous Netkit (salle E09) avec iptables sous Debian GNU/Linux ;
  • sous Cisco/IOS (salle E11) sur un routeur (filtrage stateless) ;
  • sous Cisco/PIX/ASA (salle E11) sur un pare-feu (filtrage statefull) ;
  • sous OpenBSD (salle E11) avec pf.

    Cette fiche scénarise la configuration Netkit ainsi que la démarche pour réaliser la configuration OpenBSD. Prévoir 1h30 par configuration.

Préparation de la séance Netkit

Dans ce TP nous utiliserons Debian GNU/Linux comme routeur et le pare-feu iptable interconnecté à des machines virtuelles Netkit via un switch VDE.

1. Mise en place

Démarrer chacun dans un terminal un switchs VDE nommés sw :

$ ./vswitch sw

et dans un autre terminal 3 machines virtuelles Netkit pc1, pc2 et pc3 qui y sont connectées :

$ ./vstart --eth0=vde,sw,1 pc1
$ ./vstart --eth0=vde,sw,2 pc2
$ ./vstart --eth0=vde,sw,3 pc3

Démarrer un routeur qui sera relié au switch par un lien trunk.

$ ./vstart --eth0=vde,sw,4 rt

À l'aide de la console du switch et des commandes vlan/create, port/setvlan et vlan/addport, créer 3 VLANs comme suit :

  • lan (VLAN 10) contient les ports 1 (untagged) et 4 (tagged) ;
  • dmz (VLAN 20) contient les ports 2 (untagged) et 4 (tagged) ;
  • inet (VLAN 30) contient les ports 3 (untagged) et 4 (tagged).

    Choisir un réseau IP privé distinct pour chacun des VLAN et configurer les interfaces eth0 de chacun des trois machines pc1, pc2 et pc3 ainsi que les trois interfaces eth0.10, eth0.20 et eth0.30 du routeur.

    Vérifier avec la commande ping que chacun des trois PC peut contacter le routeur et chacun des trois autres PC.

    À l'aide de la commance nc créer un serveur TCP sur pc1 et vérifier que pc2 peut s'y connecter.

    À l'aide de la commance nc créer un serveur UDP sur pc2 et vérifier que pc3 peut s'y connecter.

2. Filtrage avec iptables

À l'aide de la commande iptables, définir un ensemble de règles de filtrage qui met en place la politique suivante :

  • la zone dmz ne peut pas accéder à la zone lan ;
  • la zone lan ne peut pas accéder à la zone dmz ;
  • les échanges entre inet et les autres sont permis.

    Tester les règles d’accès mises en place à l’aide des commandes ping et nc, pour les protocoles ICMP, UDP et TCP et chaque paire de machines.

    Sauvegarder la configuration obtenue en réalisant un dump iptables.

    Améliorer ensuite la configuration du routeur pour un scénario plus réaliste :
  • seules les connexions initiées par lan sont autorisées avec inet ;
  • la zone lan peut échanger avec la zone dmz sur les connexions initiées côté lan uniquement pour le trafic SMTP et HTTP et sur les connexions initiées côté dmz uniquement pour le trafic TCP vers le port 5555 d'une machine spécifique.
  • logguer les paquets rejetés.

3. Filtrage avec pf

Parcourir la documentation de PF : Le Filtre de Paquets d'OpenBSD ainsi que le Manuel de pf.conf pour en comprendre les grands principes.

À l'aide de la commande pfctl et du fichier /etc/pf.conf, reprendre le scénario étudié pour iptables.

Références

Dernière modification le 20 February 2015