Автор Тема: Iptables port forwarding не сработва  (Прочетена 8059 пъти)

mihailmilev

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
Iptables port forwarding не сработва
« -: Jun 20, 2007, 19:57 »
Имам два сървъра. Първият да го кръстим "външен" е със статично реално IP. На него вървят ssh, httpd, mysql. Вторият - "вътрешен" е с IP 192.168.1.102 и на него вървят същите демони. Идеята ми е: като се обърнат към външният сървър на порт 8080 да се осъщствява port forwarding към 80-ти порт на вътрешния сървър. И на идвата сървъра iptables е спрян, тоест всичко е на ACCEPT. На външния сървър пиша следните две команди:
Примерен код
echo "1" > /proc/sys/net/*/ip_forward
iptables -A PREROUTING -i xxx.xxx.xxx.xxx -p tcp --dport 8080 -j DNAT --to 192.168.1.102:80
. Те би трябвало да осъществят исканата от мен задача, но - не! Браузърът (който и да е) дава, че няма връзка. Telnet към 8080 на външния сървър също не работи. Ако някой има идея да помага. Системите са Федора 5 (външен) и Федора 7 (вътрешен). Ако имате други въпроси питайте!
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Iptables port forwarding не сработва
« Отговор #1 -: Jun 20, 2007, 20:30 »
Ох ... да взема да го напиша веднъж цялото ...

Примерен код

#!/bin/bash
ipt="/usr/local/sbin/iptables"

# Външен интерфейс на рутера
extIF="eth0"

# Външни ИП и порт на рутера
sIP="91.92.0.1"
sPort="8008"

# Вътрешни ИП и порт на машината зад рутера
pmIP="192.168.1.3"
pmPort="80"

# Протокол
pmProt="tcp"

# Portm map
$ipt -t nat -I PREROUTING -i $extIF -p $pmProt -d $sIP --dport $sPort -j DNAT --to-destination $pmIP:$pmPort

$ipt -I FORWARD -p $pmProt -s $pmIP --sport $pmPort -j ACCEPT
$ipt -I FORWARD -p $pmProt -d $pmIP --dport $pmPort -j ACCEPT




Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Iptables port forwarding не сработва
« Отговор #2 -: Jun 20, 2007, 20:30 »
От дадения пример махни "-i xxx.xxx.xxx.xxx" и го замени с "-t nat". Почети по въпроса защо  '<img'>
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

arda_kj

  • Напреднали
  • *****
  • Публикации: 631
  • Distribution: Debian Sid/Unstable; Ubuntu 12.04
  • Window Manager: Gnome/KDE
    • Профил
Iptables port forwarding не сработва
« Отговор #3 -: Jun 20, 2007, 20:34 »
Здрасти. Незнам колко ще ти помогна, ама ще пробвам. Ще те насоча, а пък ако ти помогне, помогне ако не, не.

Аз така като гледам всичко е правилно само, че се питам това нещо не се ли задаваше в таблицата

-t nat

Понеже ме мързи да чета менове и документация оставям го на теб да провериш и пробваш
Активен

Debian Sid/Unstable; Ubuntu 12.04
"За да открием истината, е нужно поне веднъж в живота си да подложим всичко на съмнение" - Р. Декарт

arda_kj

  • Напреднали
  • *****
  • Публикации: 631
  • Distribution: Debian Sid/Unstable; Ubuntu 12.04
  • Window Manager: Gnome/KDE
    • Профил
Iptables port forwarding не сработва
« Отговор #4 -: Jun 20, 2007, 20:35 »
Явно сте ме изпревари ли '<img'>
Активен

Debian Sid/Unstable; Ubuntu 12.04
"За да открием истината, е нужно поне веднъж в живота си да подложим всичко на съмнение" - Р. Декарт

mihailmilev

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
Iptables port forwarding не сработва
« Отговор #5 -: Jun 20, 2007, 22:56 »
Цитат (neter @ Юни 20 2007,21:30)
От дадения пример махни "-i xxx.xxx.xxx.xxx" и го замени с "-t nat". Почети по въпроса защо  '<img'>

Мтакам, знам защо -t nat ... Просто съм го пропуснал да го напиша. Като се замислим ако не го добавя, то iptables ще ми даде грешка веднага че не намира дадената таблица. Така че - правописна грешка... А защо да махам "-i xxx.xxx.xxx.xxx" ... все пак искам да конкретизирам точно за кой адрес става!!!

@VladSun, пуснах скрипта с леки промени, но пак не работи. Ето какво дава iptables:
Примерен код
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            192.168.1.102       tcp dpt:3306
ACCEPT     tcp  --  192.168.1.102        0.0.0.0/0           tcp spt:3306

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            xxx.xxx.xxx.xxx       tcp dpt:33306 to:192.168.1.102:3306

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       tcp  --  192.168.1.102        0.0.0.0/0           tcp spt:3306 to:xxx.xxx.xxx.xxx:33306

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Тук вече се опитвам да рутирам 33306 към 3306 както се вижда.
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Iptables port forwarding не сработва
« Отговор #6 -: Jun 20, 2007, 23:03 »
ifconfig, route -n на вътрешната и външната машина?
и пускай iptables -nxvL вместo -nL, че дава повече инфо.
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

mihailmilev

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
Iptables port forwarding не сработва
« Отговор #7 -: Jun 20, 2007, 23:20 »
Цитат (VladSun @ Юни 21 2007,00:03)
ifconfig, route -n на вътрешната и външната машина?
и пускай iptables -nxvL вместo -nL, че дава повече инфо.

Външната машина:
Примерен код
eth0      Link encap:Ethernet  HWaddr 00:50:DA:51:17:18
          inet addr:xxx.xxx.xxx.xxx  Bcast:212.104.96.255  Mask:255.255.255.0
          inet6 addr: fe80::250:daff:fe51:1718/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:434621 errors:0 dropped:0 overruns:0 frame:0
          TX packets:461630 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:53962496 (51.4 MiB)  TX bytes:120013962 (114.4 MiB)
          Interrupt:18 Base address:0x6e80

eth1      Link encap:Ethernet  HWaddr 00:C0:26:79:DD:3A
          inet addr:192.168.1.103  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2c0:26ff:fe79:dd3a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:50060 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21098 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4829129 (4.6 MiB)  TX bytes:5081791 (4.8 MiB)
          Interrupt:17 Base address:0xf00

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:332 errors:0 dropped:0 overruns:0 frame:0
          TX packets:332 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:117580 (114.8 KiB)  TX bytes:117580 (114.8 KiB)


Chain INPUT (policy ACCEPT 139 packets, 10504 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       3      156 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.102       tcp dpt:3306
       0        0 ACCEPT     tcp  --  *      *       192.168.1.102        0.0.0.0/0           tcp spt:3306

Chain OUTPUT (policy ACCEPT 122 packets, 18940 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain PREROUTING (policy ACCEPT 2 packets, 80 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       1       52 DNAT       tcp  --  eth0   *       0.0.0.0/0            xxx.xxx.xxx.xxx       tcp dpt:33306 to:192.168.1.102:3306

Chain POSTROUTING (policy ACCEPT 2 packets, 380 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       0        0 SNAT       tcp  --  *      eth0    192.168.1.102        0.0.0.0/0           tcp spt:3306 to:xxx.xxx.xxx.xxx:33306

Chain OUTPUT (policy ACCEPT 1 packets, 328 bytes)
    pkts      bytes target     prot opt in     out     source               destination


Вътрешна машина:
Примерен код

eth0      Link encap:Ethernet  HWaddr 00:C0:26:79:EC:C3
          inet addr:192.168.1.102  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2c0:26ff:fe79:ecc3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4378 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4090 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:488378 (476.9 KiB)  TX bytes:1982735 (1.8 MiB)
          Interrupt:16 Base address:0x800

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)


Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Iptables port forwarding не сработва
« Отговор #8 -: Jun 21, 2007, 00:13 »
route -n?
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

kdpetkov

  • Напреднали
  • *****
  • Публикации: 40
    • Профил
Iptables port forwarding не сработва
« Отговор #9 -: Jun 21, 2007, 07:51 »
Тези мисля, че ще ти свършат идеална работа:
http://www.hackorama.com/network/portfwd.shtml
http://www.socialhacker.com/howtos/port_forwarding.php.
Активен

Keep Walking!

mihailmilev

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
Iptables port forwarding не сработва
« Отговор #10 -: Jun 21, 2007, 12:04 »
Външна машина:
Примерен код

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
xxx.xxx.xxx.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
0.0.0.0         xxx.xxx.xxx.1    0.0.0.0         UG    0      0        0 eth0

Вътрешна машина:
Примерен код

Last login: Wed Jun 20 02:16:23 2007 from 192.168.1.103

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0


@kdpetkov: И двете страници съм ги чел, не ми помагат. Т.е. правя всичко което казват, но не работи.



Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Iptables port forwarding не сработва
« Отговор #11 -: Jun 21, 2007, 13:08 »
Сложи на вътрешната машина gateway-a й да е външната машина (т.е. 192.168.1.103). Това да е поне за 192.168.1.0/24 мрежата.



Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

mihailmilev

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
Iptables port forwarding не сработва
« Отговор #12 -: Jun 21, 2007, 13:43 »
VladSun, мерси много, това реши проблема! Имаш една бира от мен  ':p'
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Iptables port forwarding не сработва
« Отговор #13 -: Jun 21, 2007, 17:28 »
То хубаво, че тръгна, ама аз да си питам - нали стана ясно в детайли защо така трябва да бъде?

ПП: Може ли две '<img'> ? Все пак - жега е! '<img'> '<img'>



Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

teh

  • Напреднали
  • *****
  • Публикации: 56
    • Профил
Iptables port forwarding не сработва
« Отговор #14 -: Jun 22, 2007, 19:47 »
VladSun,

Примерен код
$ipt -t nat -I POSTROUTING -o $extIF -p $pmProt -s $pmIP --sport $pmPort -j SNAT --to-source $sIP:$sPort


Това правило е излишно. Както и следващите две в FORWARD веригата (поне в скрипта който си написал).
Активен