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