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