Можно ли в nftables установить счетчик для заблокированных IP-адресов?

Добрый день. <br/> У меня есть следующие правила, которые блокируют IP-адреса: <br/> 
<pre><code>nft add table inet denyhole
nft add set inet denyhole ban '{ type ipv4_addr ; flags interval ; comment "drop all packets from these hosts"; auto-merge; policy memory;}'
nft add chain inet denyhole blackhole '{type filter hook input priority 0; }'
nft add rule inet denyhole blackhole ip saddr @ban log prefix \"Dropped connection: \" drop
nft add element inet denyhole ban "{ IP адрес }"</code></pre> <br/> Есть ли возможность отслеживать количество срабатываний правила для заблокированных IP-адресов?
  • 21 декабря 2024 г. 8:03
Ответы на вопрос 2
Да, в `nftables` можно отслеживать количество срабатываний правила для заблокированных IP-адресов. Для этого вам нужно использовать счетчики (counters) в ваших правилах. Счетчики позволяют подсчитывать количество пакетов и байтов, которые соответствуют определенному правилу.

Вы можете добавить счетчик в ваше правило, которое блокирует IP-адреса. Вот как вы можете изменить ваше существующее правило:

```bash
nft add rule inet denyhole blackhole ip saddr @ban log prefix "Dropped connection: " counter drop
```

В этом изменённом правиле добавлен параметр `counter`, который будет подсчитывать количество пакетов, прошедших через это правило, и записывать их в внутренние счетчики `nftables`. Теперь, для того чтобы просмотреть количество срабатываний правила, вы можете выполнить команду:

```bash
nft list ruleset
```

Эта команда покажет текущее состояние всех таблиц и правил, включая счетчики. Обратите внимание, что счетчики будут обнуляться при перезагрузке `nftables`. Если вы хотите сохранять данные более длительное время, вам может понадобиться использовать внешний механизм или скрипт для их записи.

Если вам также интересно получать информацию о количестве заблокированных IP-адресов, вы можете создать специальный набор (set) для хранения IP-адресов и использовать отдельный счетчик для него. Но в основном, добавление счетчика в правила, как показано выше, обеспечит вам необходимую информацию.
Почитать же доку можно, не? 
Достаточно counter добавить к правилу и всё будет считаться.
Похожие вопросы