Recentemente, notei um enorme pico de “Outro tráfego” na página de saúde da comunidade do meu fórum (painel de administração do Discourse → Relatórios → Saúde da comunidade).
Este “Outro tráfego” parece anormal e é muito maior do que a atividade real do usuário. As inscrições estão estáveis, então não parece um crescimento genuíno.
Minhas perguntas são:
O que “Outro tráfego” geralmente significa no Discourse?
Poderiam ser bots, spam ou um proxy reverso/CDN mal configurado?
Como posso reduzir ou filtrar esse tráfego? (por exemplo, Nginx, firewall, configurações do Discourse)
É seguro simplesmente ignorar, ou isso afetará o desempenho/custo?
Quaisquer sugestões ou melhores práticas para lidar adequadamente com esse tipo de tráfego de terceiros/bots seriam muito úteis.
Tive problemas em julho com muitas solicitações de Singapura. Bloqueei um intervalo de IPs, o que funcionou por um tempo, mas o problema voltou com mais força em agosto (de Singapura, Hong Kong e México) com um custo de CDN alto e inesperado
Notei um alto número de pageviews de Amazonbot, DataForSeoBot, meta-externalagent, SeekportBot, etc…
Esta lista não contém alguns dos meus bots mais visitantes, mas tenho uma pergunta mesmo assim.
Seria aconselhável adicionar toda esta lista à configuração Blocked crawler user agents?
Existe uma maneira de adicionar vários nomes de bots de um arquivo .txt?
Crawlers vêm com a intenção de indexar seu site em motores de busca, então o aumento de tráfego deles deve ser mínimo, exceto se forem bots que se disfarçam de crawlers. Muitos fóruns não querem ser indexados por crawlers e esta é a opção para fazer isso: Crawlers carregam uma identidade/referência de sua origem, então aqui você pode adicionar qualquer nome que desejar que permitirá apenas essa origem para o crawling (ahah, que palavra estranha )
A fonte mais provável responsável pelo aumento do seu tráfego são bots e você deve verificar os logs do seu servidor para isso. Se você conhece alguém que sabe o básico de Linux, eu sugeriria esta ferramenta de configuração de 2 minutos para bloquear países com reputação de bots ruins (você pode encontrar isso facilmente online). Após a configuração, ainda é bom informar sua comunidade que eles podem precisar de uma VPN para acessar seu site se acabarem de férias nesses países. Aqui está a ferramenta, é eficiente, ela cortará em 80-90% as requisições desnecessárias feitas ao seu servidor. Você tem 2 modos e deve escolher um deles: países permitidos ou países proibidos.
Você também pode usar Geo Blocking plugin, mas ele bloqueia apenas a visualização da página, e não as requisições diretas feitas ao seu servidor como a ferramenta acima faz.
Você tem total certeza disso? Porque se for verdade, vou começar um proxy reverso imediatamente.
Editar
A IA aqui disse o mesmo. Então, será um proxy reverso.
Resposta da IA
O plugin GeoBlock para Discourse usa o banco de dados MaxMindDB para determinar o país ou rede (ASN) de um usuário com base em seu endereço IP, mas o bloqueio real ocorre no nível do aplicativo (dentro do aplicativo Discourse), não no nível do servidor ou rede/firewall.
Na prática:
Se o IP de um visitante corresponder a um país ou rede bloqueados, o aplicativo Discourse retorna uma página de erro ao visitante em vez do conteúdo do fórum.
O bloqueio não ocorre até que a solicitação HTTP atinja o aplicativo Discourse. Em outras palavras, as solicitações ainda passam pelo seu servidor web (por exemplo, nginx) e contêiner Docker e chegam ao software Discourse antes que o usuário seja bloqueado.
Isso significa que você ainda verá essas solicitações em seus logs de servidor e proxy/nginx, mesmo que o usuário seja finalmente bloqueado pelo Discourse.
Se você precisar de um bloqueio “rígido” (impedindo o acesso mesmo antes que a solicitação atinja o aplicativo Discourse), você precisaria de uma solução GeoIP no nível do servidor (como bloqueio no nível nginx/iptables ou uma ferramenta externa).
Resumo:
O plugin Discourse GeoBlock não bloqueia as solicitações no nível da rede/servidor, mas apenas depois que o aplicativo Discourse processa a solicitação. Se você precisar impedir qualquer acesso antes que seu aplicativo veja a solicitação, você deve usar uma abordagem GeoIP no nível do servidor.
Eu não usei share conversation porque perguntei em finlandês e vocês provavelmente não conseguem entendê-lo
Implica que sua página é alcançada, então sim, você está em uma camada mais próxima do servidor do que um bloqueio feito no nível do firewall, no entanto, não significa que seja um problema de segurança que exija um proxy reverso.
A ferramenta que propus já é 80% menos solicitação e o discourse é um aplicativo seguro, agora se você tem outras coisas hospedadas em seu servidor, como um site, um proxy reverso pode ser útil, enquanto isso existem outras soluções para bloquear IPs com reputações ruins como o Crowdsec, pergunte à sua IA sobre o crowdsec light
(autor do plugin de geobloqueio aqui)
Sim, o plugin de geobloqueio interrompe as solicitações no nível do aplicativo, embora o faça em um estágio muito inicial. O motivo é que ele foi projetado para mostrar uma página de erro amigável ao usuário, portanto, ele deve ser capaz de carregar os ativos do Discourse e mostrar essa página. Ele também registra quaisquer bloqueios em /logs, se configurado para fazer isso.
Outras vantagens dessa abordagem são a capacidade de configurar os países e redes bloqueados dentro do Discourse e a capacidade de não apenas bloquear o acesso, mas também forçar a moderação.
Se você está preocupado com o aumento de logs ou o consumo de largura de banda da CDN, o plugin não é para você, mas, para ser sincero, não acho que essas duas coisas importam muito.