Newsgroup: it.comp.os.linux.sys
Titolo: Squidtl

Ciao a tutti,
innanzitutto il progetto è ancora vivo? Ho provato a contattare l'autore,
ma non ho ricevuto risposta...
Comunque: sto provando Squidtl su una Debian Lenny con Squid 2.7, ma se
richimato da Squid sembra andare in crash:
=== cache.log 
=================================================================
2010/12/23 16:22:00| Ready to serve requests.
2010/12/23 16:22:00| helperHandleRead: unexpected read from url_rewriter #1, 
32 bytes 'en /var/log/squid/squidtl.log !
'
2010/12/23 16:22:00| helperHandleRead: unexpected read from url_rewriter #2, 
32 bytes 'en /var/log/squid/squidtl.log !
'
2010/12/23 16:22:00| helperHandleRead: unexpected read from url_rewriter #3, 
32 bytes 'en /var/log/squid/squidtl.log !
'
2010/12/23 16:22:00| helperHandleRead: unexpected read from url_rewriter #4, 
32 bytes 'en /var/log/squid/squidtl.log !
'
2010/12/23 16:22:00| helperHandleRead: unexpected read from url_rewriter #5, 
32 bytes 'en /var/log/squid/squidtl.log !
'
2010/12/23 16:22:00| helperHandleRead: unexpected read from url_rewriter #6, 
32 bytes 'en /var/log/squid/squidtl.log !
'
2010/12/23 16:22:00| helperHandleRead: unexpected read from url_rewriter #7, 
32 bytes 'en /var/log/squid/squidtl.log !
'
2010/12/23 16:22:00| helperHandleRead: unexpected read from url_rewriter #8, 
32 bytes 'en /var/log/squid/squidtl.log !
'
2010/12/23 16:22:00| helperHandleRead: unexpected read from url_rewriter #9, 
32 bytes 'en /var/log/squid/squidtl.log !
'
2010/12/23 16:22:00| helperHandleRead: unexpected read from url_rewriter 
#10, 32 bytes 'en /var/log/squid/squidtl.log !
'
2010/12/23 16:22:00| WARNING: url_rewriter #1 (FD 7) exited
2010/12/23 16:22:00| WARNING: url_rewriter #2 (FD 8) exited
2010/12/23 16:22:00| WARNING: url_rewriter #3 (FD 9) exited
2010/12/23 16:22:00| WARNING: url_rewriter #4 (FD 10) exited
2010/12/23 16:22:00| WARNING: url_rewriter #5 (FD 11) exited
2010/12/23 16:22:00| Too few url_rewriter processes are running
FATAL: The url_rewriter helpers are crashing too rapidly, need help!
=== cache.log 
=================================================================
Lanciandolo invece a mano con:
echo "
http://www.google.com/192.168.1.1/x.y.z-GETurlgroup
" | 
/usr/bin/squidtl --verbose -l /var/log/squid/squidtl.log -c 
/etc/squidtl/config.xml
ottengo:
=== squidtl.log 
===============================================================
[13269] 2010-12-23 16:19:43 FATAL - LOG START (Verbosity: 1)
[13269] 2010-12-23 16:19:43 NOTICE - SquidTL v0.1.2
[13269] 2010-12-23 16:19:43 DEBUG - Load configuration from 
/etc/squidtl/config.xml
[13269] 2010-12-23 16:19:43 DEBUG - COMMON Node defaultmode -> CHECK
[13269] 2010-12-23 16:19:43 DEBUG - COMMON Node defaultaction -> ALLOW
[13269] 2010-12-23 16:19:43 DEBUG - COMMON Node defaultredirecturl -> 
http://localhost/deny.php
[13269] 2010-12-23 16:19:43 DEBUG - COMMON Node defaultuseraction -> ADD
[13269] 2010-12-23 16:19:43 DEBUG - COMMON Node defaultuserlevel -> 0
[13269] 2010-12-23 16:19:43 DEBUG - COMMON Node defaultusergroup -> 1
[13269] 2010-12-23 16:19:43 DEBUG - COMMON Node purgetimeout -> 360
[13269] 2010-12-23 16:19:43 DEBUG - COMMON Node urllistpath -> 
/etc/squid/urllists
[13269] 2010-12-23 16:19:43 DEBUG - COMMON Node xmlrpcserver -> 
http://www.zerozone.it/Software/Linux/SquidTL/xmlrpc.php
[13269] 2010-12-23 16:19:43 DEBUG - MySQL Node host -> localhost
[13269] 2010-12-23 16:19:43 DEBUG - MySQL Node port -> 3306
[13269] 2010-12-23 16:19:43 DEBUG - MySQL Node db -> squidtl
[13269] 2010-12-23 16:19:43 DEBUG - MySQL Node user -> squidtl
[13269] 2010-12-23 16:19:43 DEBUG - MySQL Node password -> xxxxxxxxxxxxxxxx
[13269] 2010-12-23 16:19:43 NOTICE - MySQL(localhost:squidtl) connection OK
[13269] 2010-12-23 16:19:43 DEBUG - IN: 
http://www.google.com/
 
