fbpx Proteção Contra DoS no Linux: Detectar e Mitigar Ataques | Certificação Linux

Como saber se você está sendo atacado com Denial of Service?

📅 03/10/2018 ⏱ 5 min ✍️ Uira Ribeiro
Linuxcomandos
Como saber se você está sendo atacado com Denial of Service?
Exam Pass App — mais de 7.000 questões LPI, offline, em 5 idiomas, disponível no Android e na App Store
Disponível no
Google Play
Disponível na
App Store

Os ataques do tipo Denial of Service são difíceis de mitigar, uma vez que eles geralmente se passam por conexões normais e tráfego normal, mas de forma abundante, até que o servidor não tenha mais recursos para resolver as solicitações e o serviço ficar indisponível.

Uma das maneiras de você verificar se há conexões demais e de onde elas vem é com o comando netstat.

A maneira mais simples é listar as conexões com o comando netstat -an

$ netstat -an

Conexões Internet Ativas (servidores e estabelecidas)

Proto Recv-Q Send-Q Local Address               Foreign Address             State      

cp        0      0 0.0.0.0:11211               0.0.0.0:*                   OUÇA       

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   OUÇA       

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   OUÇA       

tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   OUÇA       

tcp        0      0 127.0.0.1:11211             127.0.0.1:51898             ESTABELECIDA

tcp        0      0 127.0.0.1:11211             127.0.0.1:51570             ESTABELECIDA

tcp        0      0 127.0.0.1:11211             127.0.0.1:53800             ESTABELECIDA

tcp        0      0 127.0.0.1:53800             127.0.0.1:11211             ESTABELECIDA

tcp        0      0 127.0.0.1:11211             127.0.0.1:52002             ESTABELECIDA

Mas isso é difícil de contar, pois as conexões de ataque de negação de serviço são rápidas.

A opção viável, ainda com o comando netstat é:

$ netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

     34 127.0.0.1

      1 50.31.164.148

      1 50.31.164.147

      1 50.31.164.146

      1 35.155.143.94

      1 10.8.0.6

Desta forma esse comando irá contar as conexões estabelecidas por endereço IP de origem.

Você também pode fazer uma alteração no comando acima, para listar por exemplo somente as conexões na porta 80:

netstat -lan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

      1 0.0.0.0

      1 169.254.169.254

      2 127.0.0.1

     64 149.56.180.254

Neste exemplo, esse servidor está sofrendo um ataque de SYN_SENT, vindo do ip 149.56.180.254 com 64 conexões, que pode ser confirmado através do netstat:

netstat -an|grep 149.56.180.254

tcp        0      0 172.30.1.187:80             149.56.180.254:38165        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:5557         SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:3605         SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:18728        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:35138        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:23965        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:41358        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:44263        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:52759        SYN_RECV   

Neste caso, podemos levantar uma regra de IPTABLES para fazer um DROP de todas conexões vindas deste endereço:

# iptables -I INPUT -s 149.56.180.254 -j DROP

Rodando o netstat novamente podemos observar que os pedidos de conexões SYN se foram:

# netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

      1 0.0.0.0

      1 169.254.169.254

      2 127.0.0.1

Gostou deste post? Conheça o curso de Firewall Iptables e o Treinamento online de Pfsense, da Certificação Linux

Aprenda muito mais sobre Linux em nosso curso online. Você pode fazer a matrícula aqui com trial de 7 dias grátis. Se você já tem uma conta, pode acessar aqui.

Gostou? Compartilhe :-)

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Depois de anos vendo profissionais perderem horas em tarefas simples por não conhecer as ferramentas certas do Linux, decidi ensinar.
Hoje sou autor da maioria dos Materiais de Aprendizado oficiais da LPI e mentor de mais de 14.000 alunos certificados.

Conheça minha história completa →

Isso foi só uma peça. O curso ensina o caminho completo — do primeiro comando ao dia da prova.

Certificação Linux — a plataforma líder em certificações Linux no Brasil
WhatsApp