Debian 5 vs iptables

 ( nooke4000 | 2009. november 29., vasárnap - 19:55 )

Üdv Mindenkinek!
A helyzet az, hogy már írtam szintén ezzel a problémmámmal kapcsolatban már írtam ide és kaptam is helpet csak most megint rohadtul elakadtam.
Van 3 szerver, egy sambás, fájlszervernek meg 2 proxy (Debian+squid). A szitu az, hogy a proxyk látják a fájlszervert, de a hozzájuk csatlakoztatott gépek nem. Erre kaptam innen az ötletet, miszerint iptablesel megoldható.
Amit eddig csináltam:
Ip forward:
echo 1 > /proc/sys/net/ipv4/ip_forward

iptablesben:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 137 -j DNAT --to-destination 192.168.1.10

iptables -t nat -A PREROUTING -i eth0 -p udp --dport 137 -j DNAT --to-destination 192.168.1.10

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 138 -j DNAT --to-destination 192.168.1.10

iptables -t nat -A PREROUTING -i eth0 -p udp --dport 138 -j DNAT --to-destination 192.168.1.10

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 139 -j DNAT --to-destination 192.168.1.10

iptables -t nat -A PREROUTING -i eth0 -p udp --dport 139 -j DNAT --to-destination 192.168.1.10

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 445 -j DNAT --to-destination 192.168.1.10

iptables -t nat -A PREROUTING -i eth0 -p udp --dport 445 -j DNAT --to-destination 192.168.1.10

illetve egy log ami a 139es portot lesi:

iptables -A INPUT -p tcp --dport 139 -j LOG --log-level warning --log-prefix="IPTABLES INPUT"

Hát kb ennyi. A helyzet az, hogy a sambára átdobja a proxy, mert a logjában megjelenik, csak nem jön vissza a csomag. Csak ezek a szabályok vannak az IPTABLESben. Az is gond volt, hogy reboot után nem voltak meg a szabályok. Nagyon nagyon kezdő vaok iptablesben! :)

Valakinek ötlet? Naon hálás lennék a segítségért,előre is köszi mindent.
NuKe

U.I.: Kipróbáltam virtuális környezetben 2 deb között csak 1-1 hálókártyával és ott se jött be ez a megoldás.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Azt gondolom tudod, hogy a squidnak meg a sambának elég kevés köze van egymáshoz?

jobb lenne, ha leírnád részletesen a környezetet meg a bajodat, hamarabb kapnál segítséget.

Valószínűleg a tűzfalnak semmi köze a problémához, sokkal inkább a routingnak, úgyhogy írd le azt, hogy hogy néz ki a hálózat és mit szeretnél elérni, hid el meg fogod kapni a segítséget

----
概略情報

Lássuk, van 2 emelet, emeletenként 1 proxy szolgáltatja a netet. Az elsőn 4 terem szóval az első proxyban van összesen 5 hálózati kártya. Mindegyik kártya egy termbe van bekötve. Az 5ből egy a közvetlen belső hálózatra van kapcsolva, ez látja normálisan a többi szervert és ez van rákötve a netre is.
A másik proxy szintén ugyan így néz ki. A fájlszerverben csak 2 hálókártya van. Az egyikkel a netre csatlakozik a másik meg igazából csak van.

A lényeg az volna, hogy az adott termekből ellehessen érni a fájlszervert a proxykon keresztül, de ez azokról a hálózati kártyákról melyekre a termek vannak kötve sajnos nem elérhető, ezért van minden csomag aminek a célja a 137,138,139,445-ös (samba által használt portok, UDP/TCP)portok legyenek átdobva a fájlszerverre.

http://img215.imageshack.us/i/csn.png/

Asszem ennyi. Ja és a fenti iptables parancsok mindegyik hálózati kártyára rálettek rakva (eth0-eth4).

