Sziasztok!
Röviden a kiindulási pont. Van két hálózati kártya a gépben. Az egyik az interneten csücsül a másik pedig a belső hálózatot táplálja. A natolás működik, portforwardok is működnek. Amit szeretnék elérni, hogy bejövő kérés esetén, ha pl bacsi.geza.hu-ra érkezik bármilyen kérés akkor azt a belső hálón egy adott IP-re forwardolja. Abból indultam ki, hogy apachal vhostokban lehet ilyesmit játszani, de nekem teljes IP forward kellene. Kérdés az, hogy iptables fel tud e dolgozni ilyet, hogy bacsi.geza.hu?
Ilyesmiket találtam a neten, de nem futnak le:
iptables -t nat -A PREROUTING -d geza.geza.hu -j DNAT --to-destination 192.168.0.155
iptables -t nat -A POSTROUTING -j MASQUERADE
Szeretném iptables-szel megoldani a helyzetet. Lehetséges?
Köszönöm előre is.
üdv
ab
- 2669 megtekintés
Hozzászólások
Az iptables csomagszoru, vagyis O nem fog foglalkozni azzal, hogy milyen domain-re jott a keres, mert nem tud rola. Amit Te szeretnel, ahhoz proxy kell HTTP forgalom eseten.
- A hozzászóláshoz be kell jelentkezni
Sőt, mondjuk azt, hogy minden forgalom esetén - ahol bele akarsz nézni a csomagba - applikáció szintű proxy kell.
- A hozzászóláshoz be kell jelentkezni
nem feltétlen, van, amibe bele lehet nézni, és az elég, pl pont az iptables conntrack modulok így működnek, nem proxyznak azok semmitse.
- A hozzászóláshoz be kell jelentkezni
van olyan conntrack modul, ami belenéz a csomagba, és a payload tartalom alapján külön helyre irányítja?
(http, ftp, sip, etc)
Melyik az a csomag?
Nem kevered azzal, hogyha a csomag tartalmaz valami string-et (pl torrent vagy virus pattern) akkor azt eldobja?
- A hozzászóláshoz be kell jelentkezni
ftp connection tracking eppenseggel pont van iptables-ben, pl. adatcsatornak kapcsolathoz rendelesehez. igy ha beengeded mondjuk a 21-es portot es van ftp conntrack rendelve ehhez, akkor az ftp szerver altal nyitott adatcsatornak 'RELATED' allapotouak lesznek igy lehet engedelyezni anelkul hogy a port folyamatosan nyitva lenne.
- A hozzászóláshoz be kell jelentkezni
nem keverem, pl az ftp pont ilyen, így találja ki, hogy a data az related. Mondjuk nem külön helyre irányítja (mivel a conntrack modulok nem erre valók), pusztán azt szerettem volna cáfolni, hogy ha layer7 info kell a döntéshez, akkor mindenképp proxyzni kell, mert ez nem igaz. Őszintén szólva rég csináltam ilyet iptablessel, lehet, hogy nincs modul hozzá, elméleti szinten jegyeztem meg inkább.
- A hozzászóláshoz be kell jelentkezni
akkor vissza a topic-hoz.
Azt melyik iptables modullal oldod meg, hogy a bejövő FTP csatlakozás MÁSIK belső IP-re legyen dst-nat-olva
ha jani.kovacs.hu
ha jozsi.kovacs.hu
a címzett???
- A hozzászóláshoz be kell jelentkezni
" Őszintén szólva rég csináltam ilyet iptablessel, lehet, hogy nincs modul hozzá, elméleti szinten jegyeztem meg inkább"
- A hozzászóláshoz be kell jelentkezni
ftp-nel a protokoll nem tamogat nev szerinti azonositast (ellentetben a http-vel ami igen) ezert ez alapbol eselytelen.
vissza a topikhoz: iptables valoban nem tud ilyet meg http-nel sem (ahol tamogatott protokoll szinten), de altalanossagban nem igaz amit irtal, miszerint az iptables nem nujt semmilyen protokollszintu tamogatast.
- A hozzászóláshoz be kell jelentkezni
bakker, tényleg, ftpnél nincs semmi ilyen connectben
- A hozzászóláshoz be kell jelentkezni
illetve annyiban tényleg megkövetem nat kapcsán (illetve tulajdonképp endpoint selection kapcsán) a kollégát, hogy ott ez egy csomószor valóban nem fog menni csak a csomagból kiszedett infora támaszkodni, pl mert valakinek le kéne focizni a tcp handshaket payload előtt, és akkor valóban fel vinni L7re.
- A hozzászóláshoz be kell jelentkezni
Viszont a conntrack modulok nem csinalnak tcp reassembly-t.
- A hozzászóláshoz be kell jelentkezni
+1 Húzz fel egy haproxy-t azt müxik is :)
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
esetleg ha fixek a domain-ek mögötti ip-k akkor NAT-olhatsz
és cseréled a valami.geza.hu-t ipcímre
illetve a 2 hálókártyás gépen hosts file-ba felveszed a valami.geza.hu-t a belső ip címmel
- A hozzászóláshoz be kell jelentkezni
Attól függ. Az iptables old fel ilyesmit, de csak induláskor. Szóval semmi dinamizmust nem tud magától. Valami periodikusan updatelődő dolgot még esetleg lehetne, de arra, amit te szeretnél szerintem nem lesz jó.
Igazából egyébként is hibás az elképzelésed (feltéve, hogy jól értem mit szeretnél), mivel az alapján, hogy a bacsi.geza.hu-nak szólt-e valami, eleve csak akkor lehet kezdeni valamit, ha ez az info rendelkezésre áll a sessionben (mint pl a httpnél teszi ezt), ez pedig nem jellemző. Egy random ping mondjuk először névfelold, aztán küld ping csomagot ipre, és abban már egy szó nem lesz arról, hogy ez bacsi.geza.hu-nak szólt. És ez még számos protokollra igaz (számosra meg, mint pl a https ugyan nem, viszont ott csak layer7en proxyzva -- man in the middle -- fogsz tudni belenézni, mert egyébként a titkosított csatorna tartalmát nem látod.
Szóval ha nagyon ez kell, akkor nem sok mese van, kell több publikus ip.
- A hozzászóláshoz be kell jelentkezni
A belső halókártyán mi szolgálja ki a DNS kéréseket?
- A hozzászóláshoz be kell jelentkezni
+1, első hallásra nekem is dns feloldásos megoldás tűnik a praktikusnak. A belsős hálóból jövő kérést belsős címre oldani fel. A belsős gépek pedig a helyi dns kiszolgálótól kérjenek feloldást (dhcp-ben azt reklámonzni).
- A hozzászóláshoz be kell jelentkezni
Köszönöm a sok választ:) Akkor kicsit körbeírom, hogy miről van szó:
A natolás mellett a belső hálóra bind van, tehát a natolt eszközök először a tűzfalat érik el, gateway és dns is ez a tűzfal (két hálókártyával).
Azt már látom, hogy iptables erre képtelen lesz.
A felállás a következő:
2 hálókártya a tűzfalban, eth1 net, eth0 belső natolt háló.
geza.hu ipje: 1.2.3.4 ez az ipje az eth1-nek a tűzfal gépben.
bacsi.geza.hu ipje: 1.2.3.4, ugye ez van megadva, mert a belső hálón lévő natolt gépnek csak belső ipcíme van, 192.168.0.123.
Azt szeretném, hogy kívülről a bácsi.géza.hu esetén a tűzfal a bejövő bácsis kéréseket átirányítsa 1-1ben a 192.168.0.123-ra.
Apache-val játszottam már ilyet, de ugye http request esetén átjön szépen, hogy mi volt a teljes request és ez működik...
Ezt a haproxyt néztem, de ez is mintha csak httpre lenne feltüzelve...
Valszeg nem kivitelezhető? Publikus ip cím kéne a belső gépre is?
- A hozzászóláshoz be kell jelentkezni
Azt szeretném, hogy kívülről a bácsi.géza.hu esetén a tűzfal a bejövő bácsis kéréseket átirányítsa 1-1ben a 192.168.0.123-ra.
Csak adott port (protokoll) esetében, vagy MINDEN csomagot?
Ha minden csomagot, akkor 1:1 külső-belső megfeleltetés kell.
Ha nem minden csomagot, akkor még akár működhet is.
Ha csak http esetén, akkor megoldható portfwd-al v reverse proxy-val
- A hozzászóláshoz be kell jelentkezni
Alapvetően minden csomagot szeretnék.
A külső-belső megfeleltetést mivel érem el?
- A hozzászóláshoz be kell jelentkezni
dst-nat -al
azt azért vedd figyelembe, ha 1:1 megfeleltetést csinálsz, akkor ha egy MÁSIK belső gép küld csomagot, az arra érkező válasz IS az EGYIK gépre fog érkezni (rgo, MÁSIK gép nem fog tudni netezni)
- A hozzászóláshoz be kell jelentkezni
Plusz 1 publikus ipcímet kérni kell, és azt benatolni 1:1-ben szerintem iptables-el.
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
Ez az ami sajnos nem működik:/
- A hozzászóláshoz be kell jelentkezni
Azon felül pedig generikusan max annyit lehet tenni, hogy bizonyos portrangeket egy az egyben oda teszel.
Szerintem gondold át, hogy valóban az-e az igény, hogy minden csomagnak át kell mennie, vagy egyszerűen csak ez kényelmesnek tűnt, és igazából jól elvagy a szolgáltatásportok beforwardolásával....
- A hozzászóláshoz be kell jelentkezni
Oké, tegyük fel, hogy lenne 6-7 port amit szeretnék átforwardolni.
Sima portforwardot tudok csinálni:)
De hogy tudom megoldani, hogy a bacsi.geza.hu-ra adott pl RDC request oda menjen?
Portforward nem jó, mert a natolt hálón több gépre szeretném használni az RDC-t...
- A hozzászóláshoz be kell jelentkezni
A publikus ipn külön portra teszed. Pl az egyik belső gép kintről a geza.hu:13389 lesz, a másik meg a geza.hu:23389, ezeket beforwardolod az adott gép 3389-ére.
(és igen, vannak olyan protokolok, amiknek ha peched van egy ilyentől keresztbe áll a szeme)
- A hozzászóláshoz be kell jelentkezni
Lasd kroozo valaszat. Ez van, nincs mit tenni.
- A hozzászóláshoz be kell jelentkezni
Te sem nagyon érted, hogy működik ez az IP protokoll, meg a DNS.
Gondolj már bele, az IP-ben csak cél cím van, nem név. Csak IP alapon nem lehet ezt megoldani, legfeljebb valami magasabban ülő rétegben (mint magadtól is rájöttél, a http-ben pl. lehet).
- A hozzászóláshoz be kell jelentkezni
Mikor először megláttam a topikot gondoltam odaírom hogy OSI modell, és kész. Aztán mégse tettem volna mert jöttek volna, hogy ugyan már milyen vagyok nem segitek stb. Ugyhogy csak csendben figyelek.
Fedora 22, Thinkpad x220
- A hozzászóláshoz be kell jelentkezni
Én mondjuk azt nem értem, hogy aki ebben a szakmában dolgozik, hogy jut eszébe ilyen hülyeség. Vagy ha eszébe is jut (mert épp lelkesen vág bele egy feladatba), hogy nem döbben rá, hogy hülyeség. Ehelyett még vissza is kérdez (már vagy 3x), hogy pontosítsa a csodálatos elképzelését.
- A hozzászóláshoz be kell jelentkezni
" hogy aki ebben a szakmában dolgozik, hogy jut eszébe ilyen hülyeség"
Ezt inkább a békesség miatt nem fejteném ki :D
Fedora 22, Thinkpad x220
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
-m string --string "domain.com" ?
- A hozzászóláshoz be kell jelentkezni
Remek ötlet :) El tudom képzelni, hogy van, aki meg is csinálja így.
- A hozzászóláshoz be kell jelentkezni
én max, hogy megpróbálja :)
- A hozzászóláshoz be kell jelentkezni
Szerintem:
apache proxy module
aztán
ServerName teszt.hu
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://belső-ip-cím/
ProxyPassReverse / http://belső-ip-cím/
Hátránya, hogy a belső host-on az apache logban a látogató
mindig a szerver lesz.
- A hozzászóláshoz be kell jelentkezni
Elvileg ezt a hátrányt az rpaf modullal ki lehet küszöbölni (ha jól emlékszem)
- A hozzászóláshoz be kell jelentkezni