Problem s iptables

Pavel Lisy pali na tmapy.cz
Čtvrtek Listopad 20 15:13:04 CET 2008


Zdar

setkal jsem se takovou podivností v chování iptables. Je to na RHEL, ale
než tobudu nahlašovat do bugzilly, chci zjistit, zda to nemůže být
nějakou blbostí.

Mám server s dvěma síťovkami (eth0, eth1). Na první je několik IP adres.
Řekněme (IP jsou vymyšlené)

eth0    192.168.1.1/24
eth0:1  192.168.10.1/24

eth1    192.168.50.1/24

Na IP adresách od eth0 běží apache.

V iptables bylo povolen přístup na eth0 pro porty 80, 443. Pro eth1 tyto
porty povolené nebyly.
Dlouho to takto fungovalo bez problémů, ale najednou (ne okamžitě po
nějakém updatu) nebylo možné přistupovat na weby v IP 192.168.10.1, tj.
ty na eth0:1.

Když jsem zjišťoval proč, objevil jsem, že pakety přicházející na
192.168.10.1 vidí kernel jako IN=eth1, tj. iptables je nepustily. Když
jsem povolil provoz pro eth1 na portech 80, 443, weby zase začaly
fungovat.

Nenapadá vás někoho jak je to možné? Pokud si odmyslím nějaký hack
kernelu, který mi připadá málo pravděpodobný, tak mě moc věcí nenapadá. 

Nemůže to souviset s tím, že obě síťovky jsou zapojené do jediného
switche, bez nastavení vlan, takže je v něm smíšený provoz všech 3 sítí
a nějak se do toho přimíchalo arp a nyní to chodí na jinou síťovku, než
která má tu adresu přidělenou?

Budu vděčný za jakoukoliv vysvětlující informaci a případně i návrhy jak
to vyřešit. Zatím jsem to obešel povolením daných portů na obou
síťovkách. 

(kernel mám 2.6.9-78.0.5.ELsmp, iptables iptables-1.2.11-3.1.RHEL4)

A dělá mi to na 3 strojích (se stejným jádrem a iptables), které jsou do
toho switch zapojeny, ale ne u strojů (RHEL3) s jádrem 2.4.21-57.ELsmp.

Navíc to nezačalo takto chovat u všech najednou, ale v průběhu několika
dnů.

Pavel


-- 
Pavel Lisy <pali na tmapy.cz>




Další informace o konferenci Linux