[despammed] [PLUTO-security] Firewall bucato?

Valentino Squilloni - OuZ ouz a people.it
Mar 24 Feb 2004 10:50:19 CET


On Sat, 21 Feb 2004, Stefano Callegari wrote:

> [cut]
> > > Feb 20 12:51:36 server kernel: IPT INPUT alw_packet died: IN=eth1 OUT=
> > > MAC=00:10:a7:0a:74:32:00:c0:49:b2:2d:3b:08:00 SRC=204.118.23.102
> > > DST=192.168.0.6 LEN=40 TOS=0x00 PREC=0x00 TTL=45 ID=0 DF PROTO=TCP
> > > SPT=21 DPT=44757 WINDOW=0 RES=0x00 RST URGP=0
> [cut]
> > > sua volta ad un firewall hw che fa da ulteriore filtro ad internet
> > > (adsl).
> > >
> > > Ora, dal mac risulta che è il fw hw a generare il traffico che il fw sw
> > > del server rifiuta.
> >
> > Sicuramente il mac address e' del router, se ti arriva un pacchetto su
> > eth1 sara' sempre com mac del router stesso (e' il router a mettere
>
> Riconosco la mia ignoranza, ma forse mi sono spiegato male (o forse tu
> hai capito ma io non te :-). La "catena" hw è server/fw hw/router adsl,
> cioè 3 dispositivi fisici con 3 indirizzi diversi.

Ok.  Allora l'informazione che ti da` il mac-address e` superflua perche`
ogni frame che ti arriva avra` il mac-address della porta interna del
firewall hw, visto che e` sempre lui a incapsulare i pacchetti che vanno
verso l'interno della tua rete.  Sia che sia traffico generato dal
firewall hardware sia che sia semplicemente traffico forwardato da
verso l'interno (generato da host esterni).

Il mio appunto era solo su chi fosse stato a generare quel traffico e
punterei su una macchina esterna.  Oppure il 204.118.23.102 qui sopra e`
un'indirizzo ``vostro''?

> Quello che mi fa ritenere che i pacchetti provengano dal fw hw è che il
> comando arp mi dovrebbe restituire i dispositivi collegati (il fw hw
> 192.168.0.254, cioè il gateway), escludendo il resto. Oppure no?

Qui non ti ho capito molto bene :-/  arp ti mostra semplicemente la tua
arp-cache che e` popolata di relazioni IP-mac per tutti gli host che
hanno avuto ``relazioni'' con la tua macchina e che fanno parte della tua
stessa sottorete (i mac address non vengono propagati dai router).  Nel
tuo caso dovresti avere quindi solamente gli indirizzi del firewall hw ed
eventualmente quelli delle macchine che il firewall protegge direttamente.

> > l'header di layer due per quel pacchetto).  Pero' l'IP sorgente
> > e' esterno, quindi quei pacchetti non dovrebbero essere stati generati dal
> > tuo router, sono bensi' pacchetti forwardati da router.
>
> Cioè il route li forwarda al fw hw che li forwarda al server?

Questo e` quello che pensavo.  Anche se non avevo capito ci fosse anche un
router di mezzo, ma il discorso non cambia di una virgola.

> Ma non dovrebbe essere il fw hw a bloccarli?

Dovrebbe probabilmente si`, per quei pacchetti particolari che non riesce
a filtrare (come quelli di cui sopra) interviene prontamente la strato di
netfilter della tua linux-box, probabilmente molto piu' intelligente di
qualsiasi firewall hardware :-)

Dopo tutto, e' per quello che l'hai messo in quella posizione nella rete,
no? Proprio per bloccare il traffico illecito che riesce a sfuggire dal
firewall hardware. (Approposito, di che firewall hw stiamo parlando?
Te lo chiedo giusto per apprendere qualcosa in piu', visto che sicuramente
non conoscero' il prodotto e le sue funzionalita').

> E poi, perchè questo accade da pochi giorni (più o meno dall'inizio
> dell'epidemia - macchine LAN infette??? :-| )?

Potrebbe essere anche per questo, ma per rendertene conto dovresti mettere
dei filtri o dei log anche sul traffico in output, per vedere se le tue
macchine creano del traffico ``strano'' verso l'esterno.

> [cut]
> > Potresti postare qualche informazione in piu'?  In particolare la parte di
> > config del firewall che riguarda le cose che logghi, vorrei sapere in base
> > a che regola logghi i "IPT INPUT bad_packet died" e i "IPT INPUT
> > alw_packet died".
>
> Riporto un po' di regole (la riga inizia sempre con $IPTABLES se
> nell'invio andasse a capo):
>
> # nuovo DROP con log
> $IPTABLES -N facchiu_input
> $IPTABLES -N facchiu_input_allow

Queste due chain sono identiche, quello che arriva qui viene loggato e
droppato, perfetto.

>
> # ALLOWED
> $IPTABLES -N allowed
> $IPTABLES -A allowed -p TCP --syn -j syn-flood
> $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT

Accetti in ingrasso tutto il traffico established e related, perfetto.

> $IPTABLES -A allowed -p TCP -j facchiu_input_allow

Se chiamassi prima allowed di not_allowed tutto il traffico tcp non
established e related arriverebbe qui, quindi mai intreresti nella
facchiu_input da not_allowed.  (per questo sospetto che da INPUT prima
venga richiamata la chain not_allowed)

> # NOT ALLOWED
> $IPTABLES -N not_allowed
>
> $IPTABLES -A not_allowed -p tcp ! --syn -m state --state NEW -j facchiu_input
[...]

Ora mi manca di vedere come e' fatta la chain di INPUT :-)  Anche la
syn-flood manca, ma presumo sia solamente un limit rate per i syn, quindi
non dovrebbe essere molto interessante.

[impedire vari tipi di scan]
> # blocco FYN scan ( funziona ? )
> #$IPTABLES -A not_allowed -p tcp --tcp-flags SYN,FIN SYN,FIN -j facchiu_input
> #$IPTABLES -A not_allowed -p tcp --tcp-flags FIN FIN -j facchiu_input

Per bloccare il FIN scan ricorda che ti dovrebbero arrivare pacchetti col
flag FIN ma senza flag ACK (se ti riferisci al FIN scan di nmap), cosa che
in una normale transazione non dovrebbe esistere, quindi

	--tcp-flags ACK,FIN FIN

> [cut]
> > perche' duplicati o per altri motivi...) ma se posti la config del
> > firewall si puo' tirare fuori qualcosa di meglio.
>
> Ok, attendo il responso del luminare :-)

E allora dobbiamo chiamare il Maestro Fabio (ora lo faccio incazzare ;-P),
non certo me...

-- 
>avendo accesso come root ad un server remoto, come potrei fare a rendere
>il sistema non utilizzabile ma in modo sottile ?
Se NT puo' installarsi via FTP, e' la tua risposta.
                -- Leonardo Serni


Maggiori informazioni sulla lista pluto-security