5. Le jeu de règles pour le coupe-feu

Nous avons presque terminé. Tout ce qu'il reste à faire est de définir les règles du coupe-feu et alors nous pourrons redémarrer, et notre coupe-feu devrait fonctionner. Je me suis rendu compte que chacun désirera quelque chose de légèrement différent quand il est question de son ensemble de règles. Ce que j'ai essayé de faire est d'écrire un ensemble de règles qui conviendra à la plupart des utilisateurs de modems. Vous pouvez bien évidement le modifier selon vos besoins en utilisant les règles suivantes comme fondation pour votre propre ensemble de règles. Tout d'abord commençons avec les bases du filtrage fermé. Ce que vous voulez faire est de refuser tout par défaut et ensuite n'autoriser que les choses dont vous avez vraiment besoin. Les règles devraient être ordonnées de façon à autoriser tout d'abord puis ensuite refuser. Le principe est que vous ajoutiez les règles pour vos autorisations, et ensuite tout est refusé. :)

Maintenant, créons le répertoire /etc/firewall. Allez dans ce répertoire et éditez le fichier fwrules comme nous l'avons spécifié dans rc.conf. S'il vous plaît, notez que vous pouvez changer le nom de ce fichier pour celui que vous désirez. Ce guide donne juste un exemple de nom de fichier.

Maintenant, jettons un coup d'oeil à cet exemple de fichier de coupe-feu, qui est minutieusement commenté.

# Règles du coupe-feu
# Ecrit par Marc Silver (marcs@draenor.org)
# http://draenor.org/ipfw
# Librement distribuable


# Définie la commande du coupe-feu (comme dans /etc/rc.firewall)
# pour une référence aisée. Facilite la lecture.
fwcmd="/sbin/ipfw"

# Vide les règles actuelles avant rechargement.
$fwcmd -f flush

# Détourne tous les paquets à travers l'interface tunnel
$fwcmd add divert natd all from any to any via tun0

# Autorise toutes les données de ma carte réseau et de l'hôte local.
# Soyez sûr de changer votre carte réseau (la mienne était fxp0) avant
# de redémarrer.  :)
$fwcmd add allow ip from any to any via lo0
$fwcmd add allow ip from any to any via fxp0

# Autorise toute les connexions dont je suis l'initiateur.
$fwcmd add allow tcp from any to any out xmit tun0 setup

# Une fois les connexions établies, les autorise à rester ouvertes.
$fwcmd add allow tcp from any to any via tun0 established

# Tous le monde sur internet est autorisé à se connecter aux services
# suivants sur la machine.  Cet exemple autorise spécifiquement les
# connexions à ssh et apache.
$fwcmd add allow tcp from any to any 80 setup
$fwcmd add allow tcp from any to any 22 setup

# Ceci envoie un RESET à tous les paquets ident.
$fwcmd add reset log tcp from any to any 113 in recv tun0

# Autorise les requettes DNS sortantes SEULEMENT vers les serveurs
# spécifiés.
$fwcmd add allow udp from any to x.x.x.x 53 out xmit tun0

# Autorise leur retour avec les réponses...  :)
$fwcmd add allow udp from x.x.x.x 53 to any in recv tun0

# Autorise l'ICMP (pour permettre à ping et traceroute de fonctionner).
# Vous pouvez peut-être désirer désactiver ceci, mais je pense que cela
# répond à mes besoins de les conserver ainsi.
$fwcmd add allow icmp from any to any

# Bloque tout le reste.
$fwcmd add deny log ip from any to any

Vous disposez désormais d'un coupe-feu tout à fait fonctionnel qui autorisera les connexions sur les ports 80 et 22 et tracera tout autre tentative de connexion. Maintenant, vous devriez être en mesure de redémarrer sans risques et votre coupe-feu devrait se lancer sans problèmes. Si vous trouvez une quelconque erreur ou expérimentez des problèmes, ou que vous avez des suggestions pour améliorer ce document, s'il vous plaît écrivez-moi.

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.