Rechercher

2.9. Utilisation de nftables pour limiter le nombre de connexions

download PDF

Vous pouvez utiliser nftables pour limiter le nombre de connexions ou pour bloquer les adresses IP qui tentent d'établir un nombre donné de connexions afin d'éviter qu'elles n'utilisent trop de ressources système.

2.9.1. Limiter le nombre de connexions à l'aide de nftables

Le paramètre ct count de l'utilitaire nft permet aux administrateurs de limiter le nombre de connexions.

Conditions préalables

  • La base example_chain de example_table existe.

Procédure

  1. Créer un ensemble dynamique d'adresses IPv4 :

    # nft add set inet example_table example_meter { type ipv4_addr\; flags dynamic \;}
  2. Ajoutez une règle qui n'autorise que deux connexions simultanées au port SSH (22) à partir d'une adresse IPv4 et qui rejette toutes les autres connexions à partir de la même IP :

    # nft add rule ip example_table example_chain tcp dport ssh meter example_meter { ip saddr ct count over 2 } counter reject
  3. Facultatif : Affichez le jeu créé à l'étape précédente :

    # nft list set inet example_table example_meter
    table inet example_table {
      meter example_meter {
        type ipv4_addr
        size 65535
        elements = { 192.0.2.1 ct count over 2 , 192.0.2.2 ct count over 2  }
      }
    }

    L'entrée elements affiche les adresses qui correspondent actuellement à la règle. Dans cet exemple, elements répertorie les adresses IP qui ont des connexions actives au port SSH. Notez que la sortie n'affiche pas le nombre de connexions actives ou si les connexions ont été rejetées.

2.9.2. Blocage des adresses IP qui tentent d'établir plus de dix nouvelles connexions TCP entrantes en l'espace d'une minute

Vous pouvez bloquer temporairement les hôtes qui établissent plus de dix connexions IPv4 TCP en une minute.

Procédure

  1. Créez la table filter avec la famille d'adresses ip:

    # nft add table ip filter
  2. Ajoutez la chaîne input au tableau filter:

    # nft add chain ip filter input { type filter hook input priority 0 \; }
  3. Ajoutez un ensemble nommé denylist à la table filter:

    # nft add set ip filter denylist { type ipv4_addr \; flags dynamic, timeout \; timeout 5m \; }

    Cette commande crée un ensemble dynamique d'adresses IPv4. Le paramètre timeout 5m définit que nftables supprime automatiquement les entrées après cinq minutes afin d'éviter que l'ensemble ne se remplisse d'entrées périmées.

  4. Ajoutez une règle qui ajoute automatiquement à l'ensemble denylist l'adresse IP source des hôtes qui tentent d'établir plus de dix nouvelles connexions TCP en l'espace d'une minute :

    # nft add rule ip filter input ip protocol tcp ct state new, untracked add @denylist { ip saddr limit rate over 10/minute } drop
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.