[portforwarding] interne forwarding gaat mis

Pagina: 1
Acties:

  • Q
  • Registratie: November 1999
  • Laatst online: 20:11

Q

Au Contraire Mon Capitan!

Topicstarter
Hoi,

Ik heb een thuisnetwerk (10.10.10.x) en een linuxbox als gateway met intern ip en extern ip. Daarnaast heb ik nog een 2e linuxbox waar ik een site op host. Deze 2e box zit achter de gw. Via externip:3000 is deze site te bereiken. Daarvoor gebruik ik de volgende portforwarding rule:

iptables -A PREROUTING -t nat -p tcp -d [externip] --dport 3000 -j DNAT --to 10.10.10.4:80

Van buiten af gaat dit prima. Vanaf mijn eigen pc, een pc met een 10.10.10.x adres kan ik de machine niet via [externip:3000] bereiken. Portforwarding lijkt dan niet te werken. Ik weet niet hoe ik dit op moet lossen ondanks dat

http://www.e-infomax.com/ipmasq/ er wel iets over te vertellen heeft, maar daar snap ik niet veel van.

Iemand een idee?

  • Xandrios
  • Registratie: Februari 2001
  • Laatst online: 20:56
waarom doe je niet gewoon http://10.10.10.4:80/ :?

Voor jou intern zal dat dan wel werken :)

  • Q
  • Registratie: November 1999
  • Laatst online: 20:11

Q

Au Contraire Mon Capitan!

Topicstarter
Ik heb het foto webalbum / archiveringststeem 'gallery' http://gallery.sf.net er op gezet om mijn foto's te gaan archiveren. Zie ook het gadgetforum.

Probleem is dat ik in de config van de site moet aangeven wat de 'echte' naam is van de site. dus www.foo.bar/gallery

echter, dat is het adres van buiten af via mijn externe ip. Als foo.bar hardcoded in de config staat dan werkt 10.10.10.4 dis niet meer, omdat de plaatjes etc naar foo.bar verwijzen. En dat laatste werkt dus nu juist niet, maar wel van buitenaf.

  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

[quote]
[b]Op maandag 17 juni 2002 22:28 schreef
het volgende:[/b]
Hoi,

[...]

Van buiten af gaat dit prima. Vanaf mijn eigen pc, een pc met een 10.10.10.x adres kan ik de machine niet via [externip:3000] bereiken. Portforwarding lijkt dan niet te werken. Ik weet niet hoe ik dit op moet lossen ondanks dat

http://www.e-infomax.com/ipmasq/ er wel iets over te vertellen heeft, maar daar snap ik niet veel van.

Iemand een idee?
Die link van je geeft de oplossing.
In de IPmasquerading HOWTO staat:
6.7.1. 2.4.x PORTFWD'ing: Using IPTABLE's PREROUTING option for 2.4.x kernels

[...]

In the past, if users PORTFWed port 80 on their EXTERNAL IP to some internal machine, only machines on the Internet would work properly. If you tried to do this from an internal machine, it would fail. Fortunately, there is a workaround for 2.2.x and 2.0.x kernels using the REDIR tool. Fortunately, this is NOT required anymore for the 2.4.x kernels. To fix this, add a line like the following ABOVE the "Catch all" FORWARDing rule in the rc.firewall file. This example will REDIRECT internal WWW traffic to the 192.168.0.2 internal machine (please change this IP address to reflect your configuration):

$IPTABLES -t nat -A PREROUTING -d $EXTIP -p tcp --dport 80 \
-m state --state NEW,ESTABLISHED,RELATED -j DNAT --to 192.168.0.2
Dus je moet ook de rule:
iptables -A PREROUTING -t nat -p tcp -d [externip] --dport 3000 -m state --state NEW,ESTABLISHED,RELATED -j DNAT --to 10.10.10.4:80
voor je FORWARD rules opnemen.

Begrijp eigenlijk niet waarom dit zou helpen en waarom het voor de FORWARD rules moet aangezien het verschillende tables betreft (en dus ook chains).

Maar probeer het eens zou ik zeggen.

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


  • Q
  • Registratie: November 1999
  • Laatst online: 20:11

Q

Au Contraire Mon Capitan!

Topicstarter
Ik heb die exacte regel opgenomen en even aangepast aan de juiste waarden (externip) naar t werkt niet.

Iemand nog een idee? Ik snap eigenlijk niet waarom het intern niet werkt en extern wel.

  • djfisjtik
  • Registratie: Januari 2002
  • Laatst online: 20-12-2022
Als jij met een interne pc naar de router toe gaat met de geforwarde port, dan kom je uiteindelijk bij je webserver. Maar je webserver ziet dat de connectie vanaf je interne pc komt. Dus de webserver die gaat ineens met je interne pc praten, en dat verwacht ie niet.

Als je het zo bekijkt, kan je proberen om intern te masqen. Dus er voor te zorgen dat als een interne pc naar die port gaat, dat je ten eerste forward, maar dat je hem ook rewrite, als komende van de router. Ik heb het volgens mij wel een keer gedaan om te kijken of dat ging werken. Ik weet niet of het erg netjes is >:) >:) >:) >:)

  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

Op dinsdag 18 juni 2002 00:43 schreef djfisjtik het volgende:
Als jij met een interne pc naar de router toe gaat met de geforwarde port, dan kom je uiteindelijk bij je webserver. Maar je webserver ziet dat de connectie vanaf je interne pc komt. Dus de webserver die gaat ineens met je interne pc praten, en dat verwacht ie niet.

Als je het zo bekijkt, kan je proberen om intern te masqen. Dus er voor te zorgen dat als een interne pc naar die port gaat, dat je ten eerste forward, maar dat je hem ook rewrite, als komende van de router. Ik heb het volgens mij wel een keer gedaan om te kijken of dat ging werken. Ik weet niet of het erg netjes is >:) >:) >:) >:)
Hmmm, had ik niet bij stil gestaan :)

Wat ik dan helemaal niet begrijp is dat de HOWTO zegt dat je die '-m state' optie moet toevoegen.

Aangezien je redirect naar een intern netwerk adres komt het antwoord helemaal niet meer over de router maar gaat rechtstreeks (via hub/switch) naar de client pc.

De rule :
code:
1
2
iptables -A POSTROUTING -t nat -p tcp -d 10.10.10.4
 --dport 80 -s 10.10.10.0/24 -j SNAT --to [externip]

zou het dus moeten oplossen.

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


  • djfisjtik
  • Registratie: Januari 2002
  • Laatst online: 20-12-2022
Na wat proberen is het me zo gelukt:
code:
1
iptables -t nat -A POSTROUTING -p tcp -s ip_interne_httpclient_pc1 -d ip_webserver --dport 80 -j SNAT --to ip_router

voor ip_router werkt in mijn geval elk willekeurig ip dat de router gebruikt. Op de webserver komen de request dus schijnbaar vanaf ip_router, en niet ip_interne_httpclient_pc1.

Inplaats van -d ip_webserver probeerde ik in eerste instantie -d ip_router. Maar zo werkte het niet.

  • Q
  • Registratie: November 1999
  • Laatst online: 20:11

Q

Au Contraire Mon Capitan!

Topicstarter
djfisjtik en Dawns_sister, jullie zijn allebei geweldig !!! ;)

Het werkt. Heel mooi. mijn dank is oneindig. (ik weet het, daar koop je geen audi TT van maar toch).
Pagina: 1