você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

Como agir em casos de ataque do tipo Denial of Service - DOS

Colaboração: Aldemari Borges

Data de Publicação: 07 de fevereiro de 2011

Para proteger o seu servidor de ataques do tipo DOS (Denial of Service), você pode agir de duas formas: implantando regras em seu firewall que rejeitem tentativas repetidas de acesso, a partir de um mesmo endereço IP e através da instalação de um módulo do apache que atue na mesma linha.

Detalhamos a seguir os passos a serem seguidos:

Passo 1: Adicionar regras em cada servidor Apache que responder pelo domínio a proteger, como abaixo:

Adicionar estas linhas de IPTABLES no Linux:

<root@~># iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
<root@~># iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 6 -j DROP

Passo 2: Utilizar o módulo mod_qos(http://sourceforge.net/projects/mod-qos/)

Pré-requisitos básicos

  1. apache2-threaded-dev(Este pacote fornece os cabeçalhos de desenvolvimento e o binário apsx2 para versões do apache2 com fluxos de execução paralelos.

    Ver: http://packages.ubuntu.com/maverick/apache2-threaded-dev);

  2. gcc(Este é o compilador C da GNU, um compilador otimizado realmente portável para C. Ver: http://packages.ubuntu.com/maverick/gcc)

Façamos então a instalação do mod_qos(Ubuntu 10.10):

Para 32 bits

wget http://pixie.sd.chgo.fastservers.net/ubuntu/pool/universe/liba/libapache2-mod-qos/libapache2-mod-qos_9.25-1_i386.deb
dpkg -i libapache2-mod-qos_9.25-1_i386.deb

Para 64 bits

wget http://pixie.sd.chgo.fastservers.net/ubuntu/pool/universe/liba/libapache2-mod-qos/libapache2-mod-qos_9.25-1_amd64.deb
dpkg -i libapache2-mod-qos_9.25-1_amd64.deb

Crie o arquivo de configuração do módulo, como abaixo:

vi /etc/apache2/mods-available/qos.conf

<IfModule mod_qos.c>
    # handles connections from up to 100000 different IPs
    QS_ClientEntries 100000
    # will allow only 50 connections per IP
    QS_SrvMaxConnPerIP 50
    # maximum number of active TCP connections is limited to 256
    MaxClients              256 
    # disables keep-alive when 70% of the TCP connections are occupied:
    QS_SrvMaxConnClose      180
    # minimum request/response speed (deny slow clients blocking the server,
    # ie. slowloris keeping connections open without requesting anything):
    QS_SrvMinDataRate       150 1200
    # and limit request header and body (carefull, that limits uploads and
    # post requests too):
    # LimitRequestFields      30
    # QS_LimitRequestBody     102400
</IfModule>

Agora basta adicionar o módulo ao apache e reinicializar o apache:

a2enmod qos
/etc/init.d/apache2 restart

Para verificar o funcionamento do módulo, acesse através de um navegador, como abaixo:

http://localhost/server-status


Veja a relação completa dos artigos de Aldemari Borges