[Scuola] un aiuto sul firewall

Damiano Verzulli damiano@verzulli.it
Sun Jan 10 12:48:24 CET 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Mauro Darida ha scritto:
> [...] Per far capire con un esempio, 
> www.cessna.com viene visualizzato senza i menu a tendina in testa, 
> menomandolo in maniera significativa.

Dando una rapida occhiata a quella pagina utilizzando FireBug [1], vedo che
diverse risorse utilizzate nella barra in alto vengono servite da server
web _diversi_ da www.cessna.com. La scritta/immagine "newsroom", ad
esempio, e' questa:
http://textron.vo.llnwd.net/o25/CES/images_design/btn_nav_t_newsroom.jpg

Ecco quindi che gli IP dei server web remoti sono diversi:
- --------------------------------------
verzulli@nb-damiano:~/Documents$ dig +short www.cessna.com
165.193.56.134
verzulli@nb-damiano:~/Documents$ dig +short textron.vo.llnwd.net
87.248.195.178
87.248.195.183
- --------------------------------------
e quindi potrebbero essere filtrati da shorewall/dansguardian in modo diverso.


> Ho escluso dansguardian come fonte del problema, perché esso blocca l'accesso 
> ad un sito web (avvisando con apposita schermata) ma non esegue blocchi 
> parziali come quello descritto.

Dansguardian (che conosco pochissimo) _NON_ potra' mai "avvisare con
apposita schermata" se (...come qualcuno ha accennato) ad essere "bannato"
e' soltanto una piccola/piccolissima immagine referenziata da una pagina
HTML o da un CSS che, invece, sono "passati". Potra' farlo solo se ad
essere "bannato" e' il primo file HTML che viene richiesto.

Comunque, la cosa migliore (essendo sia DansGuardian che Shorewall/iptables
serviti da sistemi Gnu/Linux), e' quella di guardare i LOG: li, al 100%,
c'e' scritto esattamente quello che succede.

Un "tail -f /var/log/dansguardian/access.log" [2] aperto mentre il browser
va sul sito mostra _inequivocabilmente_ quello che accade.

