
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
Archivio: Giugno 2005 ml@sikurezza.org Soggetto: Re: [ml] iptables, stato delle connesioni e pacchetti "dimenticati " o persi Mittente: Fabio Panigatti Data: Fri, 24 Jun 2005 15:51:58 +0200 (CEST)
> da un'analisi dei log del firewall vedo droppati alcuni pacchetti che secondo > me appartengono a connessioni lecite e permesse; > > TCP DROP IN=eth1 OUT=eth0 SRC=MIO_SERVER DST=XXX.XXX.XXX.XXX LEN=48 TOS=0x00 > PREC=0x00 TTL=63 ID=41830 DF PROTO=TCP SPT=110 DPT=1079 WINDOW=5840 RES=0x00 > ACK SYN URGP=0 > > TCP DROP IN=eth1 OUT=eth0 SRC=MIO_SERVER DST=XXX.XXX.XXX.XXX LEN=1420 TOS=0x00 > PREC=0x00 TTL=63 ID=56632 DF PROTO=TCP SPT=80 DPT=37320 WINDOW=6564 RES=0x00 > ACK URGP=0 Si possono fare molte congetture ma senza conoscere il ruleset, la versione di ip_conntrack_tcp in uso, se e' abilitato o meno il window tracking, il ttl per gli stati (sia degli host coinvolti, sia di iptables), la config in /proc, ecc ecc, diventa un po' difficile fare una analisi, a maggior ragione su due righe di log solitarie isolate dal loro contesto. Ed anche con tutti i dati mancanti potrebbe essere comunque difficile senza un dump delle sessioni tcp coinvolte. Vedendo il primo, ad esempio, mi verrebbe da pensare che il conntrack ti abbia ignorato o considerato invalido il SYN di XXX.XXX.XXX.XXX e abbia droppato poi il SYN-ACK per costringere il client a ritrasmettere il SYN. E' una situazione esplicitamente prevista nel modulo di conntrack, ma potrebbe essere totalmente incompatibile con il tuo ruleset o la tua versione di netfilter. Tra l'altro i log-prefix "TCP DROP " non sono molto esplicativi. Trascurerei inizialmente l'ipotesi d'un problema legato a scarsita' di risorse che impediscano l'inserimento di nuove entry nella tabella conntrack: il fatto che quei pacchetti siano li' vuol dire che era _gia'_ presente uno stato per i loro "precursori" e, quindi, le risorse per loro erano gia' state allocate. In realta' questo potrebbe anche non valere per il primo log ma, in ogni caso, ti troveresti anche altre righe tipo "ip_conntrack: table full, dropping packet." ed altre cose simili. Prova, comunque, a tenere sotto controllo il numero di entry nelle tabella del connection tracking, se non altro per toglierti il dubbio. Potresti anche provare a cercare se ci sono degli host per cui questo fenomeno dei log "inspiegabili" e' piu' frequente e, per questi, compatibilmente con le tue risorse, registrare il traffico in transito per poi confrontarlo coi log. > ... ho ottenuto i valori di 131072 bytes per ip_conntrack_max e 16384 per > l'hashsize; $ cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max ti evitava i calcoli :-) > non sono riuscito a capire come settare l'hashsize; se per un kernel modulare > può essere passato come parametro al momento del caricamento del modulo, per > un kernel monolitico come il mio come posso fare Lo puoi passare al boot come argomento del kernel. E' indicato pure nel doc di cui hai fornito il link :-P > iptables -A FORWARD -i $INT_LAN -o $INT_DMZ -p tcp -m state --state > NEW,ESTABLISHED,RELATED -m multiport -d $WWW --dport 80,443,22 -j ACCEPT > > iptables -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -m multiport > -s $WWW --sport 80,443,22 -j ACCEPT Considera che RELATED non serve a niente in nessuno dei due casi. > è normale trovare il flag PSH settato durante la chiusura di una connessione > come in questo pacchetto droppato ?? > > TCP DROP IN=eth1 OUT=eth0 SRC=MIO_SERVER DST=XXX.XXX.XXX.XXX LEN=185 TOS=0x00 > PREC=0x00 TTL=63 ID=46996 DF PROTO=TCP SPT=80 DPT=1117 WINDOW=9648 RES=0x00 > ACK PSH FIN URGP=0 Si', puo' accadere. Come vedi quel pacchetto conteneva dati per l'applicazione (LEN=185) e per risparmiare tempo e banda, il server web ha... ottimizzato :-) inserendoli nel FIN-ACK e accendendo anche PUSH. > Se la combinazione di flag è corretta il pacchetto è stato droppato > erroneamente come negli altri esempi sopra ?? La combinazione di flag non e' illegale: e' frequente vedere [ri]trasmissioni di FIN che potrebbero generare righe di log come questa anche senza il window tracking attivo. Questo log e' il piu' spiegabile e frequente, tra quelli che hai presentato (timeout in presenza di connessioni half closed, per esempio). Fabio PS: che diavolo di OS c'e' su quel server pop3? Un linux con grsecurity?
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005