De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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/)
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
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários