Modification "Exclure une IP d'une règle autorisant un préfixe plus large" pour mettre un warning sur ce qu'il ne faut pas faire, sans mettre de code pour ne pas le rendre trop visible et qu'on puisse vouloir l'appliquer sans avoir vu que c'était ce qu'il ne fallait pas faire

This commit is contained in:
jdubois 2023-10-06 10:37:22 +02:00
parent 2be32725f7
commit f169d20630

View file

@ -275,24 +275,7 @@ 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
PacketFilter permet la négation avec le point d'exclamation `!`. On pourrait donc penser à modifier la règle précédente pour y ajouter `!192.0.2.5`, mais attention ! Cette règle n'indiquera pas de tout autoriser vers tout le préfixe 192.0.2.0/24 sauf vers l'IP 192.0.2.5. Elle sera découpée en 2 règles indépendantes : 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 retrouverait alors avec une autorisation depuis n'importe qui et vers l'ensemble de notre réseau, sauf 192.0.2.5.
Pour exclure une IP d'une autorisation plus large, il faut créer une règle `block` en amont :