192.168.1.1/x.y.z
 - GET urlgroup
[13269] 2010-12-23 16:19:43 DEBUG - SquidInfo - P:http D:
www.google.com
 U: 
O:
http://www.google.com/
 S:
google.com/
 F:
www.google.com/
[13269] 2010-12-23 16:19:43 DEBUG - MySQL: SELECT ID FROM DB_Access WHERE 
(Src="192.168.1.1" AND Domain="
www.google.com
") AND TIMESTAMPDIFF(SECOND, 
AddDate, NOW()) < 5 ORDER BY AddDate 
DESC LIMIT 1;
[13269] 2010-12-23 16:19:43 DEBUG - MySQL: SELECT ipRange,ID FROM 
DB_Context;
[13269] 2010-12-23 16:19:43 NOTICE - getUserContext(192.168.1.1) = DEFAULT 
CONTEXT
[13269] 2010-12-23 16:19:43 DEBUG - MySQL: SELECT 
IdentifiedBy,Value,Username,Type,isActive,DATEDIFF(ExpireDate,CURDATE()) 
FROM DB_Users WHERE Context=''
[13269] 2010-12-23 16:19:43 DEBUG - doRegExp: user  = 0
[13269] 2010-12-23 16:19:43 DEBUG - doRegExp: get  = 0
[13269] 2010-12-23 16:19:43 NOTICE - getRealIdent(192.168.1.1) = @ (Level:-1 
Expire:0)
[13269] 2010-12-23 16:19:43 DEBUG - UNKNOWN USER. Default action: ADD
[13269] 2010-12-23 16:19:43 ERROR - Cannot identify unknown user. Automatic 
ADD is impossibile !
[13269] 2010-12-23 16:19:43 NOTICE - ALLOWED: 
www.google.com
 (DEFAULT)
[13269] 2010-12-23 16:19:43 FATAL - FEOF on STDIN detected: Squid has gone 
away ?
[13269] 2010-12-23 16:19:43 FATAL - Shutdown NOW !
[13269] 2010-12-23 16:19:43 FATAL - LOG CLOSE
=== squidtl.log 
===============================================================
Qualche idea?
Ciao,
  Void

 Qualche idea?
Veramente, a me l'url rewriter lanciato da linea di comando nel
modo che hai scritto non da nessun output... c'e' qualcosa di
sicuramente cannato nella configurazione.
Ovviamente, dando per scontato che database, interfaccia di gestione
php, etc. sia tutto tirato su e funzi regolarmente, conviene che posti
file di configurazione config.xml, config.inc.php, ed anche l'auth
helper php "precotto" squid_squidtl_auth (se usi quello, ma mi pare piu'
che probabile).
bye G.L.
-- 
Da i.d.c.tutela:
P.S. Quando ci sarà lo switch-off, avrò problemi anche col
monitor del PC? Ho visto che è collegato in modalità analogica.

 Qualche idea?
Si, probabilmente è un BUG :-) poercui grazie della segnalazione. Per
quanto riguarda la sua risoluzione, ti suggerisco di disabilitare l'ADD
automatico nella configurazione: funziona solamente se passa un "ident"
(autenticazione) e può, pertanto, identificare unovocamente l'utente.
Prova a modificare, in config.xml, questo parametro:
<!-- Action if user not know
	Possible values: BLOCK|PASS|ADD
 
	If user was not recognized, we can allow (PASS as default), BLOCK or
ADD with level and group specified below.
	-->
	<defaultuseraction>ADD</defaultuseraction>
da ADD a PASS.
Fammi sapere, Michele
-- 
O-Zone ! No (C) since 1996
On the road with VFR VTec 2002 "Vuffy", on the net with Linux Slackware.
Home+BLOG @ 
http://www.zerozone.it
 || Best of Italy @
http://www.openitaly.net

 che probabile).
Eccoli (praticamente il default):
=== config.xml =============================================================
<config>
    <common>
        <defaultmode>CHECK</defaultmode>
        <defaultaction>ALLOW</defaultaction>
        <defaultredirecturl>
http://localhost/deny.php
</defaultredirecturl>
        <defaultuseraction>ADD</defaultuseraction>
        <defaultuserlevel>0</defaultuserlevel>
        <defaultusergroup>1</defaultusergroup>
        <purgetimeout>360</purgetimeout>
        <urllistpath>/etc/squid/urllists</urllistpath>
        <xmlrpcserver>
http://www.zerozone.it/Software/Linux/SquidTL/xmlrpc.php
</xmlrpcserver>
    </common>
    <mysql>
        <host>localhost</host>
        <port>3306</port>
        <db>squidtl</db>
        <user>squidtl</user>
        <password>password</password>
    </mysql>
</config>
============================================================================
=== config.inc.php =========================================================
<?php
$CFG["dbHost"] = "localhost";
$CFG["dbName"] = "squidtl";
$CFG["dbUser"] = "squidtl";
$CFG["dbPwd"] = "password";
$CFG["xmlRpcServer"] = 
"
http://www.zerozone.it/Software/Linux/SquidTL/xmlrpc.php
";
?>
============================================================================
Al momento non sto usandos quid_squidtl_auth: volevo prima farmi un'idea 
senza autenticazione.
Ciao e grazie,
  Void

 da ADD a PASS.
Ok, così non ottengo più errori:
=== cache.log ==============================================================
[4130] 2011-01-17 16:48:31 DEBUG - IN: 
http://tfc.com/
 
192.168.1.2/-
 - GET - 
myip=192.168.1.1 myport=8080
[4130] 2011-01-17 16:48:31 DEBUG - SquidInfo - P:http D:
tfc.com
 U: 
O:
http://tfc.com/
 S:
tfc.com/
 F:
tfc.com/
[4130] 2011-01-17 16:48:31 DEBUG - MySQL: SELECT ID FROM DB_Access WHERE 
(Src="192.168.1.2" AND Domain="
tfc.com
") AND TIMESTAMPDIFF(SECOND, AddDate, 
NOW()) < 5 ORDER BY AddDate DESC LIMIT 
1;
[4130] 2011-01-17 16:48:31 DEBUG - MySQL: SELECT ipRange,ID FROM DB_Context;
[4130] 2011-01-17 16:48:31 NOTICE - getUserContext(192.168.1.2) = DEFAULT 
CONTEXT
[4130] 2011-01-17 16:48:31 DEBUG - MySQL: SELECT 
IdentifiedBy,Value,Username,Type,isActive,DATEDIFF(ExpireDate,CURDATE()) 
FROM DB_Users WHERE Context=''
[4130] 2011-01-17 16:48:31 NOTICE - getRealIdent(192.168.1.2) = @ (Level:-1 
Expire:0)
[4130] 2011-01-17 16:48:31 DEBUG - UNKNOWN USER. Default action: PASS
[4130] 2011-01-17 16:48:31 NOTICE - ALLOWED: 
tfc.com
 (DEFAULT)
============================================================================
Ma nella sezione "Siti web visitati" non ottengo nulla e in "Statistiche" 
ottengo questo, in un riquadro:
============================================================================
Open Flash Chart
JSON Parse Error [Bad Object]
Error at character 334, line 17:
14:   "bg_colour": "#EEEEEE",15:   "y_axis": {16:     "min": 1.0e+13,
============================================================================
Sto sbagliando qualche cosa? Perché non ottengo nulla tra i siti visitati?
Ciao e grazie,
  Void :-)

   Void :-)
Figurati. Fammi sapere eh !


 calcolate.
D'accordo, ma se posso dare un piccolo suggerimento, sarebbe più "elegante" 
che mi dicesse "Non mi hai ancora configurato bene, non posso calcolare 
alcuna statistica", piuttosto che mostrare un errore... :-)
Ciao e grazie,
  Void

O-Zone wrote:
Ciao, ne approfitto per farti una domanda: e' possibile integrare squitl
con squidguard?


 bye G.L.
-- 
O-Zone ! No (C) since 1996


Ok,
il problema sembra essere nella configurazione:
[4130] 2011-01-17 16:48:31 NOTICE - getRealIdent(192.168.1.2) = @
(Level:-1 Expire:0)
questa riga mi dice che non ci sono contesti identificabili nell'IP
192.168.1.2. Probabilmente devi indicare i range IP, come nel mio esempio:
Contesto UfficioSBA (192.168.1.*)
Contesto SalaRosa (172.17.200.*)
prova a dare, nel tuo contesto di default, la classe di IP 192.168.1.*
Per Twitter non preoccuparti: lui tenta un fetch delle news ma non
succede nulla :-)
Fammi sapere, Michele



 192.168.1.2. Probabilmente devi indicare i range IP, come nel mio esempio:
Sï¿œsï¿œ, nel frattempo ho creato contesto, e aggiunto autenticazione di 
dominio+locale a Squid, etc. ma continuo a non spiegarmi alcuni 
comportamenti di SquidTL.
=== squid.conf =============================================================
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-
ntlmssp
auth_param ntlm children 5
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl ntlm_users proxy_auth REQUIRED
http_access allow ntlm_users
============================================================================
Se mi collego ad un URL che non ho ancora mai visitato, ottengo:
=== squidtl.log 
===============================================================
[27251] 2011-01-19 16:25:57 FATAL - LOG START (Verbosity: 1)
[27251] 2011-01-19 16:25:57 NOTICE - SquidTL v0.1.2
      [Tra l'altro dovrebbe essere la 0.2.0]
[27251] 2011-01-19 16:25:57 DEBUG - Load configuration from 
/etc/squidtl/config.xml
[27251] 2011-01-19 16:25:57 DEBUG - COMMON Node defaultmode -> CHECK
[27251] 2011-01-19 16:25:57 DEBUG - COMMON Node defaultaction -> ALLOW
[27251] 2011-01-19 16:25:57 DEBUG - COMMON Node defaultredirecturl -> 
http://localhost/deny.php
[27251] 2011-01-19 16:25:57 DEBUG - COMMON Node defaultuseraction -> ADD
      [Ho rimesso ADD]
[27251] 2011-01-19 16:25:57 DEBUG - COMMON Node defaultuserlevel -> 0
[27251] 2011-01-19 16:25:57 DEBUG - COMMON Node defaultusergroup -> 1
[27251] 2011-01-19 16:25:57 DEBUG - COMMON Node purgetimeout -> 360
[27251] 2011-01-19 16:25:57 DEBUG - COMMON Node urllistpath -> 
/etc/squid/urllists
      [Questo a cosa serve?]
[27251] 2011-01-19 16:25:57 DEBUG - COMMON Node xmlrpcserver -> 
http://www.zerozone.it/Software/Linux/SquidTL/xmlrpc.php
mc      [Questo a cosa serve?]
[27251] 2011-01-19 16:25:57 DEBUG - MySQL Node host -> localhost
[27251] 2011-01-19 16:25:57 DEBUG - MySQL Node port -> 3306
[27251] 2011-01-19 16:25:57 DEBUG - MySQL Node db -> squidtl
[27251] 2011-01-19 16:25:57 DEBUG - MySQL Node user -> squidtl
[27251] 2011-01-19 16:25:57 DEBUG - MySQL Node password -> xxxxxxxx
[27248] 2011-01-19 16:25:57 NOTICE - MySQL(localhost:squidtl) connection OK
[27249] 2011-01-19 16:25:57 NOTICE - MySQL(localhost:squidtl) connection OK
[27251] 2011-01-19 16:25:57 NOTICE - MySQL(localhost:squidtl) connection OK
[27236] 2011-01-19 16:26:02 DEBUG - IN: 
http://www.ebay.it/classico
 
192.168.1.9/-
 myuser GET - myip=192.168.8.3 myport=8080
[27236] 2011-01-19 16:26:02 DEBUG - SquidInfo - P:http D:
www.ebay.it
 U: 
O:
http://www.ebay.it/classico
 S:
ebay.it/classico
 F:
www.ebay.it/classico
[27236] 2011-01-19 16:26:02 DEBUG - MySQL: SELECT ID FROM DB_Access WHERE 
(Src="192.168.1.9" AND Domain="
www.ebay.it
") AND TIMESTAMPDIFF(SECOND, 
AddDate, NOW()) < 5 ORDER BY AddDate DESC 
LIMIT 1;
[27236] 2011-01-19 16:26:02 DEBUG - MySQL: SELECT ipRange,ID FROM 
DB_Context;
[27236] 2011-01-19 16:26:02 DEBUG - doRegExp: 192.168.1.* 192.168.1.9 = 1
[27236] 2011-01-19 16:26:02 NOTICE - getUserContext(192.168.1.9) = CONT1
[27236] 2011-01-19 16:26:02 DEBUG - MySQL: SELECT 
IdentifiedBy,Value,Username,Type,isActive,DATEDIFF(ExpireDate,CURDATE()) 
FROM DB_Users WHERE Context='CONT1'
[27236] 2011-01-19 16:26:02 NOTICE - getRealIdent(192.168.1.9) = 
myuser@CONT1 (Level:-1 Expire:0)
[27236] 2011-01-19 16:26:02 DEBUG - UNKNOWN USER. Default action: ADD
      [Strano perchï¿œ nel DB l'utente myuser ï¿œ stato inserito in un accesso 
precedente e gli ï¿œ stato assegnato un gruppo e un contesto]
[27236] 2011-01-19 16:26:02 DEBUG - MySQL: INSERT IGNORE INTO DB_Users 
(Username,Type,IdentifiedBy,Value,Note,AddDate) VALUES 
("myuser","(null)","IDENT","myuser","Added automatically by 
system based on unknown user action",NOW());
[27236] 2011-01-19 16:26:02 DEBUG - MySQL: INSERT IGNORE INTO UserGroup 
(UserID,GroupID) VALUES ("myuser","1");
[27236] 2011-01-19 16:26:02 ERROR - Failed adding new user !
      [Questo me l'ha dato anche la prima volta che mi sono presentato con 
quell'utente, ma poi invece l'aveva inserito nel DB, sia in DB_Users, che in 
UserGroup]
[27236] 2011-01-19 16:26:02 NOTICE - ALLOWED: 
www.ebay.it
 (DEFAULT)
      [E qui non so se sono io che continuo a non capire come funziona 
SquidTL o cosa: mi aspetto di trovare 
www.ebay.it
 nella sezione siti 
visitati e invece niente]
============================================================================
Alla fine ottengo un ALLOW come mi spetto con questa configurazione, ma 
www.ebay.it
 non compare tra i siti visitati e infatti se do un'occhiata alla 
tabella DB_Access non lo trovo.
Ciao e grazie,
  Void

 Scusa ma una domanda: perchè usare squidguard ?
Lo immaginavo... :-) Ma, a quanto ho capito, posso utilizzare le stesse
blacklist direttamente con squidtl?


 blacklist direttamente con squidtl?
Si, una riga per sito web :-) come in squidguard
Michele


   Void
Figurati ! Anzi, grazie a te che le segnalazioni mi servono per
migliorare il programma !
Rimango in attesa di tue nuove.
Michele


 connessione, essa non viene aggiunta nel database.
Hm, ma non sarebbe meglio aggiungerla ad es come utente "Unknown"?
Ciao,
  Void

 Hm, ma non sarebbe meglio aggiungerla ad es come utente "Unknown"?
Tieni conto che DB_Access è una delle tabelle che cresce più velocemente
e sulla quale si debbono fare continuamente calcoli: più rimane snella e
meglio funziona il sistema ! Del resto se un utente è "libero" che senso
ha "contabilizzarlo" ? Le statistiche di SquidTl sono puramente
indicative e finalizzate alla configurazione del sistema stesso: per
statistiche dettagliate e complete meglio usare webalizer !
Grazie e buon lavoro, Michele


 Si, una riga per sito web :-) come in squidguard
Ok, Grazie. :-)
Oltre le url supporta anche i domains? C'e' bisogno di compilare
i db o vanno bene in plain text?


 i db o vanno bene in plain text?
plain text, vengono interpretate come espressioni regolari PCRE
*.
facebook.com
*gle.*
*.
etc etc etc


 etc etc etc
Grazie, a buon rendere. :-)
