Estou usando o iptables no Ubuntu Server. É um servidor web em um VPS.
Gostaria de saber se devo limitar os pacotes de taxa. Em caso afirmativo, como devo limitar a taxa? E devo fazer isso globalmente ou por endereço IP?
Referência
: vi pessoas sugerindo isso:
# Limit packet traffic on a TCP or UDP port:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m limit --limit $lim/s --limit-burst $lb -j ACCEPT
# Limit established/related packet traffic:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit $lim/s --limit-burst $lb -j ACCEPT
Acima, um limite de taxa global não parece muito útil, pelo menos nos casos que posso imaginar. Existe algum caso em que eu deva limitar a taxa globalmente?
Eu acredito que um limite de taxa por IP geralmente é melhor:
# Add the IP to the list:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m recent --set --name RATELIMITED
# Drop if exceeded limit:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m recent --update --seconds $sec --hitcount $hc --rttl --name RATELIMITED -j DROP
# Accept if inside limit:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -j ACCEPT
Pergunta adicional: IPs remotos podem ser falsificados. Como limitá-los corretamente?
Foi adicionada outra pergunta para isso:
/server/340258/how-to-rate-limit-spoofed-ips-with-iptables
O objetivo
que estou tentando reduzir é o risco de alguns ataques D / DoS e abuso geral.
Relacionado
Como posso classificar conexões SSH limitadas com iptables?
PS : Acabei de abrir uma pergunta relacionada apenas para o ICMP e inclui limitação de taxa para este protocolo: iptables | Tipos de ICMP: quais são (potencialmente) prejudiciais?