iptables forward

Fórumok

Az eredeti bejegyzest atjavitottam egy konkretabb problémaleírásra.

Van itthon egy routerem - csatlakoztatva a netre
Mögötte egy raspberry pi - mini szervernek használva (web/git - ezek mennek)

Szeretnék a raspberrynek egy uj funkiót adni.

Ha a munkahelyemről 80as porton rácsatlakozok akkor funkcionáljon átjáróként egy másik szerverre egy másik porton.

Tehát jövök a.a.a.a:81 - ról csatlakozok a raspberry-hez ami forwardolja a forgalmam b.b.b.b:10030-ra.

Gondoltam haladjunk fokozatosan és először itthonról próbálom a csatlakozást úgy, hogy az a.a.a.a az én itthoni gépem ami azonos hálózatban van a raspberryvel.

Odáig eljutottam hogy 80as porttal megy. Tehát a.a.a.a:81 at b.b.b.b:81ra forwardolja és a kommunikáció is folyamatos.
DE hamár portot is szeretnék mahinálni akkor nem működik a dolog.

iptablesben eddig jutottam

*nat
-A PREROUTING -p tcp --dport 81 -j DNAT --to-destination b.b.b.b:10030
-A POSTROUTING -p tcp -s b.b.b.b --sport 10030 -j SNAT --to-source a.a.a.a:80
COMMIT

*filter
-A FORWARD -p tcp --dport 10030 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p tcp --dport 81 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
COMMIT

TEhát még internálban sem megy a dolog ha különböző portok között akarok mahinálni.

Az iptables logokkal nem lettem beljebb. :-(

Hozzászólások

-
bocs, nem szóltam

Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)

Gondolom publikus IP -ről belső hálóra, akarod irányítani a forgalmat:

srcIP forrás IP vagy range(ahonnan érkező csomagokat szeretnéd irányítani tovább)
pubIP: tűzfal publikus IP címe
intIP: tűzfal mögötti gép IP címe
intPort: tűzfal mögötti gép portja

-A PREROUTING -p tcp -s srcIP -d pubIP --dport 80 -j DNAT --to intIP:inPort

Tesztelni tudod tcpdump-al vagy beállítod a logolást az iptablesben és utána logban nézed,hogy mit dob el a tűzfal.
pl.:

tcpdump -i eth0 -nn host
and port 80

eth0 helyére megfelelő interfacet kell beítni

Hello,

Igazából egy külső, szeparált hálóban lévő gépről szeretném a 80as forgalmat az otthoni gépemen keresztül továbbítani egy másik gépre/portra.

Mert a szeparált hálóból csak 80ason tudok kijönni ámde a célban más portot kell megcélozni.

Ezért gondoltam közbeépítem az otthoni raspberry-t hogy továbbítsa a forgalmat a helyes irányba és portra.

öö ez nem teljesen tiszta nekem.

Nem tudok átjárót belőni a Forrás-on hanem csak egy scriptben szeretném paraméternek beállítani az Átjátszót, hogy a script által generált forgalom menjen az én általam megadott saját gépre ami utánna továbbítja a célra 1001-re.

De ebben a szabályban nem látom hogy hol van az a végső cél gép ahová irányítani akarom.

LAN1 LAN2 LAN3
Forrás ---------------------ÁTJÁTSZÓ---------------------IGAZI_CÉL
port 80 port 1001
dest=átjátszó dest=igazicél

Az átjátszóról megy az IGAZI_CÉL:1001 és 80 as porton is tudok csatlakozni hozzá.

Pont hogy nem értem :)
Nem értem milyen átjárót(?) akarsz belőni valami forráson(?), vagyis valami ilyesmit nem tudsz, mert valami scriptnek(?) akarsz adni valami paramétert, ami egy átjátszó(?). Aztán valami forgalmat generál a script (a script?), aminek valami általad megadott saját(nem másé) gépre menjen, aztán onnan még tovább menjen :) valami célra(?) :) meg valami 1001-re(?) :)
Aztán valami szabályban(melyikben?) nem látod hol van a végső cél (mi az a végső cél, addig senki nem látja amíg azt se tudjuk mi az amit látni kéne :) )
Még ha érteném is mit szeretném, kipróbáltad már legalább azt, amit már javasoltak? :)

Akkor,hogy tiszta legyen nekem is és még talán meg is oldjuk ezt a rejtélyt. :)

Jön egy csomag a routertől, akkor minek akarod beletenni a raspberry-t, ha át tudja tolni a router direktbe esetleg?
Külön hálón van a routertől az igazi_cél eszköz?

Mert sztem. elég a routeren forward az igazi_cél-ra ha egy hálón van a routerrel és meg van oldva.

Ha az van ,hogy az igazi cél a raspberry mögött van egy másik hálón, akkor az van ,amit leírtam fentebb. Csak tűzfal helyett értsd raspberry eszközöd :)

NAT-hoz
-A PREROUTING -p tcp -s srcIP -d raspIP --dport 81 -j DNAT --to b.b.b.b:10030

NAT-nál nem kell mindkét iránnyal játszani, mert azt az IPtables megoldja.
Az srcIP-nél mondhatod meg,hogy milyen IP-ről vagy IP tartományból érkező csomagokat toljon tovább.

Egy kis ábra:

src --- prerouting -- routing -- postrouting -- dst

Prerouting-al a route táblában lévő szabályok előtt fut le célcím módosítása. Ez azért kell,hogy a megfelelő irányba menjen a csomag a routing során majd.

Postroutingnál a route tábla után. Tipikusan ilyen mikor ki akarod tolni a belső hálózat forgalmát a netre.