nftables портит стук "брить и стричься"
Можно иметь максимальный (тайм-аут) интервал между ударами.
Есть ли способ иметь минимальное (пауза / задержка / сон) пространство между ударами? Чтобы что-то вроде:
{#meta
Стук дпорт 234 тайм-аут 5с пауза 2с,
Стук дпорт 123 тайм-аут 5с пауза 2с,
Стук дпорт 123 тайм-аут 3с пауза 1с,
Стук дпорт 234 тайм-аут 3с пауза 1с,
Knock dport 123 Тайм-аут 5с Пауза 1с принять {SSH}
}
Что-то вроде
set SSH_OK { type ipv6_addr; flags timeout; elements = { 2001:DB8:: expires 30s }}
set Knock1 { type ipv6_addr; timeout 5s; }
set Knock2 { type ipv6_addr; timeout 5s; }
set Knock3 { type ipv6_addr; timeout 5s; }
set Knock4 { type ipv6_addr; timeout 5s; }
set Knock5 { type ipv6_addr; timeout 5s; }
#
chain Input {
type filter hook input priority 0; policy drop;
ct state established,related counter accept
icmpv6 type { nd-neighbor-solicit, echo-request, nd-router-advert, nd-neighbor-advert } accept
tcp dport ssh ip saddr @SSH_OK counter packets 0 bytes 0 accept
iifname != lo ip6 daddr ::1/128 counter drop
iif lo accept
drop
}
#
chain SFAE {
type filter hook prerouting priority -300; policy accept;
tcp dport {ssh} set add ip saddr @Knock1 drop
ip6 saddr @Knock1 tcp dport 234 set add ip saddr @Knock2 drop; sleep 2s
ip6 saddr @Knock2 tcp dport 123 set add inet saddr @Knock3 drop; sleep 2s
ip6 saddr @Knock3 tcp dport 123 set add inet saddr @Knock4 drop; sleep 1s
ip6 saddr @Knock4 tcp dport 234 set add inet saddr @Knock5 drop; sleep 1s
ip6 saddr @Knock5 tcp dport 123 set add inet saddr timeout 5s; sleep 2s @SSH_OK drop
}
(Может быть, задержка / сон должен быть в set Knock{1..5}
?) Я думаю, что этот вариант ритма стука портов будет менее безопасным благодаря неясности pap (STOP), и больше похож на растяжение ключевой фразы (argon2) для сканирования портов.