Можно иметь максимальный (тайм-аут) интервал между ударами.
Есть ли способ иметь минимальный (пауза / задержка / сон) интервал между ударами?Чтобы получить что-то вроде:
{# meta
Knock dport 234 timeout 5s pause 2s,
Knock dport 123 timeout 5s pause 2s,
Knock dport 123 timeout 3s pause 1s,
Knock dport 234timeout 3s pause 1s,
Knock dport 123 timeout 5s pause 1s accept {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) для сканирования портов.