Desejo limitar a taxa de conexões ssh por IP para um servidor executando firewalld.
Suponha que meu sshd escute na porta 2222 e eu queira limitar as conexões ssh por IP a 3 por minuto. Tentei:
sudo firewall-cmd --add-rich-rule \
'rule port port="2222" protocol="tcp" accept limit value="3/m"'
Então, em outra máquina, executei:
ssh myserver echo hello; \
ssh myserver echo hello; \
ssh myserver echo hello; \
ssh myserver echo hello; \ # should fail, but actually logs in
ssh myserver echo hello # should fail, but actually logs in
...
Ele faz login todas as vezes. Não há limite de taxa.
Onde está o meu erro?
Parece que isso ainda não é possível usando as "regras avançadas" do firewalld.
Portanto, estou usando regras regulares do iptables por meio do
direct
recurso do firewalld. (Estou usando o back-end iptables do firewalld porque o docker ainda não funciona com nftables.)Testar: