[Iptables] Forwarden wil niet routen wel :?

Pagina: 1
Acties:

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:43

Erhnam

het Hardware-Hondje :]

Topicstarter
Na uren prutsen doe ik dan toch maar een post. Ik wil mijn gateway laten routen en tevens een paar poorten forwarden naar een interne server (192.168.0.2). Het script is super simpel, zet alles open en route alles:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
IPTABLES="/usr/sbin/iptables"
INTERNAL_INTERFACE="eth1"   # interface waarmee gateway aan lokale netwerk zit
EXTERNAL_INTERFACE="eth0"   # interface waarmee gateway aan het internet zit
LAN="192.168.0.0/24"        # lokale netwerk
# flush en clear alle rules en zet de tellers op 0
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t nat -Z
# set de default policies
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
## Enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
## Alles met afkomst van of bestemming lokale netwerk heeft forwarden
$IPTABLES -A POSTROUTING -t nat -o $EXTERNAL_INTERFACE -j MASQUERADE

$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE \
          -o $EXTERNAL_INTERFACE -s $LAN -d ! $LAN -j ACCEPT

$IPTABLES -A FORWARD -o $INTERNAL_INTERFACE \
          -i $EXTERNAL_INTERFACE -d $LAN -s ! $LAN \
          -m state --state RELATED,ESTABLISHED -j ACCEPT


Dit werkt gewoon.. Want anders kon ik dit bericht niet posten. Nu wil ik bv poort 80 naar binnen forwarden:

met deze regel:

code:
1
2
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A PREROUTING -t nat -p TCP --destination xxx.xxx.xxx.xxx --dport 80 -j DNAT --to 192.168.0.2


Het vreemde is dat dit niet werkt ? Het zou echt moeten werken maar er gebeurd dus niks.. Zijn er misschien extra modules die je moet laden om te forwarden ? want het zou toch zo moeten werken :?

[ Voor 5% gewijzigd door Erhnam op 23-01-2003 20:14 ]

http://www.xbmcfreak.nl/


  • imdos
  • Registratie: Maart 2000
  • Laatst online: 13-05 12:04

imdos

I use FreeNAS and Ubuntu

Je dropt de forward ... Die moet dus accept zijn afaik

pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:43

Erhnam

het Hardware-Hondje :]

Topicstarter
Okee thx het werkt dus nu maar alleen vanaf buiten af :?

Als de clients 192.168.0.x het ip of het www adres nu intikken van mijn server intikken komen ze er niet op... kan je dit omzeilen. Daarmee bedoel ik kan je het verkeer van intern naar het ip of www adres terug naar 192.168.0.2 forwarden ?

[ Voor 114% gewijzigd door Erhnam op 23-01-2003 12:48 ]

http://www.xbmcfreak.nl/


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

Buffy

Fire bad, Tree pretty

Als je met PREROUTE de destination veranderd moet je inderdaad ook een FORWARD regel hebben die van extern ip naar lan ip toestaat.

Intern redirecten kan wel maar dan moet je wel de geredirecten pakketjes ook nog source natten met het lan ip van de router anders stuurt je web-server het antwoord rechtstreeks over de lan naar je client ipv via de router zoals de client verwacht.

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)


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:43

Erhnam

het Hardware-Hondje :]

Topicstarter
Dawns_sister schreef op 23 January 2003 @ 13:06:
Als je met PREROUTE de destination veranderd moet je inderdaad ook een FORWARD regel hebben die van extern ip naar lan ip toestaat.

Intern redirecten kan wel maar dan moet je wel de geredirecten pakketjes ook nog source natten met het lan ip van de router anders stuurt je web-server het antwoord rechtstreeks over de lan naar je client ipv via de router zoals de client verwacht.
Kan je dit gewoon met Iptables doen ? Een interne dns server opzetten die extern ip naar intern voor de clients verwijst zou misschien erg omslachtig zijn.

http://www.xbmcfreak.nl/


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

Buffy

Fire bad, Tree pretty

Natuurlijk kan dat met iptables. Gewoon met een SNAT regel in de POSTROUTING chain voor lan pakketjes die naar de (lokale) ip,port van je webserver gaan.

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)


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:43

Erhnam

het Hardware-Hondje :]

Topicstarter
Sorry dat ik zo blijf door vragen. Ik probeer het nu met de volgende rules (van deze howto.. die geven precies een beschrijving wat ik nodig heb http://www.iptables.org/d...l.html#RCTEST-IPTABLESTXT

code:
1
2
3
4
5
6
HTTP_IP="192.168.0.2"
INET_IP="194.134.242.2"
LAN_IP="192.168.0.1"
iptables -t nat -A PREROUTING --dst $INET_IP -p tcp --dport 80 -j DNAT --to-source $HTTP_IP
iptables -t nat -A POSTROUTING --dst $HTTP_IP -p tcp --dport 80 -j SNAT --to-source $LAN_IP
iptables -t nat -A OUTPUT --dst $INET_IP -p tcp --dport 80 -j DNAT --to-destination $HTTP_IP


Misschien zie jij direct wat ik verkeerd doe.. ik zie het zelf niet... misschien heb jij er wat meer ervaring mee en zie je direct wat er mis gaat

[ Voor 8% gewijzigd door Erhnam op 23-01-2003 15:04 ]

http://www.xbmcfreak.nl/


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

Buffy

Fire bad, Tree pretty

Erhnam schreef op 23 January 2003 @ 15:04:
Sorry dat ik zo blijf door vragen. Ik probeer het nu met de volgende rules (van deze howto.. die geven precies een beschrijving wat ik nodig heb http://www.iptables.org/d...l.html#RCTEST-IPTABLESTXT

code:
1
2
3
4
5
6
HTTP_IP="192.168.0.2"
INET_IP="194.134.242.2"
LAN_IP="192.168.0.1"
iptables -t nat -A PREROUTING --dst $INET_IP -p tcp --dport 80 -j DNAT --to-source $HTTP_IP
iptables -t nat -A POSTROUTING --dst $HTTP_IP -p tcp --dport 80 -j SNAT --to-source $LAN_IP
iptables -t nat -A OUTPUT --dst $INET_IP -p tcp --dport 80 -j DNAT --to-destination $HTTP_IP


Misschien zie jij direct wat ik verkeerd doe.. ik zie het zelf niet... misschien heb jij er wat meer ervaring mee en zie je direct wat er mis gaat
In de eerste regel gebruik je --to-source met DNAT ipv --to-destination. Verder zul je als je FORWARD chain policy nog steeds DROP is, een regel moeten toevoegen die FORWARD toestaat van interne interface naar interne interface. Door de PREROUTING wordt het verkeer weer via de FORWARD chain weggestuurd.

De derde regel (-t nat -A OUTPUT) heb je overigens alleen nodig als je de webserver wilt bereiken vanaf je router.

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)


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:43

Erhnam

het Hardware-Hondje :]

Topicstarter
THX !!! Het werkt nu eindelijk :) hehe.. bedankt voor je hulp!!!
Voor de mensen die er misschien ooit nog een keer mee moeten stoeien:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
IPTABLES="/usr/sbin/iptables"
INTERNAL_INTERFACE="eth1"   # interface waarmee gateway aan lokale netwerk zit
EXTERNAL_INTERFACE="eth0"   # interface waarmee gateway aan het internet zit
LAN="192.168.0.0/24"        # lokale netwerk
# flush en clear alle rules en zet de tellers op 0
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t nat -Z
# set de default policies
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
## Enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
## Alles met afkomst van of bestemming lokale netwerk heeft forwarden
$IPTABLES -A POSTROUTING -t nat -o $EXTERNAL_INTERFACE -j MASQUERADE

$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE \
          -o $EXTERNAL_INTERFACE -s $LAN -d ! $LAN -j ACCEPT

$IPTABLES -A FORWARD -o $INTERNAL_INTERFACE \
          -i $EXTERNAL_INTERFACE -d $LAN -s ! $LAN \
          -m state --state RELATED,ESTABLISHED -j ACCEPT

$IPTABLES -t nat -A PREROUTING --dst 194.134.242.2 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
$IPTABLES -t nat -A POSTROUTING --dst 192.168.0.2 -p tcp --dport 80 -j SNAT --to-source 192.168.0.1
$IPTABLES -t nat -A OUTPUT --dst 194.134.242.2 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2

http://www.xbmcfreak.nl/


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

Buffy

Fire bad, Tree pretty

Nog een kleine opmerking. In de SNAT regel geef je niet aan dat het alleen moet voor pakketjes die vanaf het interne netwerk komen (lokaal source ip).
Dus ziet de web server alle http requests van de router komen, ook die van de het internet komen en dus niet hoeven te worden gesource-nat'ted.

Dus als je een op IP gebaseerde poll-server wilt opzetten kan er maar 1 stem worden uitgebracht :)


PS: In een FORWARD chain met policy ACCEPT zijn extra ACCEPT regels niet nodig, mag wel natuurlijk :).

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)


Verwijderd

Kijk eens op www.nedlinux.nl/~bart

maar daar ben je waarschijnlijk al geweest...

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:43

Erhnam

het Hardware-Hondje :]

Topicstarter
Dawns_sister schreef op 23 januari 2003 @ 21:38:
Nog een kleine opmerking. In de SNAT regel geef je niet aan dat het alleen moet voor pakketjes die vanaf het interne netwerk komen (lokaal source ip).
Dus ziet de web server alle http requests van de router komen, ook die van de het internet komen en dus niet hoeven te worden gesource-nat'ted.

Dus als je een op IP gebaseerde poll-server wilt opzetten kan er maar 1 stem worden uitgebracht :)


PS: In een FORWARD chain met policy ACCEPT zijn extra ACCEPT regels niet nodig, mag wel natuurlijk :).
Nu heb ik nog 1 vraagje. Het gaat om een MS server en het interne netwerk die ik wil beveiligen. Bezoekers kunnen nu gewoon pagina's opvragen van de webserver die in het interne netwerk draait, alleen inloggen lukt niet meer (via asp met cookies).

Zou dat bovenste verhaal daar mee te maken kunnen hebben? En zo ja hoe los je dit op?

http://www.xbmcfreak.nl/


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

Buffy

Fire bad, Tree pretty

Geen idee hoe het inloggen via asp werkt, maar als het op basis van uniek ip werkt dan wel natuurlijk.
Oplossing: gewoon bij de SNAT regel opgeven dat het alleen geldt voor de pakketen die van het locale netwerk komen. Dus '-s 192.168.0.0./24' erbij.

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)

Pagina: 1