Ha már így van összerakva ez a hálózat, akkor csak annyit kellene tenni, hogy az ábrán nem látható, az eth0-kon ülő gateway-en - ha a Samba default gateway-e ez - kellene route-olni az első emeleti géptermek IP tartományait a Proxy1 eth0 címére, a második emeleti géptermek IP tartományait a Proxy2 eth0 címére. Ha nem, akkor magán a Samban is meg lehet ezt tenni. Valamint a Proxy1-en és Proxy2-n át kell engedni a Samba felé menő (és onnan jövő) megfelelő forgalmat. A Samban be kellene állítani egy WINS-et, és az összes gépterem összes kliensén pedig azt, hogy használják is - remélhetőleg DHCP van, és akkor egyszerű a dolog.

Szóval minden csomag aminek célja a samba routoljam a proxyk eth0-ra. Akkor rossz láncot is használtam? Mit kéne használnom,hogy sikerüljön is a történet?

"minden csomag aminek célja a samba routoljam a proxyk eth0-ra"
Nem. Te is írtad ("a sambára átdobja a proxy"), hogy a gépterem->Samba útvonal működik, csak a visszirány nem. A Sambával kell tudatni, hogy a proxyk mögött lévő tartományokat merre találja. Vagy a proxyk és a Samba közös alapértelmezett átjáróján is meg lehet ezt tenni ugyanezt.

"Akkor rossz láncot is használtam?"
A kérdésnek több megközelítése is lehetséges, lehet natolni (source és destination is), de megoldható csak routinggal is. A routing a legegyszerűbb, oda nem kell semmilyen NAT, csak a tűzfalszabályokon kell átengedni a forgalmat, ha WINS-t használsz. Ezt javasolnám. (Egyébként az eth0-n nem is lenne jó ez a DNAT, amennyiben a 192.168.1.10 a Samba címe lenne.)

A lehetőségeid:
a) megfelelő route-ok az átjárón; WINS
b) megfelelő route-ok a Sambán; WINS
c) source + destination NAT; (broadcastra is)
d) ezekből kialakított vegyes megoldás

WINS csak akkor kell, ha név szerint is szeretnéd megszólítani a szervert.

Nagyon köszönöm a leírást,de abszolút lövésem sincs,hogy hogyan kell routolni :s csak ezt a prerouting láncot ismerem,a logolást meg a portnyitást,szóval itt kifújt a tudásom sajnos. Tudnál ajálni valami könyvet vagy linket,hogy szintre hozhassam magamat?

Példa: ha például az egyik első emeleti gépterem tartománya a 192.168.11.0/24, és a Proxy1 eth0 címe a 192.168.1.11, akkor a Sambán vagy az átjáróján:
route add -del 192.168.11.0 netmask 255.255.255.0 gw 192.168.1.11

Tyúú,komolyan ennyi? Egy egyszerű route parancs? Remélem bejön,ha nem akkor még zaklatlak :) nagyon köszönöm a segítséget,hálám örökké üldöz!

Bocs, elírtam, az az "add -del" elég durva volt. :)

Helyesen:

route add -net 192.168.11.0 netmask 255.255.255.0 gw 192.168.1.11

:) köszi szépen,amint tudom kipróbálom azt report.
Még azt megtudod mondani,hogy reboot után az iptables miért vágja ki a szabályokat?

Ahogy én szoktam telepíteni a debianokat, azokban semmi nincs, ami megmentené az iptables szabályokat.
Írd bele egy shell scriptbe és tedd be a /etc/networks/interfaces fájlba az interfészhez up scriptként.

Cseles,köszi szépen ;)

Kayapo nyert.

"emeletenként 1 proxy szolgáltatja a netet"

Miért nem elég egy?

Egyszerűsödne a topológia.

Nem én találtam ki sajnos, én csak segítek a rendszergazdának. Ha rajtam múlna belenne vágva minden egy alhálóba.

"belenne vágva minden egy alhálóba"
Nem feltétlen lenne ideális megoldás nyolc teremnyi gépet közös broadcast domainbe tenni.