From 382d25ee698d98ad08b258e46f4f6b1b063a3a58 Mon Sep 17 00:00:00 2001 From: jdubois Date: Mon, 2 Oct 2023 10:10:23 +0200 Subject: [PATCH] =?UTF-8?q?Exclure=20une=20IP=20d'une=20r=C3=A8gle=20autor?= =?UTF-8?q?isant=20un=20pr=C3=A9fixe=20plus=20large?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoOpenBSD/PacketFilter.md | 48 ++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/HowtoOpenBSD/PacketFilter.md b/HowtoOpenBSD/PacketFilter.md index 59ebab1f..569e2e35 100644 --- a/HowtoOpenBSD/PacketFilter.md +++ b/HowtoOpenBSD/PacketFilter.md @@ -265,6 +265,54 @@ pass in quick on $wan2 from … to self reply-to ($wan2) > Note : Attention, l'IP autorisée par cette règle aura un accès complet au routeur. +### Exclure une IP d'une règle autorisant un préfixe plus large + +Imaginons la règle suivante, permettant de ne rien bloquer en entrée sur l'interface WAN, depuis n'importe où et à destination du préfixe 192.0.2.0/24 : + +~~~ +pass in quick on $wan from any to 192.0.2.0/24 +~~~ + +Si dans ce préfixe, il y a l'IP 192.0.2.5 en particulier pour laquelle on ne veut pas avoir cette large autorisation, on pourrait vouloir l'exclure. + +#### Ce qu'il ne faut PAS faire + +PacketFilter permet la négation avec le point d'exclamation `!`. On pourrait donc penser à modifier la règle précédente pour obtenir ceci : + +~~~ +pass in quick on $wan from any to { 192.0.2.0/24, !192.0.2.5 } +~~~ + +Mais attention ! Cette règle n'indique pas de tout autoriser vers tout le préfixe 192.0.2.0/24 sauf vers l'IP 192.0.2.5. Elle est découpée en 2 règles indépendantes : + +~~~ +pass in quick on $wan from any to 192.0.2.0/24 +pass in quick on $wan from any to !192.0.2.5 +~~~ + +La première indiquant de tout autoriser vers 192.0.2.0/24, et la deuxième indiquant de tout autoriser vers tout le monde, sauf vers 192.0.2.5. On se retrouve alors avec une autorisation depuis n'importe qui et vers l'ensemble de notre réseau, sauf 192.0.2.5. + +#### Ce qu'il faut faire + +Pour exclure une IP d'une autorisation plus large, il faut créer une règle `block` en amont : + +~~~ +block in quick on $wan from any to 192.0.2.5 +pass in quick on $wan from any to 192.0.2.0/24 +~~~ + +Ainsi, la première règle de `block` permettra de ne rien autoriser à destination de 192.0.2.5, et la deuxième règle permettra, pour le reste du préfixe 192.0.2.0/24, de tout autoriser. + +Si, pour cette même IP 192.0.2.5, on ne veut pas tout bloquer mais autoriser seulement certains ports, il faut encore ajouter une autre règle : + +~~~ +pass in quick on $wan proto tcp from any to 192.0.2.5 port 443 +block in quick on $wan from any to 192.0.2.5 +pass in quick on $wan from any to 192.0.2.0/24 +~~~ + +On aura correctement notre autorisation précise vers 192.0.2.5 sur son port TCP/443, les autres ports seront bloqués, et tout le reste du préfixe sera entièrement autorisé. + ### Tuer un état selon son ID On peut voir l'ensemble des états d'un firewall et leur ID :