DevSecOpsARTIGO

Monitore todas as solicitações HTTP (como TCPdump) em um servidor Linux com httpry

Não seria muito legal se você pudesse executar uma ferramenta como o tcpdump e ver todas as solicitações HTTP de uma forma legível?

Não seria muito legal se você pudesse executar uma ferramenta como o tcpdump e ver todas as solicitações HTTP que fluem por meio da rede, de uma forma legível?

Porque, vamos ser honestos, algo como isso está longe de ser legível.

$ tcpdump -i eth0 port 80 -A
20:56:08.793822 IP 172.28.128.1.49781 > 172.28.128.3.http: Flags [S], seq 1641176060, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 1225415667 ecr 0,sackOK,eol], length 0
E..@V.@.@............u.Pa.[..........-.............
...

Isso diz que algo está fluindo ao longo da rede, mas você com certeza não pode ler o que está acontecendo nela com precisão. Você reconhece palavras-chave, mas é só isso.

Existem ferramentas lá fora que fazem um trabalho melhor, como httpry.

Ele existe há tempo suficiente para estar presente na maioria dos repositórios de servidores LinuxLinux34 conteúdosKali Linux em um Servidor VPS: como, quando e por que usar?DevSecOps · dez 2024Construindo um Windows Service ou Linux Daemon com Worker Service & .NET Core – Parte 2Dev (Back & Front) · jul 2020Criando uma WebApi utilizando .NET, Linux e VSCodeDev (Back & Front) · ago 2019Ver tudo em DevSecOps até agora. Instale-o pelo seu gerenciador de pacotes preferido.

$ yum install httpry
$ apt-get install httpry

Depois de tê-lo instalado, você pode executá-lo em seu servidor para começar a monitorar chamadas HTTP.

$ httpry -i eth0
172.28.128.1  172.28.128.3  >  HEAD  ma.ttias.be  /  HTTP/1.1  -    -
172.28.128.3  172.28.128.1  <  -     -            -  HTTP/1.1  301  Moved Permanently

Para emitir o resultado acima, execute o seguinte comando:

$ curl -I 172.28.128.3 -H "Host: ma.ttias.be"

Ele fez um pedido do cabeçalho HEAD (-I) e obteve um retorno HTTP 301 de volta.

Quer ver quantas solicitações HTTP por segundo das que estão fluindo pelo vhost são as mais ativas? Comece executando httpry com o parâmetro -s.

$ httpry -i eth0 -s
...
2015-08-06 21:06:56	infinite-download.ma.ttias.be	19 rps
2015-08-06 21:06:56	enginehack.ma.ttias.be	61 rps
2015-08-06 21:06:56	totals	30.69 rps
2015-08-06 21:07:01	infinite-download.ma.ttias.be	21 rps
2015-08-06 21:07:01	enginehack.ma.ttias.be	56 rps
2015-08-06 21:07:01	totals	32.41 rps

A cada 5 segundos, a saída mostra os pedidos feitos nesse último intervalo. Ele mostra o cabeçalho Host: usado ​​nesse pedido e a quantidade de pedidos que foi recebida.

Por enquanto, a ferramenta não funciona em pedidos HTTPS; mesmo assim, ela é útil para ter em seu arsenal.

***

Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/monitor-all-http-requests-like-tcpdump-on-a-linux-server-with-httpry/

Trabalha com programação de linguagens e servidores há mais de 10 anos. Atualmente, trabalha na Nucleus como desenvolvedor e engenheiro de sistemas. Seus interesses incluem Linux, Apache, MySQL e PHP.

Ver perfil