
Автоматизированная сетевая безопасность на Rust: обнаружение и блокировка сканеров портов
Этот инструмент предназначен для демонстрации возможностей функции nfnetlink_queue ядра Linux.
Более подробную информацию вы можете прочитать в этой статье.
Прежде чем пакеты будут отброшены ядром, они отправляются этому инструменту для дальнейшей обработки. Если удалённый узел пытается обратиться к слишком большому количеству закрытых портов на вашей машине, он будет автоматически заблокирован путём добавления правила сброса для его IP-адреса в самом начале сетевого стека (до любой дефрагментации пакетов или отслеживания соединений).
Забаненные IP-адреса автоматически разблокируются по истечении заданного периода времени; это полезно в следующих случаях:
Для работы этого инструмента необходимо добавить следующее выражение в конец вашей входной цепочки nftables:
queue num 0-3 fanout
А затем перезапустить службу nftables:
sudo systemctl restart nftables
Чтобы установить этот инструмент из исходного кода, вам понадобится стабильный тулчейн Rust; для этого можно использовать rustup.
Затем выполните следующие команды:
make
sudo make install
set в nftables для более быстрого поиска забаненных IP-адресов вместо добавления нового правила бана для каждого клиента.