iptables -A INPUT -m string --alog bm --string attack_string -j DROP
Há alguns problemas com essa ideia.
Primeiro, você deve ver a documentação relevante:
Please do use this match with caution. A lot of people want to use this match to stop worms, along with the DROP target. This is a major mistake. It would be defeated by any IDS evasion method.
In a similar fashion, a lot of people have been using this match as a mean to stop particular functions in HTTP like POST or GET by dropping any HTTP packet containing the string POST. Please understand that this job is better done by a filtering proxy. Additionally, any HTML content with the word POST would get dropped with the former method. This match has been designed to be able to queue to userland interesting packets for better analysis, that's all. Dropping packet based on this would be defeated by any IDS evasion method.
O objetivo da diretiva -string
é colocar pacotes em uma fila ou cadeia separada para processamento por um sistema IDS. Ele não foi projetado para interpretar as informações da camada 7 de forma holística / comportamental ou usando a correspondência de assinatura e, em seguida, descartando-a depois que ela for determinada como "ruim". Então, em segundo lugar, a diretiva -string
não é sofisticada o suficiente para o seu caso de uso e você provavelmente acabará descartando pacotes que deseja manter.
Você também notará que não há string no pacote que você pode alimentar para -string
. O pacote mostrado pelo TCPDump é ilegível uma vez traduzido para (presumivelmente) ASCI. O argumento -string
é realmente projetado para procurar por coisas como comandos HTTP Post onde você tem strings no pacote. Se você quisesse seguir com sua idéia de usar o iptables como um sistema de IDS correspondente a uma assinatura, você provavelmente desejaria usar o U3 Capacidade de correspondência para procurar padrões de bits específicos.
Terceiro, e mais importante, no momento em que os pacotes envolvidos em uma Negação de Serviço chegam à sua máquina e estão sendo processados pelo seu firewall, o dano já está feito. Qualquer atenuação significativa de um ataque de negação de serviço envolverá trabalhar com seu provedor de upstream para bloquear o tráfego antes atingir seu servidor.