Red Hat Training

A Red Hat training course is available for RHEL 8

6.8.2. Bloqueio de endereços IP que tentam mais de dez novas conexões TCP de entrada em um minuto

A estrutura nftables permite que os administradores atualizem dinamicamente os conjuntos. Esta seção explica como usar esta funcionalidade para bloquear temporariamente hosts que estão estabelecendo mais de dez conexões TCP IPv4 dentro de um minuto. Após cinco minutos, nftables remove automaticamente o endereço IP da lista de negação.

Procedimento

  1. Criar a tabela filter com a família de endereços ip:

    # nft adicionar tabela ip filter
  2. Acrescente a cadeia input à tabela filter:

    # nft add chain ip filter input { type filter hook input priority 0 { type hook input priority 0}; { type filter hook input priority 0}; { type filter hook input priority 0
  3. Adicione um conjunto chamado denylist à tabela filter:

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

    Este comando cria um conjunto dinâmico para endereços IPv4. O parâmetro timeout 5m define que nftables remove automaticamente as entradas após 5 minutos do conjunto.

  4. Adicionar uma regra que automaticamente adiciona o endereço IP de origem dos hosts que tentam estabelecer mais de dez novas conexões TCP dentro de um minuto ao conjunto denylist:

    # nft add rule ip filter input ip protocol tcp ct state new, unracked limit rate over 10/minute add @denylist { ip saddr }
  5. Acrescente uma regra que abandone todas as conexões de endereços IP no conjunto denylist:

    # nft add rule ip filter input ip saddr @denylist drop