Nezzuk sorban - hosszu lesz.
On 09/27/2016 20:30, Fehér Sándor wrote:
A weblapunk tűzfal mögött portforwarddal volt/lesz megoldva.
Eddig: sulinet >>>> asus rx router >>>> webserver >>>>> LAN
Ugye csak az abra rossz es a webszerver nem a lan es a router kozott ul?
Ugye valojaban azt akartad rajzolni, hogy a webszervern a lanon van?
Ez felvet egyeb kerdeseket (hol a dmz?) de most ezekkel egyelore ne
foglalkozzunk.
A probléma ezzel eredetileg is az volt, hogy a LAN -ról nem tudtunk
kapcsolódni a publikus dns nevünkhöz és a weblap csak úgy működött hogy
lan ip címet vagy weblap.local kellett beírni.
Ez tulajdonkeppen nem problema. Mert mi tortenik ugye a csomaggal
bentrol? DNS feloldas, kap a nevhez egy publikus IP cimet. A publikus
IP cimet megcimzi a belso kliens. Eljut a routerhez. A router meg
tipustol fuggoen:
a) megnatolja a csomagot, mert a nat elobb jon, mint a routing, megnezi
hova kell kuldeni: nahat, sajat magamnak, de vicces, jo, elkuldom sajat
magamnak, a 80-as portra, amit rogton be is natolok magamnak a privat
cimre. Megerkezik a szerverhez, a forras cim a sajat publikus cimetek,
a szerver valaszol, az megint megjon a routerhez, nahat, de vicces,
sajat magamnak visszanatolom es visszakuldom. Es visszaer a csomag.
b) route-olna a cimet, mert a route dontes elobb jon, mint a nat,
eszreveszi: nahat en vagyok a cimzett, de mokas, majd be is natolja a
webszervernek, de a forras cimet erintetlenul hagyja. A szerver
megkapja, a forras cim a belso privat cim, arra valaszol is. A kliensed
pedig azt latja: nahat, de erdekes, valaszolt nekem valaki akihez nem is
beszeltem, hisz en a <publikus cim> -rol varom a valaszt, de az a
<privat cim> -rol jon. Ezt eldobjuk, mi nem erre varunk.
c) route-olna a cimet, mert a route dontes elobb jon, mint a nat,
eszreveszi: nahat, en vagyok a cimzett, de mokas. nembaj, azert
megnatoljuk a forras cimet is. varjunk csak: az hogy van, hogy a forras
is en vagyok meg a cimzett is. aaaa segitseg, inkabb dobjuk el a
csomagot, biztos tamad valaki.
Hogy nalad melyik tortenik, azt helyesen tcpdump segithet kideriteni, de
remelem sikerult ravilagitanom, hogy miert nem veszunk szappantartot
routernek.
Akit konkretan erdekel, hogy pontosan milyen sorrendben milyen muveletek
tortennek amikor tobb mindent kell eloszor csinalni, a routerenek
dokumentaciojaban talal errol informaciot. Peldaul:
http://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/6209-5.html
Ebben lathato, hogy peldaul belulrol kifele elobb tortenik route, majd
policy route, vegul nat (kabe tiz masik dolog mellett). Mig kivulrol
befele eppen forditva, elobb van nat, utana route.
Raterve a konkret problemadra, a problema nem egyedi. A google
keresoszavak: hairpinning, illetve 'nat order of operation'. Szamtalan
talalat lesz. Annyira, hogy erdemes egy harmadik kereso kifejezest is
eszben tartani: dns doctoring. Ezt konkretan a tuzfalak tudjak
csinalni, ami annyit tesz, hogy a fenti esetben, amennyiben a DNS
szerver fele a keres es a valasz is athalad a tuzfalon, meghozza azon a
tuzfalon aki a natolast es port forwardolast csinalja, o felismeri a
tartalmat. Rajon, hogy hoppa, itt egy belso kliens akarja elerni a
belso szervert de kulso IP cimen. Nyuljunk bele ebbe. Es szo nelkul a
DNS valaszba belenyulva kicsereli a DNS altal adott publikus IP cimet
arra a privatra, amit a sajat konfiguraciojabol nez ki.
Nem csak a cisco eszkozei csinaljak, de legyunk konzisztensek, egy
leiras errol:
http://www.cisco.com/c/en/us/support/docs/security/asa-5500-x-series-next-generation-firewalls/115753-dns-doctoring-asa-config.html
> Kerülőmegoldásom: saját statikus dns rekord, ha benntről kéri a kliens
> lan ip-t ad vissza. >>>> Ez nem túl elegáns :), pl okosteló, laptop
> elviszed melóból és otthon már ipconfig /flushdns kell!
Azaz mint latod, a sajat favago megoldasod nem is annyira sajat es meg
kevesbe favago! A flushdns problemaba en meg nem futottam bele, mivel a
kliens ugyis mas dhcp szervertol (valoszinuleg) mas cimet fog kapni,
automatikusan uriti a cache-t. Kiveve persze, ha otthon is 192.168.4-es
tartomanyt hasznalsz, akkor a laptop eszre se veszi, hogy valahol mashol
van.
$IPT -A POSTROUTING -t nat -o $sulinet -j MASQUERADE
$IPT -A PREOUTING -t nat -i $sulinet -p tcp --dport 80 -j DNAT
--to-destination 192.168.4.251:80
ez a ketto tiszta ugy
$IPT -A PREOUTING -t nat -i $lan -s 192.168.4.0/24 -p tcp --dport 80 -j
DNAT --to-destination 192.168.4.251:80
Ez viszont nekem zavaros. Ez szerintem a cellal ellentetben azt
csinalja, hogy _minden_ 80-as portra meno forgalmat atiranyit a sajat
belso szerveretekre, ugyanis nincs megadva -d, tehat alapertelmezetten
0/0 lesz.
Így sajnos nem jó, a tcpdump szerint eljut a szerverhez a tűzfalról a
csomag és válaszol rá a szerver, de a kliens a választ már nem kapja
meg. (kliens ebben az esetben azonos subnet-en van a szerverrel.
A tcpdump szerint, a szerver a default gw-nek küldi a választ a DNAT
miatt és ott elveszik a csomag.
Nem irtad, hogy a szerver milyen forras cimmel latja a beerkezo
csomagot? Azt irod, hogy a szerver a routernek kuldi a csomagot, de ezt
en ketelkedve olvasom. Ket ok miatt.
1) a PREROUTING lanc elobb kerul kiertekelesre, mint a POSTROUTING,
tehat a csomag mar akkor tudja, hogy merre kell mennie, mielott valami
SNAT szaballyal talalkozott volna
2) a PREROUTING eredmenye az, hogy a $lan interfeszeden megy ki a
csomat, tehat a MASQUERADE a POSTROUTINGban nem jut ervenyre, mivel
ahhoz -o $sulinet kell, ami ugye nem tortenik meg (a csomag hamarabb
eliranyitodik a $lan iranyba)
Hangsulyozom, hogy lehet, hogy nalad vannak meg iptables POSTROUTING
szabalyok, de en ugye csak abbol dolgozom, ami a levelben van. A
levelben mas nincs. Igy tehat a fentiek csak akkor nem igazak, ha az
iptables szabalyaid kozott van valami mas is, amit trukkosen kihagytal
es befolyasolja a csomag cimforditasat. Ami nem lehetetlen, ez a lista
sajnos nem arrol hires, hogy minden szukseges informacio meg lenne adva.
A kapott informaciokra alapozva, szerintem az az allitasod, hogy a
szerver a router fele kuldi a csomagot, nem igaz. Azert, mert a forras
NAT nem valosul meg, ergo a szerver a valodi, privat cimet latja es
kozvetlenul valaszol neki, mert a routereden a POSTROUTING lancbol nem
masoltal be semmit, ami -o $lan -ra lenne ervenyes.
Tehat aszimmetrikus routing lesz, ami onmagaban nem baj, de a router nem
tud valaszt tovabbitani, mert sosem latja, a kliensed pedig eldobja azt,
mert o nem a privat cimtol var valaszt, hanem a publikustol, mert azt
szolitotta meg. Lasd b) pontot az elejen.
udv
Adam
_______________________________________________
Techinfo mailing list
Techinfo@lista.sulinet.hu
Fel- és leiratkozás: http://lista.sulinet.hu/mailman/listinfo/techinfo
Illemtan: http://www.szag.hu/illemtan.html
Ügyfélszolgálat FAQ: http://sulinet.niif.hu/