CPU 100% com Tomcat 7 no Debian 8

CPU 100% com Tomcat 7 no Debian 8

Estou tendo um problema com a configuração padrão do Tomcat 7 no Debian 8.

Problema: Peguei a CPU do meu servidor, devido ao processo java, salto para 100% e fico lá por horas deixando o servidor lento. Se eu reiniciar o servidor Tomcat, a CPU voltará para 1%. Depois de algumas horas o problema recomeça.

Status do aplicativo Java: Nenhum aplicativo Java personalizado está instalado no Tomcat, portanto, este é provavelmente um problema do Tomcat.

Logs: Assistindo catalina.out encontrei esta mensagem de erro em correspondência ao início do pitch da CPU

19 de janeiro de 2017 1:03:23 org.apache.coyote.http11.AbstractHttp11Processor process INFO: Erro ao analisar o cabeçalho da solicitação HTTP

Como replicar: Após a reinicialização do servidor, tentei acessar a página inicial do servidor Tomcat usando https visitando este URL através de um navegador da web

https://domínio.com:8080

e pronto, a CPU começa a enlouquecer e recebo o log como antes.

O que isso significa: Isso significa que qualquer pessoa com uma solicitação especial pode fazer DDOS em meu servidor

Pergunta: Existe alguma maneira de resolver esse problema sem alterar minha distribuição Linux ou versões empacotadas do Tomcat usadas pelo apt?

Estou usando uma nova imagem padrão do debian 8 do Google Compute Engine. tomcat 7.0.56Java 1.7.0_111

Responder1

Eu tive exatamente o mesmo problema com o Debian 8, tomca7.0.56.

Para mim, atualizar para a versão backport resolveu o problema. Eu atualizei tomcat7, tomcat7-common, libtomcat7-java e libservlet3.0-java para a versão =7.0.73-1~bpo8+1 (assim: apt-get install tomcat7=7.0.73-1~bpo8+1)

Acho que temos um enorme problema de segurança com a versão atual do Tomcat 7.0.56 no Debian 8. Com a configuração padrão, todos que simplesmente chamam https://domain.tld:8080 fazem com que a CPU aumente para 100% até você reiniciar o Tomcat !

Responder2

Resumindo, apliquemétodo científico.

  • Descubra o que está escutando na porta 8080.
  • Descubra como ele está configurado.
  • Entenda o que ele está fazendo.
  • Tome as medidas apropriadas

Responder3

Tenho exatamente o mesmo problema e as mesmas configurações de sistema. Quando eu reinicio o servidor, tudo ficará bem por um ou dois dias e, novamente, o Tomcat7 usa cerca de 99% da CPU.

Dessa vez eu fiz isso:

parada de serviço tomcat7

E ainda está funcionando para mim. Eu não uso Java, como você mencionou, então está tudo bem para mim.

informação relacionada