Idem per quanto riguarda i LOG di Shorewall. Anzi, visto che Shorewall
(come qualcuno ha accennato) non fa nient'altro che elaborare (all'avvio)
le regole di "iptables", i LOG sono quelli generati da "iptables" e che,
nel 99.9% dei casi, trovi in /var/log/messages, /var/log/syslog o simili
[3]. Ad esempio, su una mia macchina (ho volutamente offuscato gli ultimi
due ottetti dell'IP di destinazione):
- ------------------------------------------------
root@mixer:/var/log/today# tail -f shorewall
Jan 10 12:32:24 [...] Shorewall:mngmt2net:DROP:IN=eth0.50 OUT=eth1
SRC=10.0.0.53 DST=193.204.*.* LEN=28 TOS=0x00 PREC=0x00 TTL=63 ID=32666
PROTO=UDP SPT=1024 DPT=37 LEN=8
Jan 10 12:32:24 [...] Shorewall:net2addmz:DROP:IN=eth1 OUT=eth0.27
SRC=98.188.147.225 DST=192.167.*.* LEN=92 TOS=0x00 PREC=0x00 TTL=113
ID=43902 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=24845
Jan 10 12:32:24 [...] Shorewall:net2addmz:DROP:IN=eth1 OUT=eth0.27
SRC=98.188.147.225 DST=192.167.*.* LEN=92 TOS=0x00 PREC=0x00 TTL=113
ID=43903 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=25101
Jan 10 12:32:24 [...] Shorewall:net2addmz:DROP:IN=eth1 OUT=eth0.27
SRC=98.188.147.225 DST=192.167.*.* LEN=92 TOS=0x00 PREC=0x00 TTL=113
ID=43904 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=25357
Jan 10 12:32:24 [...] Shorewall:net2addmz:DROP:IN=eth1 OUT=eth0.27
SRC=98.188.147.225 DST=192.167.*.* LEN=92 TOS=0x00 PREC=0x00 TTL=113
ID=43905 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=25613
Jan 10 12:32:24 [...] Shorewall:net2addmz:DROP:IN=eth1 OUT=eth0.27
SRC=98.188.147.225 DST=192.167.*.* LEN=92 TOS=0x00 PREC=0x00 TTL=113
ID=43906 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=25869
Jan 10 12:32:24 [...] Shorewall:net2addmz:DROP:IN=eth1 OUT=eth0.27
SRC=98.188.147.225 DST=192.167.*.* LEN=92 TOS=0x00 PREC=0x00 TTL=113
ID=43907 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=26125
[...]
- ------------------------------------------------------

dal quale capisci bene cosa viene (eventualmente) tagliato. Cio',
chiaramente, a condizione che nella configurazione di shorewall
(policy/rules) tu abbia mantenuto il "LOG"ging del traffico rifiutato [5].


> Usando solo il firewall sul router e 
> disabilitando shorewall/squid/dansguardian il problema sparisce e questi siti 
> vengono visualizzati in maniera corretta. Ho dedotto quindi che il problema 
> sta in shorewall [...]

Deduzione, a mio avviso, frettolosa e probabilmente errata (consiglio: le
"deduzioni" si possono fare seriamente solo dopo aver consultato i LOG...).
Scommetto che e' dansguardian a tagliare risorse linkate da www.cessna.com
e servite da server diversi.

Infine, visto che:
> [...]
> Usando solo il firewall sul router e
> disabilitando shorewall/squid/dansguardian il problema sparisce
> [...]

un interessante (a mio avviso) esperimento che accende i fari su questo
problema per renderlo analizzabilissimo anche da uno studente (e cogliere
l'occasione per togliere molti veli sul funzionamento del web) e':

- - catturare l'intero traffico da/verso il singolo client:
	- sia con shorewall/squid/dansguardian attivo;
	- sia con connessione diretta al router.

Salvando il dump su un file, ad esempio con:

	# tcpdump -s 0 -w /tmp/sniff_completo_01.dump -n -i eth0 port 80

prima e dopo, e' possibile aprire tali dump con wireshark [4] e vedere
_ESATTAMENTE_:
- - quali richieste HTTP il client trasmette;
- - quali risposte HTTP gli ritornano
e... quindi capire, _ESATTAMENTE_ cosa manca nel caso del filtro.

Da li, capire chi e' il responsabile, e' banale (...perche' se e' iptables,
il traffico semplicemente non ritorna; se e' dansguardian, ottieni una
risposta diversa da quella che ti aspettavi).

Nota: tcpdump (e wireshark) esistono anche per Win32


> ma non mi viene in mente nulla su che cosa potrei far
> passare per risolvere il problema.

Beh... se avrai avuto la pazienza di leggere questo messaggio fin qui e se
avrai la pazienza di approfondire quello che ho citato... penso che avrai
un bel po' di che "divertirti". Sbaglio? Se hai bisogno di piu' dettagli...
non esitare a chiederli.


> Avete qualche idea?
Sei sicuro di volerne.... altre? :-)


Bye,
Damiano	//...che se gli archivi non fossero pubblici,
	//non avrebbe scritto questa risposta.


[1] http://getfirebug.com/
[2] Non usando dansguardian, ho chiesto a google e... questo e' il primo
risultato:
	http://linuxdidattica.org/docs/gcdss/squid/page15.html
[3] il file preciso dipende da una serie di fattori (distribuzione,
versione, configurazione di syslog, tipo di syslog usato, etc.)
[4] http://www.wireshark.org/
[5] http://www.shorewall.net/shorewall_logging.html
- --
Damiano Verzulli
e-mail: damiano@verzulli.it
- ---
possible?ok:while(!possible){open_mindedness++}
- ---
"Technical people tend to fall into two categories: Specialists
and Generalists. The Specialist learns more and more about a
narrower and narrower field, until he eventually, in the limit,
knows everything about nothing. The Generalist learns less and
less about a wider and wider field, until eventually he knows
nothing about everything." - William Stucke - AfrISPA
  http://elists.isoc.org/mailman/private/pubsoft/2007-December/001935.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAktJvoUACgkQcwT9fsMT4SxPcACfacHEC5hPnrEROgR8v6HUl05v
P4gAoIEebmrI5v2PRPqJ+Dyr5hHn/cbn
=ylFu
-----END PGP SIGNATURE-----



More information about the scuola mailing list