Chapitre 3. Utilisation de xdp-filter pour un filtrage performant du trafic afin de prévenir les attaques DDoS
Par rapport aux filtres de paquets, tels que nftables
, Express Data Path (XDP) traite et abandonne les paquets réseau directement au niveau de l'interface réseau. Par conséquent, XDP détermine l'étape suivante pour le paquet avant qu'il n'atteigne un pare-feu ou d'autres applications. Par conséquent, les filtres XDP nécessitent moins de ressources et peuvent traiter les paquets réseau à un taux beaucoup plus élevé que les filtres de paquets conventionnels pour se défendre contre les attaques par déni de service distribué (DDoS). Par exemple, lors des tests, Red Hat a éliminé 26 millions de paquets réseau par seconde sur un seul cœur, ce qui est nettement plus élevé que le taux d'élimination de nftables
sur le même matériel.
L'utilitaire xdp-filter
permet d'autoriser ou de bloquer les paquets réseau entrants à l'aide de XDP. Vous pouvez créer des règles pour filtrer le trafic en provenance ou à destination d'éléments spécifiques :
- IP addresses
- Adresses MAC
- Ports
Notez que, même si xdp-filter
a un taux de traitement des paquets nettement plus élevé, il n'a pas les mêmes capacités que, par exemple, nftables
. Considérez xdp-filter
comme un utilitaire conceptuel pour démontrer le filtrage de paquets à l'aide de XDP. En outre, vous pouvez utiliser le code de l'utilitaire pour mieux comprendre comment écrire vos propres applications XDP.
Sur les architectures autres que AMD et Intel 64-bit, l'utilitaire xdp-filter
est fourni en tant qu'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat, peuvent ne pas être complètes sur le plan fonctionnel et Red Hat ne recommande pas de les utiliser pour la production. Ces aperçus offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.
Consultez la section Portée de l'assistance pour les fonctionnalités de l'aperçu technologique sur le portail client de Red Hat pour obtenir des informations sur la portée de l'assistance pour les fonctionnalités de l'aperçu technologique.
3.1. Exclusion des paquets réseau qui correspondent à une règle xdp-filter
Vous pouvez utiliser xdp-filter
pour laisser tomber les paquets du réseau :
- Vers un port de destination spécifique
- À partir d'une adresse IP spécifique
- À partir d'une adresse MAC spécifique
La politique allow
de xdp-filter
définit que tout le trafic est autorisé et que le filtre ne laisse tomber que les paquets réseau qui correspondent à une règle particulière. Par exemple, utilisez cette méthode si vous connaissez les adresses IP source des paquets que vous voulez laisser tomber.
Conditions préalables
-
Le paquet
xdp-tools
est installé. - Pilote de réseau qui prend en charge les programmes XDP.
Procédure
Load
xdp-filter
pour traiter les paquets entrants sur une certaine interface, telle queenp1s0
:# xdp-filter load enp1s0
Par défaut,
xdp-filter
utilise la politiqueallow
, et l'utilitaire ne bloque que le trafic qui correspond à une règle.Vous pouvez également utiliser l'option
-f feature
pour n'activer que certaines fonctionnalités, telles quetcp
,ipv4
, ouethernet
. Le fait de ne charger que les fonctionnalités requises au lieu de toutes augmente la vitesse de traitement des paquets. Pour activer plusieurs fonctionnalités, séparez-les par une virgule.Si la commande échoue avec une erreur, cela signifie que le pilote de réseau ne prend pas en charge les programmes XDP.
Ajoutez des règles pour rejeter les paquets qui correspondent à ces règles. Par exemple :
Pour supprimer les paquets entrants sur le port
22
, entrez :# xdp-filter port 22
Cette commande ajoute une règle qui correspond au trafic TCP et UDP. Pour ne faire correspondre qu'un protocole particulier, utilisez l'option
-p protocol
pour ne correspondre qu'à un protocole particulier.Pour abandonner les paquets entrants provenant de
192.0.2.1
, entrez :# `xdp-filter ip 192.0.2.1 -m src*
Notez que
xdp-filter
ne prend pas en charge les plages d'adresses IP.Pour abandonner les paquets entrants provenant de l'adresse MAC
00:53:00:AA:07:BE
, entrez :# xdp-filter ether 00:53:00:AA:07:BE -m src
Vérification
La commande suivante permet d'afficher des statistiques sur les paquets abandonnés et autorisés :
# xdp-filter status
Ressources supplémentaires
-
xdp-filter(8)
page de manuel -
Si vous êtes un développeur et que vous êtes intéressé par le code de
xdp-filter
, téléchargez et installez le RPM source correspondant (SRPM) à partir du portail client de Red Hat.