Administration réseau sous Linux/TP Netfilter

Un livre de Wikibooks.

Sections

[modifier] Introduction

  • Lire le wikilivre sur Netfilter
  • Afficher les règles contenues dans les chaînes INPUT, OUTPUT et FORWARD sur bigboss. Il ne devrait y en avoir aucune.

[modifier] LOG

  • Ajouter sur bigboss une règle dans la chaîne INPUT qui enverra sur la cible LOG tous les paquets du protocole icmp.
  • Afficher les règles de cette chaîne et vérifier que celle ajoutée apparaît.
  • Lancer un ping de tiny vers bigboss
  • Vérifier que les paquets sont affichés. S'ils ne le sont pas, ouvrir un terminal sur bigboss et lancer la commande tail -f /var/log/kern.log
  • Faire un ping de bigboss vers une adresse IP inconnue (par exemple 1.2.3.4) et constater le résultat.

[modifier] Bloquer tiny

  • Ajouter une règle au début de la chaîne INPUT pour jeter tous les paquets qui viennent de tiny.
  • Vérifiez que tiny ne peut plus faire de ping sur bigboss.
  • Constater avec iptables -v -L INPUT que des paquets ont bien traversé la règle ajoutée.
  • Supprimer cette règle.

[modifier] Bloquer HTTP

  • Vérifier qu'on peut accéder au serveur HTTP de bigboss à partir de tiny et du poste hôte (voir TP sur Apache)
  • Ajouter sur bigboss une règle qui jette les paquets en entrée qui sont à destination du port HTTP (80, ou www).
  • Vérifier qu'on ne peut plus accéder au serveur HTTP ni à partir du poste hôte, ni à partir de tiny.
  • Ajouter une règle (avant la précédente) qui accepte tous les paquets qui viennent de tiny.
  • Vérifier qu'on peut au serveur HTTP à partir de tiny, mais toujours pas à partir du poste hôte.

[modifier] Script de firewall

  • Créer un script shell qui :
    • efface toutes les règles de toutes les chaînes
    • accepte en entrée ce qui est à destination du port HTTP
    • jette tout ce qui vient de tiny
  • Lancer ce script et vérifier que tiny peut accéder au serveur HTTP de bigboss, mais à rien d'autre (pas de ping, FTP...)
  • Placer ce script dans /etc/init.d et faire en sorte qu'il se lance au démarrage avec la commande update-rc.d (voir page de man)
  • Redémarrer et vérifier que ça fonctionne
  • Retirer le script pour les TP suivants et vider les tables