A página de manual da UFW menciona que ele pode configurar a taxa de iptables limitando para mim:
O ufw suporta limite de taxa de conexão, o que é útil para proteger contra ataques de login de força bruta. O ufw negará conexões se um endereço IP tiver tentado iniciar 6 ou mais conexões nos últimos 30 segundos. Consulte http://www.debian-administration.org/articles/187 para obter detalhes. O uso típico é:
ufw limit ssh/tcp
Infelizmente, esta é toda a documentação que eu pude encontrar. Eu gostaria de ficar com o UFW e não usar comandos iptables mais complicados (para manter as coisas "descomplicadas").
Como eu usaria o ufw para limitar todo o tráfego de entrada (portanto não de saída) na porta 80 a 20 conexões por 30 segundos? Como desabilitei o limite de taxa para as portas 30000 a 30005? O limite de taxa está ativado por padrão para todas as portas?
iptable
, se sim, o iptable é o back-end do ufw.Conforme mencionado na postagem anterior, você pode personalizar as user.rules. Eu preciso do meu limite de taxa de conexão smtp de até 12 conexões em 6 segundos. Eu adicionei uma regra como mostrado abaixo primeiro. Nota: isso adiciona uma regra de limite que permite 6 em 30 segundos por padrão
e editei o /lib/ufw/user.rules (mantenho uma cópia personalizada deste arquivo com muitos outros ajustes), como mostrado abaixo ...
fonte
o limite de taxa pode ser alterado no arquivo de regras ufw, que pode ser encontrado em /lib/ufw/user.rules. por padrão, não há limites ativados para todas as portas. você deve adicionar todas as portas manualmente ou editando o arquivo user.rules.
fonte
Vale a pena apontar possíveis conseqüências não intencionais do uso do recurso LIMIT do ufw.
Suponha que alguém tenha colocado um limite geral na porta 22 / tcp como a primeira regra do ufw:
supondo que todas as conexões que operam abaixo do limite ainda possam ser filtradas seguindo as regras do ufw e, finalmente, a política padrão de "negar (de entrada)".
Pelo menos para o ufw 0,35, essa suposição estaria errada. De fato, a lógica LIMIT IN imediatamente aceita qualquer entrada não rejeitada pelo critério de limite.
No psuedocode, a lógica LIMIT é
if CONDITION then DENY else ACCEPT
enquanto outras regras ufw parecem ter lógica:
if CONDITION then (DENY|ACCEPT) else continue to next rule
.Pessoalmente, achei que havia um comportamento inesperado para o ufw LIMIT, que só descobri inesperadamente ao encontrar muitas tentativas de login da porta 22 no arquivo de log do sistema, que nunca deveriam ter acontecido devido à filtragem por outras regras do ufw.
Detalhes de confirmação de comportamento
As linhas relevantes do código iptables inseridas pelo ufw são as seguintes:
A lista acima pode ser criada com
As duas primeiras linhas são consecutivas
ufw-user-input
e podem ser confirmadas comfonte