iptables Exclusão de ratelimit HTTP com --string Debian 8

0

Estou tentando limitar as solicitações HTTP a um máximo de 20 solicitações / segundo, se mais do que isso for rejeitado, mas desejo excluir solicitações para arquivos (.png, .js, .css) desta regra. Usei o código a seguir

iptables -N RATELIMITING
iptables -I INPUT -p tcp --dport 80 -m string --algo bm --string "/" -j RATELIMITING
iptables -A RATELIMITING -p tcp --dport 80 -m string --algo bm --string "\.(jpe?g|png|gif|js|css|woff)$" -j RETURN
iptables -A RATELIMITING -p tcp --dport 80 -m state --state NEW -m recent --set
iptables -A RATELIMITING -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 1 --hitcount 20 -j REJECT --reject-with tcp-reset
iptables -A RATELIMITING -j RETURN

bloqueia solicitações com mais de 20 solicitações, mas não exclui arquivos (.png, .js, .css) da regra. Se eu enviar 20 solicitações para esses arquivos, você também será bloqueado, o que estou fazendo de errado aqui ?

    
por JacLB 19.03.2018 / 17:49

1 resposta

0

Minha página iptables-extensions man não menciona que expressões regulares são permitidas aqui, então acho que não são. Você terá que criar regras separadas para suas escolhas. (E como uma nota lateral, você não precisa repetir a parte -p tcp --dport 80 na sua corrente RATELIMITING : isso é sempre verdade lá na sua configuração.)

    
por 20.03.2018 / 09:27