Autore | Messaggio |
Dino Fedele
Registrato: Mar 23, 2006 Messaggi: 105
|
Oggetto: [RISOLTO] Sito bloccato sentinel |
|
|
Ciao Sniffer, sono di nuovo qua a stressarti! Ma ho davvero un bel problema che mi sta logorando: procedo per punti in maniera da essere chiaro
1. ho un bel vecchio 6.9
2. ho installato sentinel (l'ultima versione compatibile con la 6.9) e il modulo Monitor per le statistiche;
3. ultimamente purtroppo sto subendo molti attacchi che vengono comunque fermati (soprattutto abuse-filter);
4. il problema è questo: quando subisco l'attacco, nella tabella del database nsnst_blocked_ips vengono registrati i riferimenti ed in particolare nel campo ip_addr il numero IP; ogni tanto purtroppo invece dell'IP, non so perchè, viene registrato: "none..." e il sito non è più raggiungibile perchè compare il messaggio di errore del file monitor.php che dice: Fatal error: call to undefined function: sql_query() in ... includes/monitor.php on line 69 oppure altre volte: 106;
- nella linea 69 c'è questa stringa riferita ad un utente registrato: $tempo = sql_query("SELECT date FROM $prefix"._monitor." WHERE username = \"$mvname\" LIMIT 0,1", $dbi);
- nella linea 106 invece c'è questa stringa riferita però a un utente anonimo: $tempo = sql_query("SELECT date FROM $prefix"._monitor." WHERE (ip = \"$ipuser \" AND user = 0) LIMIT 0,1", $dbi);
entrambe le stringhe sono comprese nel codice per: //CONVIERTO LA IP EN UN PAIS/DOMINIO
Per ripristinare il tutto devo continuamente andare nel database e cancellare la relativa stringa: come posso ovviare a questo problema che affligge me e i miei utenti?
Grazie, Sniffer, spero tu riesca anche questa volta se no .... povero me: non so proprio come muovermi !
Ciao, Dino.
|
|
Inviato:
Gio Mar 27, 2008 10:02 pm |
|
|
|
|
Sniffer Amministratore
Registrato: Jul 20, 2003 Messaggi: 3218
Località: Verona
|
Oggetto: |
|
|
Per prima cosa proverei ad aggiornare gli
Su questo forum solo gli utenti registrati possono vedere i links! Registrati o fai il login | se il problema non si risolve potresti prendere in considerazione di eliminare il modulo monitor, tieni presente che Sentinel fa la stessa cosa (Menu IP tracciati).
Fammi sapere
_________________ Non inviatemi pm con richieste di aiuto grazie.
Su questo forum solo gli utenti registrati possono vedere i links! Registrati o fai il login |
|
|
Inviato:
Ven Mar 28, 2008 1:00 am |
|
|
Dino Fedele
Registrato: Mar 23, 2006 Messaggi: 105
|
Oggetto: Grazie |
|
|
Grazie Sniffer
Ora provo: le tabelle di ip 2 country non le ho mai installate: infatti dall'amministrazione di Sentinel risultano vuote. Pensi che posso utilizzare le ultime uscite, anche se il mio sentinel è vecchiotto?
Monitor è un modulo old ma che da molte altre statistiche ed è troppo bellino
Grazie ancora Sniffer, sei una certezza
Ciao, Dino
|
|
Inviato:
Ven Mar 28, 2008 1:06 am |
|
|
Sniffer Amministratore
Registrato: Jul 20, 2003 Messaggi: 3218
Località: Verona
|
Oggetto: |
|
|
Ip2Country dovrebbero funzionare dalla versione 2.5.00 in poi non so quale tu stia utilizzando ma se vuoi provare e hai una versione inferiore prima ti consiglio un backup del database.
_________________ Non inviatemi pm con richieste di aiuto grazie.
Su questo forum solo gli utenti registrati possono vedere i links! Registrati o fai il login |
|
|
Inviato:
Ven Mar 28, 2008 2:01 am |
|
|
Dino Fedele
Registrato: Mar 23, 2006 Messaggi: 105
|
Oggetto: Grazie |
|
|
Ciao Sniffer: ti aggiorno sulla situazione, sempre più problematica purtroppo (il sito mi si ferma infatti una volta al giorno).
La mia versione di Sentinel 2.1 .. non mi consente di aggiornare le tabelle ipcountry ; mi sono accorto di non avere a suo tempo installate quelle fornite con la mia versione perchè richiedono obbligatoriamente ms analysis (modulo che non mi serve avendo già l'ottimo monitor).
Togliere Monitor: voglio lasciare qs possibilità come "ultima spiaggia" ho le sue statistiche fin dall'inizio del mio sito .....
Ho da farti tre domande fondamentali.
1. perchè Monitor deve darmi quel messaggio di fatal error visto che non ha alcun legame (mi sembra) con la tabella di Sentinel dove compare none... che determina l'errore???? Esiste forse un legame tra i due moduli?
2. sto provando una soluzione, ma prima di metterla in atto, trattandosi di sicurezza ed essendo in qs momento sempre sotto attacco, sarei più tranquillo del "tuo ok".
Questo il ragionamento che ho fatto:
- il fatal error è dato dalla presenza nel campo ip_addr della tabella nsnst_blocked_ips di: none... (se infatti invece di cancellare la riga dal database mi limito a sosituire none con un ip qualsiasi il sito torna ad essere raggiungibile);
- ho cercato i none presenti nel modulo sentinel, trovando quello che viene inserito nel campo ip_addr: l'ho verificato ed identificato con certezza grazie ad un attacco successivo: si trova nel file includes/sentinel.php;
- il none (da me rinominato in nonepippo) incriminato si trova in qs funzione del file includes/sentinel.php:
------------------------------------------------------------------------------------------------------------------------------------
function get_ip() {
$client_ip = get_client_ip(); // HTTP_CLIENT_IP
if (strpos($client_ip, ', ') AND isset($client_ip)) {
$client_ips = explode(', ', $client_ip);
if($client_ips[0] != 'unknown' AND $client_ips[0] != 'none' AND $client_ips[0] != '' AND !in_range($client_ips[0])) {
$client_ip = $client_ips[0];
} else {
$client_ip = $client_ips[1];
}
}
$x_forwarded = get_x_forwarded(); // HTTP_X_FORWARDED_FOR
if (strpos($x_forwarded, ', ') AND isset($x_forwarded)) {
$x_forwardeds = explode(', ', $x_forwarded);
if($x_forwardeds[0] != 'unknown' AND $x_forwardeds[0] != 'none' AND $x_forwardeds[0] != '' AND !in_range($x_forwardeds[0])) {
$x_forwarded = $x_forwardeds[0];
} else {
$x_forwarded = $x_forwardeds[1];
}
}
$remote_addr = get_remote_addr(); // REMOTE_ADDR
if (strpos($remote_addr, ', ') AND isset($remote_addr)) {
$remote_addrs = explode(', ', $remote_addr);
if($remote_addrs[0] != 'unknown' AND $remote_addrs[0] != 'none' AND $remote_addrs[0] != '' AND !in_range($remote_addrs[0])) {
$remote_addr = $remote_addrs[0];
} else {
$remote_addr = $remote_addrs[1];
}
}
if (isset($client_ip) && !stristr($client_ip, "none") && !stristr($client_ip, "unknown") AND !in_range($client_ip)) {
return $client_ip;
} elseif (isset($x_forwarded) && !stristr($x_forwarded, "none") && !stristr($x_forwarded, "unknown") AND !in_range($x_forwarded)) {
return $x_forwarded;
} elseif (isset($remote_addr) && !stristr($remote_addr, "none") && !stristr($remote_addr, "unknown") AND !in_range($remote_addr)) {
return $remote_addr;
} else {
return "nonepippo";
}
}
----------------------------------------------------------------------------------------------------------------------------------------
- dalla tabella nsnst_blocked_ips ho potuto verificare come in tutti gli attacchi ricevuti i campi: ip_addr e remote_addr presentino sempre lo stesso IP (come mai? Quale differenza esiste tra i due, non sono forse la stessa cosa?)!
- ho modificato la funzione scritta qui sopra mettendo al posto di nonepippo la variabile "$remote_addr";
....
} else {
return $remote_addr;
}
}
....
in questo modo nella tabella dovrebbe essere riportato l'ip del campo remote_addr che non crea problemi ed è corretto!
- cosa dici: per prima cosa vado forse a compromettere l'azione di Sentinel? Funzionerà? (se mi dai l'ok dal punto di vista della sicurezza lo provo). Secondo me dovrebbe essere OK, ma il problema è che se così fosse, non riuscirei a capire subito se la mia modifica ha avuto effetto visto che a quel punto la tabella verrebbe compilata correttamente (non so se sono riuscito a spiegarmi, ragionamento un po' contorto) e quindi il tuo parere diviene ancora più importante .
3. Cosa mi "perdo" facendo qs modifica?
Se sei ancora qui che leggi .... San Sniffer.
Grazie ancora Sniffer per la tua proverbiale attenzione, efficienza (davvero complimenti: se non vengo più di frequente a trovarti è perchè non voglio abusare della tua gentilezza) e disponibilità.
Ciao, Dino .
|
|
Inviato:
Sab Mar 29, 2008 10:49 pm |
|
|
Sniffer Amministratore
Registrato: Jul 20, 2003 Messaggi: 3218
Località: Verona
|
Oggetto: |
|
|
Per ora non posso darti la certezza del codice che hai postato non conosco il codice di Sentinel in modo così approfondito da poterdi dare la certezza che la modifica non vada a influire negativamente su altre funzioni di Sentinel, questo te lo potrebbe dire con certezza solo chi lo ha realizzato o chi ne segue lo sviluppo
Per quanto riguarda l'errore non c'è nessuna attinanza tra le tabelle del modulo Sentinel e il modulo monitor a meno che il modulo in presenza di alcuni ip che non conosce faccia delle operazioni che Sentinel le considera non permesse.
Ma non ritengo sia il tuo caso visto che il sito non viene bloccato da Sentiel con la relativa schermata di avvisto ma viene solo visualizzato un errore del modulo monitor.php.
Quello che mi domando è se il sito torna a funzionare quando elimini l'ip della tabella nsnst_blocked_ips?
_________________ Non inviatemi pm con richieste di aiuto grazie.
Su questo forum solo gli utenti registrati possono vedere i links! Registrati o fai il login |
|
|
Inviato:
Dom Mar 30, 2008 7:03 pm |
|
|
Dino Fedele
Registrato: Mar 23, 2006 Messaggi: 105
|
Oggetto: Grazie |
|
|
Ciao Sniffer.
Allora ... Citazione: | Quello che mi domando è se il sito torna a funzionare quando elimini l'ip della tabella nsnst_blocked_ips? |
Si quando tolgo il none... (che doveva essere un IP) tutto torna ok; ho inoltre scoperto che per la comparsa dell'errore (quante prove che ho fatto!!) è necessaria prima la stringa del none poi una successiva regolare ... a quel punto compare il fatal error; cioè: se dopo la stringa col none non ci sono più attacchi tutto funziona ma, appena compare una nuova stringa (regolare) nella tabella ... compare l'errore
Ho provato la modifica e per ora tutto è ok: subiti 3 attacchi Filter abuse senza esito.
La tua risposta però mi preoccupa
La function get_ip() ... non dovrebbe essere solamente quella che prende l'IP del malintenzionato per bannarlo mo solo dopo averlo già fermato? Se prima dava none nel campo ip_addr e relativo numero IP corretto nel campo remote_addr, ora dovrebbe dare due volte lo stesso IP (come mi succede nella maggior parte degli attacchi): questo non dovrebbe confortarmi sulla bontà della modifica? Anche se non sei sicuro, cosa pensi?
Non so se sia IMPORTANTE: ho provato diverse delle stringhe con cui mi attaccano: dopo l'invio ... --> mi compare il fatal error di monitor, e l'attacco è comunque senza alcun esito.
Grazie ancora, Ciao, Dino
|
|
Inviato:
Dom Mar 30, 2008 8:34 pm |
|
|
Sniffer Amministratore
Registrato: Jul 20, 2003 Messaggi: 3218
Località: Verona
|
Oggetto: |
|
|
Se hai verificato che gli attacchi venono regolarmente bloccati allora non dovrebbero esserci problemi, io non ti ho dato una risposta certa nel precedente post perchè non ho la possibilità di verificarlo e quindi non sarebbe giusto darti delle certezze che neppure io ho e che magari ti possono creare problemi in futuro.
Come detto se lo hai verificato allora non dovrebbero esserci problemi, se mi posso permettere se fossi in te prenderei in considerazione il passaggio a una versione nuke più aggiornata meglio se la 7.6 + patch e sentinel l'ultima versione disponibile.
Ti dico questo non perchè la 6.9 funzioni male anzi l'ho usata anch'io per molto tempo ma solamente per stare al passo con gli aggiornamenti, tieni presente che chatserv in futuro non dovrebbe più seguire lo sviluppo delle versioni inferiori alla 7.6 (a meno che non cambi idea) e devo dire che mi trova pienamente d'accordo seguire lo sviluppo di tutte queste versioni porta sicuramente via tempo e risorse preziose per lo sviluppo delle ultime versioni.
_________________ Non inviatemi pm con richieste di aiuto grazie.
Su questo forum solo gli utenti registrati possono vedere i links! Registrati o fai il login |
|
|
Inviato:
Mar Apr 01, 2008 2:16 am |
|
|
Dino Fedele
Registrato: Mar 23, 2006 Messaggi: 105
|
Oggetto: Re |
|
|
Ciao Sniffer: grazie per la tua collaborazione ed i preziosi consigli.
Ho aspettato un po' di tempo per verificare se era tutto ok .... è tutto ok: la modifica che ho postato funziona e Sentinel continua a fare regolarmente il suo lavoro: se qualcuno avesse per caso lo stesso problema può applicare la modifica penso tranquillamente!
Ciao, Dino.
|
|
Inviato:
Gio Apr 17, 2008 7:58 pm |
|
|
Sniffer Amministratore
Registrato: Jul 20, 2003 Messaggi: 3218
Località: Verona
|
Oggetto: |
|
|
Grazie Dino per il tuo contributo sicuramente potrà servire a tutti gli utenti con il tuo stesso problema
Edito e chiudo il topic
_________________ Non inviatemi pm con richieste di aiuto grazie.
Su questo forum solo gli utenti registrati possono vedere i links! Registrati o fai il login |
|
|
Inviato:
Ven Apr 18, 2008 1:30 am |
|
|
|