AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1025469
Accepted
hardillb
hardillb
Asked: 2020-07-17 04:09:06 +0800 CST2020-07-17 04:09:06 +0800 CST 2020-07-17 04:09:06 +0800 CST

Entradas de log NGINX ímpares

  • 772

Recentemente, atualizei as configurações em uma instância NGINX voltada para o público para adicionar suporte para http2. Ao olhar para os logs depois para sentir com que frequência ele estava sendo usado, vi um rápido aumento em novas entradas de log não relacionadas ao site hospedado.

Primeiro, havia várias entradas fazendo CONNECTsolicitações, todas falhando com 400 erros porque a instância NGINX não está configurada como um proxy de encaminhamento. Configurei regras fail2ban para descartar o tráfego de muitos endereços IP de origem. Eu não estou particularmente preocupado com isso (por favor, adicione um comentário se eu deveria estar).

O próximo conjunto de entradas são GETsolicitações, mas em vez de ter caminhos, eles têm URLs completos como destino, por exemplo

222.223.121.231 - - [16/Jul/2020:12:57:37 +0100] "GET http://api.gxout.com/proxy/check.aspx HTTP/1.1" 404 199 "http://api.gxout.com/proxy/check.aspx" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"

A maioria deles está recebendo 404 respostas novamente como esperado e eu adicionei outra regra fail2ban para descartar pacotes dos endereços IP de origem (novamente não me preocupei muito com isso).

Existem alguns mais semelhantes que estão recebendo 200 respostas e são essas que me preocupam, por exemplo

35.236.60.202 - - [16/Jul/2020:11:52:28 +0100] "GET http://www.nike.com/ HTTP/1.1" 200 396 "-" "python-requests/2.20.0"

Tenho as seguintes perguntas:

  1. Por que o NGINX retornaria um 200 para essa solicitação?
  2. Sugestões de como depurar isso?

Todo o tráfego de entrada deve ser https (obrigatório ou http2) e estou fixado em TLS 1.2 ou 1.3, então não acho que capturar o tráfego com tcpdump vá ajudar (suponho que não posso alimentar a chave privada em wireshark e decodificar os pacotes?).

A única outra opção em que posso pensar é adicionar algum log personalizado ( é possível registrar os dados de resposta no log de acesso do nginx? ) ao NGINX para registrar toda a solicitação/resposta. Eu fiz isso no passado para depurar problemas de troca de token oAuth2.0, mas apenas em um sistema em que eu tinha controle total sobre todo o tráfego de entrada.

nginx
  • 1 1 respostas
  • 416 Views

1 respostas

  • Voted
  1. Best Answer
    Danila Vershinin
    2020-07-17T04:30:53+08:002020-07-17T04:30:53+08:00

    Acho que não há necessidade de depurar ainda mais isso, pois algumas coisas são óbvias:

    O python-requests/2.20.0as User-Agent indica algum script Python. A popular requestsbiblioteca Python torna muito fácil escrever bots simples, sejam bons ou ruins.

    Retornar 200 para um nome de host desconhecido pode ser bastante comum se você tiver um servidor padrão no NGINX que permita a resposta a qualquer Host:cabeçalho.

    Perdoe meu texto, mas por padrão , o servidor padrão no NGINX responderá a qualquer arquivo Host:. Então, o que é necessário para que um 200seja retornado é que seu aplicativo não verifique o nome de domínio e não emita um redirecionamento para o nome de domínio canônico do seu site.

    Como em uma situação típica "você sabe quais domínios você hospeda", qualquer solicitação com um nome de domínio estrangeiro (ou nenhum) pode ser considerada maliciosa/indesejada.

    Você pode querer olhar para a abordagem de bloqueio de honeypot para tais solicitações em que "o domínio não é seu" - a maioria dos bots maliciosos/ruins na verdade apresentarão nada além de IP nu como o valor do Host:cabeçalho, simplesmente porque eles são preguiçosos para verificar quais domínios estão localizados em um determinado IP (lembre-se de que eles encontram suas vítimas simplesmente enumerando redes/endereços IP).

    Quanto às solicitações com um URL completo em vez de URI, isso pode ser qualquer coisa, incluindo bots mal escritos, verificadores de proxy etc.

    Se você tiver muitas dessas solicitações e gerar um 404 atinge seu back-end, eu recomendaria negar isso na configuração diretamente com uma regra simples e possivelmente adicionar um bloco instantâneo em vez de usar Fail2ban.

    location ~ "^https?:/" {
        return 404;
    }
    
    • 2

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve