5. FAQ

5.1. È possibile limitare la banda utente per utente con i delay pool?

Sì. Si faccia riferimento al file squid.conf originale e si controlli la documentazione di Squid su http://www.squid-cache.org.

5.2. Come posso far funzionare wget con Squid?

È semplice. Si crei un file chiamato .wgetrc e lo si metta nella home directory. Si inseriscano nel file le righe seguenti ed il gioco è fatto!

HTTP_PROXY=192.168.1.1:8080
FTP_PROXY=192.168.1.1:8080

Lo si può far funzionare globalmente per tutti gli utenti; si digiti man wget per sapere come fare.

5.3. Ho impostato il mio server SOCKS in ascolto sulla porta 1080 ed ora non riesco più a collegarmi ad alcun server IRC.

Qui ci possono essere due situazioni.

Una è quando il proxy SOCKS è "open relay", il che significa che chiunque può usarlo da qualsiasi parte del mondo. Questo è un problema di sicurezza. Si dovrebbe ricontrollare la configurazione del proxy SOCKS; in genere i server irc non permettono il collegamento di server SOCKS aperti.

In caso si sia sicuri che il proprio server SOCKS non è aperto, si potrebbe comunque essere impossibilitati a collegarsi a qualche server irc: la maggior parte delle volte questo avviene perché essi controllano che sul client che si sta connettendo il server SOCKS non stia girando sulla porta 1080. In questo caso bisognerà semplicemente riconfigurare SOCKS in modo che lavori su una porta diversa. Si dovrà anche riconfigurare il software della LAN in modo che usi server SOCKS e porta appropriati.

5.4. Non voglio che Kazaa o Audiogalaxy occupino tutta la mia banda di ingresso.

Effettivamente questo può essere fastidioso, ma è facile da risolvere.

Si crei un file chiamato, ad esempio, /etc/sysconfig/cbq/cbq-15.ppp.

Si inseriscano nel file le righe seguenti e Kazaa o Audiogalaxy scaricheranno a non più di circa 15 kbits/s. Presuppongo che l'interfaccia verso internet sia ppp0.

DEVICE=ppp0,115Kbit,11Kbit
RATE=15Kbit
WEIGHT=2Kbit
PRIO=5
TIME=01:00-07:59;110Kbit/11Kbit
RULE=,:21
RULE=,213.25.25.101
RULE=,:1214
RULE=,:41000
RULE=,:41001
# E così via fino a :41030
RULE=,:41030

5.5. Il mio server di posta in uscita consuma tutta la banda.

Si può limitare il traffico SMTP, Postfix, Sendmail, o qualsiasi altro, in un modo simile a quello della risposta precedente. Si deve solo modificare o aggiungere un regola:

RULE=,:25

Inoltre, se si ha un SMTP server, si possono forzare gli utenti della LAN ad usarlo, anche se questi hanno impostato i loro server SMTP a smtp.qualche.server! Lo si può fare in modo trasparente, come è stato fatto in precedenza con Squid.

5.6. Posso limitare il mio server FTP o WWW in un modo simile a quello mostrato nella domanda precedente?

In generale si può fare, ma di solito questi server hanno la loro proprie configurazioni per la limitazione di banda, quindi sarebbe probabilmente meglio andare a cercare nella loro documentazione.

Kernel 2.2.x

/sbin/ipchains -A input -s 192.168.1.1/24 -d ! 192.168.1.1 25 -p TCP -j REDIRECT 25

Kernel 2.4.x

/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 25

Ci si ricordi di aggiungere una riga appropriata allo script di inizializzazione.

5.7. È possibile limitare la banda utente per utente con lo script cbq.init?

Sì. Si guardi nello script: ci sono alcuni esempi.

5.8. Ogni volta che lancio cbq.init, dice che non trova sch_cbq.

Probabilmente manca il modulo CBQ nel sistema. Se si ha CBQ compilato nel kernel, si commentino le seguenti righe nello script cbq.init-v0.6.2.

### If you have cbq, tbf and u32 compiled into kernel, comment it out
#for module in sch_cbq sch_tbf sch_sfq sch_prio cls_u32; do
#        if ! modprobe $module; then
#               echo "**CBQ: could not load module $module"
#               exit
#        fi
#done

5.9. CBQ a volte non funziona senza alcun motivo.

Generalmente questo non dovrebbe accadere. Talvolta si possono osservare download massivi, anche se si crede di aver bloccato tutte le porte usate da Napster o da Audiogalaxy. Beh, c'è sempre un'altra porta aperta per il download. Per trovarla si può usare IPTraf. Siccome potrebbero esserci centinaia di queste porte, potrebbe rivelarsi un compito davvero arduo. Per renderlo più semplice, si potrebbe considerare l'idea di installare un proxy SOCKS; Napster, Audiogalaxy e molti altri programmi possono usare un proxy SOCKS, così è più semplice avere a che fare con una sola porta, invece di dover gestire migliaia di altre possibilità (la porta SOCKS standard è la 1080, usando un proxy SOCKS locale la si può impostare in modo differente, oppure si possono lanciare diverse istanze del proxy SOCKS su porte diverse). Non si dimentichi di chiudere il traffico su tutte le porte e di lasciare aperte le porte tipo la 25 e la 110 (SMTP e POP3) ed altre che si ritengono utili. Si può trovare un link a Nylon (un proxy SOCKS) alla fine di questo HOWTO.

5.10. I delay pool sono stupidi; perché non posso scaricare qualcosa a piena velocità quando sono l'unico ad usare la rete?

Purtroppo non ci si può far molto.

L'unica cosa che si può fare è usare il comando cron e riconfigurare il tutto, ad esempio, all'una di mattina, in modo che Squid non usi i delay pool, quindi riconfigurarlo di nuovo, diciamo alle 7:30, per usare i delay pool.

Per fare questo, si creino due file di configurazione separati, chiamati per esempio squid.conf-day e squid.conf-night, e li si metta in /opt/squid/etc/.

squid.conf-day sarà la copia esatta del file di configurazione creato in precedenza.

squid.conf-night, al contrario, non avrà alcuna riga di delay pool, così tutto ciò che si deve fare è commentarle.

La cosa successiva da farsi è impostare le voci di /etc/crontab correttamente.

Si modifichi /etc/crontab inserendo le seguenti righe:

#SQUID - cambio di configurazione per notte e giorno
01 9 * * * root /bin/cp -f /opt/squid/etc/squid.conf-day /opt/squid/etc/squid.conf; /opt/squid/bin/squid -k reconfigure
59 23 * * * root /bin/cp -f /opt/squid/etc/squid.conf-night /opt/squid/etc/squid.conf; /opt/squid/bin/squid -k reconfigure

5.11. I miei download si bloccano alle 23:59 per colpa di "acl day time 09:00-23:59" in squid.conf. Posso farci qualcosa?

Si può risolvere eliminando quella riga acl da squid.conf e anche le righe "delay_access 2 allow day; delay_access 2 deny !day".

Quindi si provi a farlo con cron come visto nella domanda precedente.

5.12. I log di Squid continuano a crescere molto velocemente; posso risolvere in qualche modo?

Effettivamente, più numerosi sono gli utenti e più informazioni (talvolta utili) saranno messe nel log.

Il modo migliore per risolvere alla radice il problema sarebbe quello di usare logrotate, ma serve un piccolo trucco per farlo funzionare correttamente con Squid: impostazioni appropriate per cron e logrotate.

Voci per /etc/crontab:

#SQUID - logrotate
01 4 * * * root /opt/squid/bin/squid -k rotate; /usr/sbin/logrotate /etc/logrotate.conf; /bin/rm -f /var/log/squid/*.log.0

Qui imponiamo a logrotate di partire ogni giorno alle 04:01, quindi bisognerà eliminare ogni altre richiesta di esecuzione di logrotate, ad esempio in /etc/cron.daily/.

Voci per /etc/logrotate.d/syslog:

#SQUID logrotate - manterra' i log per 40 giorni
/var/log/squid/*.log.0 {
rotate 40
compress
daily
postrotate
/usr/bin/killall -HUP syslogd
endscript
}

5.13. CBQ è stupido: perché non posso scaricare qualcosa a piena velocità quando sono l'unico ad usare la rete?

Si può fare, fortunello!

Ci sono due modi per farlo.

Il primo modo è quello semplice, simile alla soluzione che abbiamo usato per Squid. Si inserisca una riga simile a quella qui sotto nei file di configurazione di CBQ in /etc/sysconfig/cbq/:

TIME=00:00-07:59;110Kbit/11Kbit

Si può avere più di un paramentro TIME nei file configurazione di CBQ.

Bisogna comunque fare attenzione, poiché c'è un piccolo bug nello script cbq.init-v0.6.2: non è possibile impostare alcuni orari, ad esempio 00:00-08:00! Per essere sicuri che tutto funzioni correttamente si faccia partire lo script cbq.init-v0.6.2, quindi, all'interno dell'intervallo che è stato impostato, si digiti

/etc/rc.d/cbq.init-v0.6.2 timecheck

L'output dovrebbe assomigliare a questo:

[root@mangoo rc.d]# ./cbq.init start; ./cbq.init timecheck **CBQ: 3:44: class 10 on eth0 changed rate (20Kbit -> 110Kbit) **CBQ: 3:44: class 40 on ppp0 changed rate (15Kbit -> 110Kbit) **CBQ: 3:44: class 50 on eth0 changed rate (35Kbit -> 110Kbit)

In questo esempio qualcosa è andato storto, probabilmente nel secondo file di configurazione in /etc/sysconfig/cbq/ (secondo a contare dal numero più piccolo nel nome):

[root@mangoo rc.d]# ./cbq.init start; ./cbq.init timecheck **CBQ: 3:54: class 10 on eth0 changed rate (20Kbit -> 110Kbit) ./cbq.init: 08: value too great for base (error token is "08")

Il secondo modo per rendere CBQ più intelligente è più difficile: non dipende dall'orario. Si possono trovare utili informazioni in "The Linux 2.4 Advanced Routing HOWTO" e giocherellare un po' con il comando tc.