Toon posts:

[iptables] Hoe port forwarding?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben al bijna de hele dag bezig om port forwarding met iptables aan de praat te krijgen, maar het lukt me op de één of andere manier gewoon niet. Even een overzichtje van de opbouw van m'n netwerk:

code:
1
2
3
4
5
6
7
8
9
10
                                       +-------------+
                                 +-----| 192.168.0.2 |
                                 |     +-------------+
                                 |     +-------------+
                                 +-----| 192.168.0.4 |
+-------+   +-------------+      |     +-------------+
| Kabel |   |    Linux    |      | 
|       |---| 192.168.0.1 |------+
| Modem |   |    Server   |
+-------+   +-------------+


Nu is het dus de bedoeling dat verkeer wat binnenkomt op poort 3389 op m'n Linux server door gegeven wordt aan 192.168.0.2 op dezelfde poort. Om maar even volledig te zijn voeg ik de volledige output van iptables -L -v en iptables -t nat -L -v er maar even bij.

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
root@Linux:/home/jmezach/updee-2.0# iptables -L -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere           
  118  8339 ACCEPT     all  --  eth0   any     192.168.0.0/24       anywhere           
    0     0 drop-and-log-it  all  --  eth1   any     192.168.0.0/24       anywhere           
   42  4316 ACCEPT     all  --  eth1   any     anywhere             cc7304-b.deven1.ov.home.nlstate RELATED,ESTABLISHED 
    0     0 ACCEPT     tcp  --  eth0   any     anywhere             anywhere           tcp spt:bootpc dpt:bootps 
    0     0 ACCEPT     udp  --  eth0   any     anywhere             anywhere           udp spt:bootpc dpt:bootps 
    0     0 ACCEPT     tcp  --  eth1   any     anywhere             cc7304-b.deven1.ov.home.nlstate NEW,RELATED,ESTABLISHED tcp dpt:http 
    0     0 ACCEPT     tcp  --  eth1   any     anywhere             cc7304-b.deven1.ov.home.nlstate NEW,RELATED,ESTABLISHED tcp dpt:ftp 
    0     0 ACCEPT     tcp  --  eth1   any     anywhere             cc7304-b.deven1.ov.home.nlstate NEW,RELATED,ESTABLISHED tcp dpt:7777 
  346 30334 drop-and-log-it  all  --  any    any     anywhere             anywhere           

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 6241 5819K ACCEPT     all  --  eth1   eth0    anywhere             anywhere           state RELATED,ESTABLISHED 
 5053  545K ACCEPT     all  --  eth0   eth1    anywhere             anywhere           
    0     0 ACCEPT     tcp  --  eth1   any     anywhere             anywhere           tcp dpt:3389 
    0     0 drop-and-log-it  all  --  any    any     anywhere             anywhere           

Chain OUTPUT (policy DROP 7 packets, 2616 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  any    lo      anywhere             anywhere           
  111 13777 ACCEPT     all  --  any    eth0    192.168.0.0/24       192.168.0.0/24     
    0     0 drop-and-log-it  all  --  any    eth1    anywhere             192.168.0.0/24     
   44  4567 ACCEPT     all  --  any    eth1    cc7304-b.deven1.ov.home.nl  anywhere           
    0     0 ACCEPT     tcp  --  any    eth0    192.168.0.0/24       255.255.255.255    tcp spt:bootps dpt:bootpc 
    0     0 ACCEPT     udp  --  any    eth0    192.168.0.0/24       255.255.255.255    udp spt:bootps dpt:bootpc 
    0     0 drop-and-log-it  all  --  any    any     anywhere             anywhere           

Chain drop-and-log-it (5 references)
 pkts bytes target     prot opt in     out     source               destination         
  346 30334 LOG        all  --  any    any     anywhere             anywhere           LOG level info 
  346 30334 DROP       all  --  any    any     anywhere             anywhere           
root@Linux:/home/jmezach/updee-2.0# iptables -t nat -L -v
Chain PREROUTING (policy ACCEPT 376K packets, 28M bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DNAT       tcp  --  any    any     anywhere             cc7304-b.deven1.ov.home.nltcp dpt:3389 to:192.168.0.2:3389 

Chain POSTROUTING (policy ACCEPT 41 packets, 4859 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  408 19854 SNAT       all  --  any    eth1    anywhere             anywhere           to:217.120.225.158 
    0     0 ACCEPT     tcp  --  any    any     anywhere             cc7304-b.deven1.ov.home.nltcp dpt:3389 

Chain OUTPUT (policy ACCEPT 1012 packets, 79935 bytes)
 pkts bytes target     prot opt in     out     source               destination         
root@Linux:/home/jmezach/updee-2.0#

(excuses voor 't verneuken van de layout ;))

Het probleem is nu echter dat er niemand een verbinding kan maken op die poort. Ik heb natuurlijk gecontroleerd of die poort op 192.168.0.2 wel open staat en dat staat ie. Het ging met ipchains vrij eenvoudig, maar met iptables kom ik er niet meer uit. Iemand die me hier mee kan helpen?

  • joop3
  • Registratie: April 2001
  • Laatst online: 17-01 16:52

joop3

 

./iptables -A PREROUTING -t nat -p tcp -d <extern ip> --dport <poortnummer> -j DNAT --to <lokaal ip>:<poortnummer>

Verwijderd

Topicstarter
Ik heb dat regeltje geprobeerd, maar het werkt nog niet echt. Ik zie nu het volgende in m'n syslog staan:

IN=eth1 OUT=eth0 SRC=145.76.99.13 DST=192.168.0.2 LEN=48 TOS=0x00 PREC=0x00 TTL=54 ID=64639 DF PROTO=TCP SPT=32917 DPT=80 WINDOW=24820 RES=0x00 SYN URGP=0
IN=eth1 OUT=eth0 SRC=145.76.99.13 DST=192.168.0.2 LEN=48 TOS=0x00 PREC=0x00 TTL=54 ID=64641 DF PROTO=TCP SPT=32917 DPT=80 WINDOW=24820 RES=0x00 SYN URGP=0

Zo te zien blokkeert de firewall het op de één of andere manier toch.

  • TA2
  • Registratie: Februari 2002
  • Laatst online: 30-09-2022

TA2

Als het goed heb je ergens een bestandje voor ipv4 forwarding.
In dit bestandje moet een "1" staan om alles te forwarden.
Met "locate -i ipv4 |grep -i forward" komt dat bestandje wel boven water.
Het staat iig in de proc map. (Ik zit nu op mn werk dus kan het ff niet voor je opzoeken.)
Ook zul je je routes moeten nakijken, mischien dat daarin iets niet goed staat.

Verwijderd

Topicstarter
TA2 schreef op 23 december 2002 @ 20:44:
Als het goed heb je ergens een bestandje voor ipv4 forwarding.
In dit bestandje moet een "1" staan om alles te forwarden.
Met "locate -i ipv4 |grep -i forward" komt dat bestandje wel boven water.
Het staat iig in de proc map. (Ik zit nu op mn werk dus kan het ff niet voor je opzoeken.)
Ook zul je je routes moeten nakijken, mischien dat daarin iets niet goed staat.
Je bedoeld zeker:

code:
1
/proc/sys/net/ipv4/ip_forward


Er staat in m'n firewall scriptje het volgende:

code:
1
echo "1" > /proc/sys/net/ipv4/ip_forward


Dus volgens mij zit dat wel goed. Toch bedankt voor de tip :).

  • mpol
  • Registratie: September 2002
  • Laatst online: 19-01 18:45

mpol

root@localhost

Verwijderd schreef op 23 December 2002 @ 20:34:
IN=eth1 OUT=eth0 SRC=145.76.99.13 DST=192.168.0.2 LEN=48 TOS=0x00 PREC=0x00 TTL=54 ID=64639 DF PROTO=TCP SPT=32917 DPT=80 WINDOW=24820 RES=0x00 SYN URGP=0
IN=eth1 OUT=eth0 SRC=145.76.99.13 DST=192.168.0.2 LEN=48 TOS=0x00 PREC=0x00 TTL=54 ID=64641 DF PROTO=TCP SPT=32917 DPT=80 WINDOW=24820 RES=0x00 SYN URGP=0
De Destination port is hier 80, dus dat zijn niet de pakketjes die jij wilt portforwarden.
Ik zie zo niet wat er verkeerd is. Je maakt een prerouting rule aan met de echte portforward, en een forward rule waarin je die accepteerd. Ook maak je de forward chain statefull. Dat zou genoeg moeten zijn.
Het testen doe je wel vanaf een machine die remote is, dus niet van je lokale netwerk? Wat geeft een telnet op die poort. Kun je de servermachine ook extra laten loggen, en kijken of hij ook connect? Wat voor foutmelding krijg je van die telnet connectie?

https://timelord.nl


Verwijderd

Topicstarter
Okeej, 'k heb nogal een stomme fout gemaakt. Ik heb de regeltjes op de verkeerde plaats neer gezet. Toch beter lezen in 't vervolg ;). Bedankt voor diegenen die me geholpen hebben :).

Nog wel een ander vraagje trouwens. Als ik nu in m'n browser het externe IP van m'n server type (dus het IP voor de buitenwereld) dan krijg ik niks. Het maffe is dat het toen ik nog ipchains had wel kon. Iemand hier ideeën over?

[ Voor 41% gewijzigd door Verwijderd op 23-12-2002 21:21 ]


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Kun je meen ik pre-routing doen, externe IP laten verwijzen naar je interne IP (zo doet ipchains dat iig)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device

Pagina: 1