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. :-(
- 5503 megtekintés
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. :)
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Akkor annak mennie kéne,amit fent írtam.
Úgy látom rosszul jelent meg a tcpdump: tcpdump -i eth0 -nn host IPcim and port 80
- A hozzászóláshoz be kell jelentkezni
öö 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á.
- A hozzászóláshoz be kell jelentkezni
Itt egyesek mennyire képtelenek normálisan megfogalmazni mit szeretnének.
- A hozzászóláshoz be kell jelentkezni
okok. Tudom
sorry
- A hozzászóláshoz be kell jelentkezni
Nekem mindegy, én csak elcsodálkoztam rajta :)
- A hozzászóláshoz be kell jelentkezni
DE ahogy másodikban leírtam ugy már gondolom tiszta.
Esetleg van ötleted a megoldásra?
- A hozzászóláshoz be kell jelentkezni
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? :)
- A hozzászóláshoz be kell jelentkezni
igen :-)
- A hozzászóláshoz be kell jelentkezni
Bejegyzés törölve
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni