Salve,
        in una rete ci sono 3 server.

A - Server di Lan
B - Server posta e web in DMZ
C - Firewall linux box

Tutti e 3 i sistemi sono basati su debian sarge 3.x.

Nell'ottica di risparmiare HW ho cercato di portare tutti e 3 i server su un unico HW virtualizzando i server con XEN.

Il server A necessita di accedere a periferiche esterne come modem e simili per cui l'ho lasciato come dom0.

Il primo che ho sistemato è stato B che funziona bene come domU.
Ha una sua scheda di rete ad hoc (eth1) che via cavo cross arriva a C.

Ho poi portato C come domU su A

Per poter far funzionare il firewall e lo shaper ho dovuto utilizzare il kernel di xen completo, non quello fatto ad hoc per le domU altrimenti mancavano moduli e il firewall e gli alias di rete non funzionavano.

La situazione è ora la seguente.

A ha 3 interfacce di rete.

eth0 - LAN
eth1 - DMZ (nessun cavo attaccato
eth2 - Internet

su A è definito l'IP solo su eth0

Ho creato altre due bridge con i comandi xen

/etc/xen/scripts/network-bridge start vifnum=1
/etc/xen/scripts/network-bridge start vifnum=2

B, il server in DMZ vede solo il bridge 1

C, il firewall invece vede tutte e 3 i bridge.

Dopo aver sistemato le cose ho trovato uno stranissimo problema.

Da C vedo B e da A vedo B passando solo per C.

Se ora uso un PC sulla LAN questo riesce a pingare correttamente B e anche traceroute arriva a B in due hop.

Il problema è che le sessioni TCP hanno problemi.

Il client apre una sessione ssh con B. Bene vedo passare il syn, mi torna indietro il syn-ack e poi torna l'ack. Aquesto punto B inzia a mandare pacchetti di 32 byte a cui nessuno risponde.

Seguendo il tutto con tcpdump vedo questo traffico sull'interfaccia di B, su entrambe quelle di C, il firewall, e da A sulla vif di lan del firewall, ma il client sulla rete LAN non risponde.

Ho provato a mettere mano ad alcuni parametri in /proc, ma non sembra centrino (ip_forward su A, rp_filter su varie interfaccie di A), ho provato a cambiare i mac virtuali delle interfacce delle 2 domU, niente.

In altre parole tutto funziona come previsto fintanto che me ne sto dentro il sistema fisico (dom0 e le sue 2 domU), ma non riesco a raggiungere B passando per C da PC collegati in rete. Pare che solo TCP abbia questo stranissimo problema. Purtroppo su B non ho servizi in ascolto su UDP per fare prove.

Qualche idea per venirne a capo?

Grazie

--
ing. Andrea Gelpi
***************************************************
La Terra non la abbiamo ereditata dai nostri avi,
ma la abbiamo presa in prestito dai nostri bambini.
***************************************************
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List

Rispondere a