• User Attivo

    Aiuto uregente... 8Gb di traffico in mezza giornata...

    Ciao a tutti,
    non so se questa è la sezione giusta...
    ho un problema piuttosto urgente: ho un server dedicato su Aruba con traffico mensile limitato a 25 Gb. Due giorni fa qualcuno è arrivato su un mio sito molto corposo (piu di 10.000 pagine e 10.000 doc pdf) e si è messo a scaricare con punte di 2.3 Mb/s 8Gb di roba. E' la seconda volta che capita... e il sito ha solo un paio di mesi di vita.
    E' possibile limitare il problema in base al volume di traffico? Creare (non so come:bho:) una regola che dopo tot traffico blocchi il visitatore?

    Considerate che lavoro sotto linux.
    Grazie


  • Moderatore

    premesso che il miglior modo sarebbe bannare l'IP usato per scaricare i dati

    puoi usare il modulo mod_throttle che ti permette di fissare una velocità massima per i download in modo da ridurre la quantità di dati scaricati dall'harvester


  • User Attivo

    Ciao Paolino,
    grazie della risposta.

    Agire sull'IP non credo risolva il problema, primo perché è un IP dinamico di un noto fornitore di adsl in Italia, basta disconnettere e riconnettere il modem e il gioco è fatto.
    In secondo luogo il problema è che ogni tanto qualche utente più o meno normale decide di tirarsi giù il sito e quando me ne accorgo è tardi...

    mod_throttle non lo conosco, consente di limitare la velocità di navigazione per ogni singola richiesta (IP)? Considera che il sito lo hanno tirato giù con httrack che è un programma per la copia in locale di un sito web e che equivale alla navigazione di un utente normale se si eccettua lo user agent...

    Forse potrei mappare gli user agent di programmi simili a questo e bloccarli, ma non ho idea di quale strumento utilizzare...

    Tu che limite imporresti con mod_throttle?

    Grazie ancora


  • Moderatore

    se l'user-agent è visibile nelle richieste allora è semplice

    puoi usare il modulo mod_setenvif......devi modificare il file .htaccess in questo modo

    
    SetEnvIfNoCase User-Agent "^httrack" bad_bot
    <Limit GET POST>
    Order Allow,Deny
    Allow from all
    Deny from env=bad_bot
    </Limit>
    
    
    

    in pratica se la stringa USER_AGENT inizia con HTTrack ( il confronto è case insensitive ) setta la variabile bad_bot

    successivamente il Deny nega l'accesso alle sessioni che hanno la variabile bad_bot settata, in pratica alle connessioni provenienti da HTTrack

    è chiaro che si possono impostare condizioni multiple, escludendo così tutti i bot più noti, ovviamente la lista è parecchio lunga


  • User Attivo

    Ciao paolino,
    non riesco a farlo funzionare... forse non ho capito bene però come integrarlo con le regole già presenti, che sono 5 righe, riporto la prima ma le altre sono simili:
    RewriteRule ^(c[0-9]+)_([0-9]+)-([^/]+).htm$ classi.php?id=$1&pag=$2&cat=$3

    Tra i tentativi fatti ho provato a mettere quello che hai postato tu prima delle mie regole, ma senza alcun risultato...


  • Moderatore

    devono essere separati, nel senso che il codice che ho postato va messo al di fuori del blocco di rewrite

    quindi il codice è meglio metterlo o all'inizio o alla fine del file .htaccess

    inoltre bisogna attive il modulo sefenvif se non è già attivo....quest'ultimo passaggio dipende dalla distribuzione linux e dalla versione di apache....

    la documentazione ufficiale si trova qui http://httpd.apache.org/docs/1.3/mod/mod_setenvif.html

    e qui per la versione 2 di Apache http://httpd.apache.org/docs/2.0/en/mod/mod_setenvif.html


  • User Attivo

    Ciao paolino,
    SetEnvIf è attivo... SetEnvIfNoCase è lo stesso modulo?


  • Moderatore

    @ceccus said:

    Ciao paolino,
    SetEnvIf è attivo... SetEnvIfNoCase è lo stesso modulo?

    si è una direttiva dello stesso modulo.....

    se hai dubbi puoi anche provarre SetEnvIf, tenendo però presente che dovrei mettere la stringa dello user agent con l'esatto casing che compare nelle stats del tuo sito


  • User Attivo

    mah...
    ho provato a fare così e funziona:

    RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider
    RewriteCond %{HTTP_USER_AGENT} ^Zeus
    RewriteRule ^.* - [F,L]

    con una lista abbastanza lunga e funziona, nel senso che HTTrack ora viene bloccato. Non avevo riflettuto però sul fatto che lo user agent può essere camuffato:

    teleport pro (almeno il mio) lo camuffa e risulta solo un anonimo:

    Mozilla/5.0 (compatible; MSIE 5.0)

    mi sa che devo tentare altre strade...


  • User Attivo

    Potresti anche impedire il download dei file .pdf se il referer non è il tuo sito 😉
    Ad esempio sul mio sito non si possono scaricare i file .zip dei giochi se non soltanto quando si richiede il download dal mio sito.
    In questo modo è vietato l'"hotlink" (il "linkaggio" dei mie file .zip su altri siti).

    La regola dovrebbe essere questa (inseriscila in un file .htaccess):

    
    RewriteCond %{HTTP_REFERER} !^http://(.+\.)?www.indirizzodeltuosito.ext/ 
    RewriteRule \.(pdf)$ - [NC,F]
    
    

    Ciao 🙂


  • User

    @ceccus said:

    mah...
    ho provato a fare così e funziona:

    RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider
    RewriteCond %{HTTP_USER_AGENT} ^Zeus
    RewriteRule ^.* - [F,L]

    con una lista abbastanza lunga e funziona, nel senso che HTTrack ora viene bloccato. Non avevo riflettuto però sul fatto che lo user agent può essere camuffato:

    teleport pro (almeno il mio) lo camuffa e risulta solo un anonimo:

    Mozilla/5.0 (compatible; MSIE 5.0)

    mi sa che devo tentare altre strade...

    Usa il mod_cband per apache:

    Può impostare banda e traffico max per ogni vhost e tutta un'altra serie di parametri molto interessanti. Via web ti da anche lo stato in tempo reale...


  • User Attivo

    Grazie a tutti dell'aiuto, veramente prezioso.

    Per il blocco dei pdf tramite refer l'idea è caruccia, purtroppo la escludo perché google apprezza i pdf e li raggiunge per chiamata diretta.

    Per quanto concerne mod_cband purtroppo non c'è di default sul mio apache, ma sembra proprio fare al caso mio, ora provo ad installarlo e vi tengo aggiornati.

    Grazie


  • User Attivo

    @ceccus said:

    mah...
    ho provato a fare così e funziona:

    RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider
    RewriteCond %{HTTP_USER_AGENT} ^Zeus
    RewriteRule ^.* - [F,L]
    Non avevo riflettuto però sul fatto che lo user agent può essere camuffato:

    teleport pro (almeno il mio) lo camuffa e risulta solo un anonimo:

    Mozilla/5.0 (compatible; MSIE 5.0)

    mi sa che devo tentare altre strade...
    C'è ScrapBook, un plugin "scaricatore" per Firefox, che penso mostri come riferimento firefox.
    Quindi è inutile.


  • User Attivo

    Grazie,
    valent, sto percorrendo infatti la strada di cband che pare funzionare, anche bene da quello che sono riuscito a vedere.

    Sono riuscito nell'installazione ma non ho ancora trovato il bandolo della matassa. Le istruzioni che sono riuscito a trovare sono:

    sulla velocità:

    CBandSpeed 512 10 30
    CBandRemoteSpeed 128 3 3

    la prima consente una velocità max 512 con max 10 richieste al secondo e max 30 connessioni aperte. La seconda istruzione è come la prima ma si riferisce al singolo client remoto.

    sul traffico:

    CBandLimit 3G
    CBandPeriod 4W

    Che limita il singolo virtual host a 3G per 4 settimane. Ovviamente, non ho trovato come limitare il traffico per un singolo IP (sconosciuto, se noto è fattibile)...

    Intanto blocco la velocità per un singolo user limitandola a... suggerimenti?