fbpx

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 nosso curso de Firewall Iptables.

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 🙂

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

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.