Sur cette page
Comprendre les conditions de correspondance des filtres de pare-feu
Avant de définir des termes pour les filtres de pare-feu, vous devez comprendre comment les conditions d’un terme sont gérées et comment spécifier les conditions d’interface, de numérique, d’adresse et de filtre de champ bit pour obtenir les résultats de filtre souhaités.
Conditions de correspondance du filtre
Dans l’instruction from
d’un terme de filtre de pare-feu , vous spécifiez les conditions auxquelles le paquet doit correspondre pour l’action dans l’instruction then
à effectuer. Toutes les conditions doivent correspondre pour que l’action soit mise en œuvre. L’ordre dans lequel vous spécifiez des conditions de correspondance n’est pas important, car un paquet doit correspondre à toutes les conditions d’un terme pour qu’une correspondance se produise.
Si vous spécifiez plusieurs valeurs pour la même condition, une correspondance sur l’une de ces valeurs correspond à cette condition. Par exemple, si vous spécifiez plusieurs adresses SOURCE IP à l’aide de l’instruction source-address
, un paquet qui contient l’une de ces adresses source IP correspond à la condition. Dans certains cas, vous pouvez spécifier plusieurs valeurs pour la même condition en joignant les valeurs possibles entre crochets, comme dans :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set protocol (icmp | udp)
Dans d’autres cas, vous devez saisir plusieurs déclarations, comme dans :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-address 10.1.1.1 user@switch# set source-address 10.1.1.2
Si vous ne spécifiez aucune condition de correspondance dans un terme, ce terme correspond à tous les paquets.
Contrairement aux filtres de pare-feu Junos OS traditionnels, vous ne pouvez pas l’utiliser except
dans une déclaration de condition pour annuler la condition.
Conditions de correspondance des filtres numériques
Vous pouvez spécifier des conditions de correspondance de filtre numérique identifiées par une valeur numérique, telle que les numéros de port et de protocole. Pour les conditions de correspondance de filtre numérique, vous spécifiez la condition et une valeur unique qu’un champ d’un paquet doit contenir pour être considéré comme une correspondance.
Vous pouvez spécifier la valeur numérique de l’une des façons suivantes :
Un seul numéro : une correspondance se produit si la valeur du champ correspond au nombre. Par exemple, pour faire correspondre le trafic Telnet :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-port 23
Texte synonyme d’un nombre unique : une correspondance se produit si la valeur du champ correspond au nombre correspondant au synonyme. Par exemple, pour faire correspondre le trafic Telnet :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-port telnet
Pour spécifier plusieurs valeurs pour la même condition de correspondance dans un terme de filtre, saisissez chaque valeur dans sa propre instruction de correspondance. Par exemple, une correspondance se produit dans le terme suivant si la valeur du port source dans le paquet est 22 ou 23.
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-port 22 user@switch# set source-port 23
Conditions de correspondance du filtre d’interface
Vous pouvez spécifier une condition de correspondance de filtre d’interface pour correspondre à une interface sur laquelle un paquet est reçu ou transmis. Par exemple, si vous appliquez un filtre à un VLAN, vous pouvez vouloir que le filtre corresponde sur certaines interfaces qui participent au VLAN et non sur d’autres interfaces dans le VLAN. Lorsque vous spécifiez le nom de l’interface, vous devez inclure une unité logique.
[edit firewall family family-name filter filter-name term term-name from] user@switch# set interface ge-0/0/6.0
Dans cet exemple, le caractère final (0
) spécifie l’unité logique. Vous pouvez inclure le caractère générique (*
) dans le nom de l’interface. Par exemple :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set interface ge-0/*/6.0 user@switch# set interface ge-0/1/*.0 user@switch# set interface ge-0/0/6.*
Notez que vous devez spécifier une valeur ou un caractère générique pour l’unité logique.
Conditions de correspondance du filtre d’adresse IP
Vous pouvez spécifier une condition de correspondance de filtre d’adresse pour qu’elle corresponde à une adresse ou un préfixe IP source ou de destination dans un paquet. Spécifiez l’adresse ou le type de préfixe et l’adresse ou le préfixe lui-même. Par exemple :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set destination-address 10.2.1.0/24;
Si vous omettez la longueur du préfixe, il s’agit par défaut de /32
. Par exemple :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set destination-address 10 [edit firewall family family-name filter filter-name term term-name from] user@switch# show destination-address { 10.0.0.0/32; }
Pour spécifier plusieurs adresses IP ou préfixes dans un terme filtre, saisissez chaque adresse ou préfixe dans sa propre instruction de correspondance. Par exemple, une correspondance se produit dans le terme suivant si l’adresse source d’un paquet correspond à l’un des préfixes suivants :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-address 10.1.0.0/16 user@switch# set source-address 10.2.0.0/16
Conditions de correspondance du filtre d’adresse MAC
Vous pouvez spécifier une condition de correspondance de filtre d’adresse MAC pour qu’elle corresponde à une adresse MAC source ou de destination. Vous spécifiez le type d’adresse et la valeur qu’un paquet doit contenir pour être considéré comme une correspondance.
Vous pouvez spécifier l’adresse MAC comme six octets hexadécimaux dans l’un des formats suivants :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set destination-mac-address 00:11:22:33:44:55
[edit firewall family family-name filter filter-name term term-name from] user@switch# set destination-mac-address 0011.2233.4455
[edit firewall family family-name filter filter-name term term-name from] user@switch# set destination-mac-address 001122334455
Quel que soit le format utilisé, le système résout l’adresse au format standard, dans ce cas 00:11:22:33:44:55.
Pour spécifier plusieurs adresses MAC dans un terme de filtre, saisissez chaque adresse MAC dans sa propre déclaration de correspondance. Par exemple, une correspondance se produit dans le terme suivant si la valeur de l’adresse MAC source correspond à l’une des adresses suivantes :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set source-mac-address 00:11:22:33:44:55 user@switch# set source-mac-address 00:11:22:33:20:15
Conditions de correspondance du filtre bit-field
Vous pouvez spécifier des conditions de correspondance de filtre de bits pour correspondre à des bits particuliers dans certains champs dans les trames Ethernet et les en-têtes IP, TCP, UDP et ICMP. Vous spécifiez généralement le champ et le bit dans le champ qui doit être défini dans un paquet pour être considéré comme une correspondance.
Dans la plupart des cas, vous pouvez utiliser un mot-clé pour spécifier le bit sur lequel vous souhaitez correspondre. Par exemple, pour correspondre sur un paquet TCP SYN, vous pouvez saisir syn
, comme dans :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags syn
Vous pouvez également entrer 0x02
car le bit SYN est le troisième bit le moins significatif du champ tcp-flags 8 bits :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags 0x02
Pour faire correspondre plusieurs valeurs bit-champ, utilisez les opérateurs logiques décrits dans la section Tableau 1. Les opérateurs sont répertoriés dans l’ordre des priorités les plus élevées et les plus basses. Les opérations sont évaluées de gauche à droite.
Opérateurs logiques |
Description |
---|---|
|
Négation |
|
Logique ET |
|
OU logique |
Si vous utilisez un opérateur logique, enfermez les valeurs entre guillemets et n’incluez aucun espace. Par exemple, l’instruction suivante correspond au deuxième paquet d’une négociation TCP :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags "syn&ack"
Pour annuler une correspondance, précédez la valeur d’un point d’exclamation. Par exemple, l’instruction suivante ne correspond qu’au paquet initial d’une négociation TCP :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-flags "syn&!ack"
Vous pouvez utiliser des synonymes de texte pour spécifier des correspondances de champ bit courants. Par exemple, l’instruction suivante correspond également au paquet initial d’une négociation TCP :
[edit firewall family family-name filter filter-name term term-name from] user@switch# set tcp-initial