Dual NIC, problem s nedostupnosti

Dan Lukes dan at obluda.cz
Thu Apr 2 18:37:56 CEST 2009


On 27.3.2009 14:51, Lubos Dolezal:
> Narazil jsem na mozna "zajimavy" problem u sitovani na 7.1-RELEASE (amd64).
> Server ma dve sitova rozhrani pripojena v rozdilnych sitich (bge0, bge1):
> ---
> defaultrouter="172.25.11.1"
> bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> inet 172.25.11.23 netmask 0xffffff00 broadcast 172.25.11.255
> bge1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> inet 172.25.9.12 netmask 0xffffff00 broadcast 172.25.9.255

> Ted k tomu "problemu". Pokud je rozhrani "bge1" aktivni (a
> nakonfigurovane na uvedenou adresu) nelze se z jineho serveru v siti
> "172.25.9.0/24" dostat na sitove sluzby bezici na adrese 172.25.11.23
> (rozhrani bge0). Napr. z 172.25.9.10:
> ---
> $ telnet 172.25.11.23 22
> Trying 172.25.11.23...
> telnet: Unable to connect to remote host: Connection timed out


Jen aby nam tu nezustali neuzavrene problemy, kdyz je reseni znamo.

Nakonec stacilo poridit tcpdumpem zaznam komunikace z obou koncu. 
Ukazalo se, ze pakety neprichazeji tak, jak byly odeslany. Uvodni SYN 
packet dorazi na server z odlisnymi sekvencnimi cisly nez s jakymi byl 
odeslan z klienta. No a to je cela potiz.

SYN+ACK odeslany v opacnem smeru mel hodnotu ACK odpovidajici tomu, co 
na server dorazilo - a protoze "zpetky" paket sel primo, nikoliv pres 
router, dorazil v tomto smeru paket nezmeneny. Klientovi hodnota ACK 
nesedela k sekvencnimu cislu, se kterym on SYN odeslal a tudiz dospel k 
zaveru, ze se nejedna o odpoved na jeho paket. Reagoval proto zaslanim 
RST. Spojeni se pochopitelne nesestavilo.

Zbyvalo najit, kdo meni sekvencni cisla a to uz bylo trivialni - po 
ceste je CISCO a na nem ASA/PIX. A to defaultne pocita s tim, ze sitove 
stacky systemu nejsou bezpecne napsane a sekvencni cisla posouva o 
nahodne zvoleny offset aby se nikomu ISN nepodarilo uhadnout. Pokud jde 
komunikace zpatky pres nej, je to v pohode (hodnoty ACK posouva o stejny 
offset zpet), pokud ne, jako v tomto pripade, smula.

Bohuzel, ani vypnuti randomizace pro komunikaci mezi temito vnitrnimi 
sitemi problem nevyresilo, protoze firewall nevidi kompletni handshaking 
(kdyz jeden smer pres nej nejde) a nema tudiz spojeni za ustavene a 
odmita propustet data.

Podle me je snadne reseni i tady (proste mu jakekoliv filtrovani teto 
komunikace zakazat uplne - u stroju, ktere maji nezavisle prime spojeni 
to stejne nema bezpecnostni smysl), ale jestli se Lubos rozhodne pro 
toto reseni, nebo zustane u workaroundu, ktery uz zvolil (pomoci pf 
tlaci "zpetne" pakety take pres router), to je vic politicka nez 
technicka otazka a to uz je ciste na nem.

Jinymi slovy, puvodne poskytnuta informace, ze firewall tuto komunikaci 
neblokuje se ukazala nebyt uplne presna. Sice neblokoval, ale nevhodne 
ovlivnoval - a kdyz se mu to zatrhlo, tak teprve tehdy zacal natvrdo 
blokovat ;-)


							Dan



More information about the Users-l mailing list