È possibile visualizzare gli indirizzi IP degli utenti anonimi / ospiti?
E/o il numero di connessioni da ciascuno?
Il mio sito sta ricevendo centinaia e centinaia di visualizzazioni di pagine al minuto, da qualche ora, anche l’utilizzo del processore è al massimo al 100%.
Hai controllato i tuoi log di Nginx (o qualunque cosa tu stia usando)? Quelli sono bot e tentativi di intrusione. Non fai nulla con gli IP. Cambieranno dopo pochi tentativi (gli IP sono comunque inutili, cambieranno sempre comunque). Dovresti iniziare a fare il geo-blocking (pochissimi siti sono veramente globali) e bannare molti user agent a livello di server; almeno tutti gli scraper SEO totalmente non necessari e avidi, i bot che si identificano come IE5.x ecc.
Come funziona effettivamente quel limite di frequenza (no, non ho cercato la risposta). Si attiverà dopo un certo numero di richieste in un determinato lasso di tempo per IP?
Comunque, quando c’è una situazione simile a un ddos nel senso che, ad esempio, se un URL viene menzionato in qualche stupida lista, inizia un’inondazione da IP provenienti da Cina, Pakistan, Iran, Iraq, Vietnam e Russia, più molti da grandi servizi VPS, principalmente da USA, Francia e Germania. Quando provano 3 volte e cambiano IP, il limite di frequenza non aiuta molto.
A un certo punto ho ricevuto molte ricerche stupide. E molte significa che un droplet da 5 USD di DigitalOcean è andato in crash e ho avuto quasi zero richieste da parte di umani.
Questa è più o meno una questione di webserver, non di Discourse. Quei disturbatori dovrebbero essere bloccati prima di un’app. So che la mia situazione/soluzioni sono molto più facili di quelle dell’OP o della maggior parte dei webmaster qui perché sono finlandese e il mio forum è puramente finlandese, quindi bannare a livello mondiale è possibile per me (beh, i finlandesi che vivono fuori dalla Finlandia la vedono diversamente )
Ma indipendentemente dal limite di frequenza, almeno i falsi user agent dovrebbero essere fermati subito.
Come sono gli SSH-knocker? Anche quelli consumano risorse.
Se stai riscontrando problemi di ddos, allora ti consiglierei cloudflare (cosa che faccio quasi mai). Assicurati di utilizzare il template di cloudflare e poi disattiva le ottimizzazioni (o leggi attentamente come configurarle).
Non è un vero attacco ddos. Ma quando ci sono molte richieste dello stesso tipo, queste agiscono come un attacco ddos, il risultato è lo stesso. Uso Varnish e Fail2ban oltre al geo-blocking e questi fanno il lavoro per me.
Il mio primo pensiero è stato semplicemente di essere stato “slashdotted”, ma 24 ore dopo vengo ancora attaccato.
La rapida soluzione temporanea è stata chiudere la porta principale e impostare il sito su “richiesta di accesso”. Questo ha funzionato, l’utilizzo della CPU è sceso dal 100% al 3% entro 60 secondi.
Non appena riapro la porta principale, la mia pagina /search viene immediatamente bombardata con spazzatura come:
Questo accade entro 60 secondi dalla riapertura del sito.
Siamo un piccolo gruppo di nicchia, non so perché qualcuno dovrebbe prenderci di mira con qualcosa
È solo una stima, ma secondo Google Analytics normalmente abbiamo da 8 a 10 utenti attivi e questo sale a oltre 1.000 nel giro di pochi secondi da quando riapro il sito al pubblico. Tutte le connessioni risultano provenire da varie parti degli Stati Uniti, tutte dirette senza referrer.
Lascerò il sito chiuso solo ai membri per qualche giorno e vedrò se scompare, o se riesco a limitare /search solo agli utenti registrati e, in caso contrario, probabilmente dovrò passare alla soluzione cloudflare.
Penso che tu possa anche guardare in /var/discourse/shared/log/var-log/nginx/.... (o qualcosa di molto simile). Ci sono altre impostazioni come slow down crawler user agents se cerchi nelle impostazioni “agent”.
Tutte queste impostazioni aiutano solo se un bot seguirà limiti e guide. Anche googlebot non lo fa sempre e quelli cattivi mai. Questo è uno dei motivi per cui robots.txt è così inutile.
E disclaimer. Non so se Discourse stia usando qualche altra tecnologia per rallentare.
No, non lo siamo. Perché la tua domanda era un po’ fuori strada Volevi sapere un piccolo dettaglio quando invece dovresti chiedere “cosa fare quando il mio Discourse è sotto attacco bot/ddos”.