# Iptables Port forwarding[OPGELOST]

## Azerix

Hoi,

Ik heb een router(gentoo) en ik heb ook een interne PC die ik gebruik als webserver en deze PC(webserver) wil ik extern gebruiken zodat de mensen buiten af mijn webserver kunnen benaderen. Dus ik moet in mijn router port 80 forwarden naar de IP van de internet PC(webserver). Ik heb deze code in howto gevonden:

 *Quote:*   

> 
> 
>  iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to 192.168.0.1
> 
> 

 

Maar voor dat ik bovenstaande code gebruik, wil ik weten of de code juist is of niet? Ik ben niet zeker wat er wordt bedoeld met "-i eth1" in bovenstaande code. Mijn router krijgt in 

eth0 de ipadres van @home en 

eth1  192.168.0.1 dat heb ik in dhcpd.conf ingesteld.  Ik ben ook niet zo een expert in iptables:roll: 

Kan iemand mij uitlegen hoe ik dat kan best oplossen?

Alvast bedankt

AzerixLast edited by Azerix on Wed Jun 29, 2005 1:46 pm; edited 1 time in total

----------

## garo

 *Quote:*   

> 
> 
>  iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to 192.168.0.1
> 
> 

 

Dit stuurt alles wat binnenkomt op tcp poort 80 op eth1 direct naar 192.168.0.1 zonder op de andere regels te letten.

"192.168.0.1" moet dus het adres van de webserver worden

"eth1" moet "eth0" worden als "eth0" op internet is aangesloten

Als je ook de andere regels in iptables wilt evalueren voor je alles doorstuurt moet "PREROUTING" "POSTROUTING" worden

----------

## Azerix

Behalve port forwarding, moet ik de hostname en domainname ook wijzigen?

----------

## toMeloos

je zou ook een iptables-frontend als shorewall kunnen overwegen. zit in portage.

----------

## Azerix

 *Quote:*   

> 
> 
> iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to 192.168.0.14
> 
> 

 

Ik heb die code gebruikt, en het werkt niet. Ik kan mijn websever niet bereiken extern. Wel intern te bereiken aan hand van intern IP adres 192.168.0.14 . Ik heb in apache configuratie de Servername gewijzigt in IP adress van de router.

Zo ziet mijn router uit:

eth1 = aangesloten op internet adress van @home.

eth0 = is vast gesteld aan 192.168.0.1

en alle intern computers in netwerk krijgen automatish ip van de router. In dit geval PC waar webserver draait vast gesteld dat ie ip adress krijgt in eth0= 192.168.0.14.

En nu wil ik port forwarding doen van de port 80 in de router, zo dat PC webserver extern te bereiken. En dat heb ik gedaan met volgende code iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to 192.168.0.14 , maar het werkt niet.

Mijn vraag is

Moet ik name hostname, domainname en resolv.conf van PC webserver wijzigen in zelfde settings als va de router?

----------

## frenkel

Vergeet niet:

 *Quote:*   

> 
> 
> # echo 1 > /proc/sys/net/ipv4/ip_forward
> 
> 

 

----------

## Azerix

[quote="Frenkel"]Vergeet niet:

 *Quote:*   

> 
> 
> # echo 1 > /proc/sys/net/ipv4/ip_forward
> 
> 

 

En wat zord die code voor?

----------

## frenkel

Dat forwarding voor ipv4 werkt, wat jij dus eigenlijk wil.

----------

## Azerix

ik heb volgende geprobeerd:

 *Quote:*   

> 
> 
> iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to 192.168.0.14
> 
> echo 1 > /proc/sys/net/ipv4/ip_forward
> ...

 

Vervolgens router opnieuw opstarten enhet werkt nog niet  :Confused: 

----------

## garo

"echo 1 > /proc/sys/net/ipv4/ip_forward" moet na elke reboot opnieuw gedaan worden aangezien /proc een pseudofilesystem is en dus niet op de harde schijf bewaard wordt. Je kan dit commando best in "/etc/conf.d/local.start" zetten.

----------

## ParaDoXke

Het kan ook zijn dat je internetprovider deze poorten blokkeert omdat ze niet willen dat je een webserver draait. Je kan dit oplossen door je webserver op een andere poort te draaien. Dit kan je aan passen in je config van je webserver, en dan moet je gewoon een andere poort forwarden. Ikzelf gebruik poort 30080 (Gewoon 300 voor de orginele poort zetten.)

----------

## Azerix

 *Frenkel wrote:*   

> Dat forwarding voor ipv4 werkt, wat jij dus eigenlijk wil.

 

Is om ip forwarding aan te zetten, maar het werkt niet. Kan het mischien aan kernel liegen?

----------

## frenkel

Hoe controleer je of het werkt? Gewoon je externe ip intypen op een pc uit je netwerk? Dit werkt niet met alle routers (ook niet met die van mij) 

Bijv. in firefox adres: http://<extern-ip> dan krijg ik een fout, connection refused, maar als ik het op een pc op school probeer, werkt het wel, dus het is niet uit mijn interne netwerk te controleren, omdat m'n router iets gaars doet.

----------

## Azerix

 *Frenkel wrote:*   

> Hoe controleer je of het werkt? Gewoon je externe ip intypen op een pc uit je netwerk? Dit werkt niet met alle routers (ook niet met die van mij) 
> 
> Bijv. in firefox adres: http://<extern-ip> dan krijg ik een fout, connection refused, maar als ik het op een pc op school probeer, werkt het wel, dus het is niet uit mijn interne netwerk te controleren, omdat m'n router iets gaars doet.

 

Je had gelijk. Ik moest van buiten testen.

----------

