Решено: iptables и port forwarding

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

zenner
Сообщения: 58

Решено: iptables и port forwarding

Сообщение zenner »

Товарищи!
Прошу помочь решить одну простую задачу - необходимо пробросить порт SSH на другую машину, чтобы можно было коннектиться снаружи.
Машина, которая смотрит в инет имеет внешний адрес eth0 - 87.87.87.87 eth1- 192.168.0.50 eth2 - 192.168.1.5

Дистрибутив gentoo, я ядре все что можно в netfilter указать - указал, /proc/sys/net/ipv4/ip_forward - 1.
Что есть:
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Команды для проброса порта

iptables -t nat -A PREROUTING -d 87.87.87.87 -p tcp --destination-port 2222 -j DNAT --to-destination 192.168.0.2:22
iptables -t nat -A PREROUTING -d 192.168.1.5 -p tcp --destination-port 2223 -j DNAT --to-destination 192.168.0.2:22

iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
25 1164 DNAT tcp -- * * 0.0.0.0/0 87.87.87.87 tcp dpt:3389 to:192.168.0.2
1 44 DNAT tcp -- * * 0.0.0.0/0 192.168.0.50 tcp dpt:3390 to:192.168.1.226:3389
2 88 DNAT tcp -- * * 0.0.0.0/0 87.87.87.87 tcp dpt:2222 to:192.168.0.2:22
0 0 DNAT tcp -- * * 0.0.0.0/0 192.168.1.5 tcp dpt:2223 to:192.168.0.2:22

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1 44 MASQUERADE all -- * * 192.168.0.2 0.0.0.0/0

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

route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
87.87.87.87 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 87.87.87.254 0.0.0.0 UG 0 0 0 eth0

Что интересно - изнутри локалной сети, когда destination ip вутрений - то работает, если внешний - то нет. Что для ssh, что для rdp. Понимаю, что где-то надо прописать маршрутизацию - а где, незнаю :(
Gentoo x86 2.6.10 Полет нормальный
Ubuntu 8.10 Desktop - 2.6.27
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Решено: iptables и port forwarding

Сообщение DaemonTux »

Что говорит tcpdump на маршрутизаторе?
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
mixrin
Сообщения: 155
ОС: gentoo ~amd64

Re: Решено: iptables и port forwarding

Сообщение mixrin »

Вот, посмотри на ЛОРе, тоже самое делал. http://www.linux.org.ru/forum/admin/4887851
proud paludis user.
Спасибо сказали:
zenner
Сообщения: 58

Re: Решено: iptables и port forwarding

Сообщение zenner »

Добавил пару правил, по подобию как на ЛОРе.

iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere 87.87.87.87 tcp dpt:2222
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT tcp -- anywhere 192.168.0.2 tcp dpt:ssh

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Ещё убрал опции sysctl - подсмотрел тут

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0

Ничего не помогло.

До введения этих правил и после них мониторил интерфейс iptraf'ом - пакеты приходят и завистает на этапе sync
на всяк случай tcpdump

tcpdump dst port 2222
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
01:28:22.040664 IP 80.234.37.52.10274 > 87.87.87.87.2222: S 3143205539:3143205539(0) win 5840 <mss 1452>
01:28:25.037357 IP 80.234.37.52.10274 > 87.87.87.87.2222: S 3143205539:3143205539(0) win 5840 <mss 1452>
01:28:31.037651 IP 80.234.37.52.10274 > 87.87.87.87.2222: S 3143205539:3143205539(0) win 5840 <mss 1452>

Есть ещё какие-нибудь идеи?
Gentoo x86 2.6.10 Полет нормальный
Ubuntu 8.10 Desktop - 2.6.27
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Решено: iptables и port forwarding

Сообщение DaemonTux »

а на eth1 tcpdump запустите.
Vladivostok Linux User Group
Спасибо сказали:
zenner
Сообщения: 58

Re: Решено: iptables и port forwarding

Сообщение zenner »

Картина абсолютна идентична как и на внешнем интерфейсе. Чё пишет iptraf:

87.87.87.80:39770 = 2 120 S--- eth0
87.87.87.87:2222 = 0 0 ---- eth0
87.87.87.80:39770 = 2 120 S--- eth1
192.168.0.2:22 = 0 0 ---- eth1

На 0.2 ssh работает точно...]
Ещё чё то меня смущают последние 2 строчки
Gentoo x86 2.6.10 Полет нормальный
Ubuntu 8.10 Desktop - 2.6.27
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Решено: iptables и port forwarding

Сообщение DaemonTux »

zenner писал(а):
29.06.2010 09:27
Картина абсолютна идентична как и на внешнем интерфейсе. Чё пишет iptraf:

А маршруты на хосте 192.168.0.2 какие прописаны?
Vladivostok Linux User Group
Спасибо сказали:
zenner
Сообщения: 58

Re: Решено: iptables и port forwarding

Сообщение zenner »

c 192.168.0.2
route -n
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
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Gentoo x86 2.6.10 Полет нормальный
Ubuntu 8.10 Desktop - 2.6.27
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Решено: iptables и port forwarding

Сообщение DaemonTux »

zenner писал(а):
29.06.2010 14:17
c 192.168.0.2
route -n
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
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

Ну значит как я и предполагал. Пакеты приходят через шлюз 192.168.0.50 А уходят через 192.168.0.1.
посему вам нужно либо указать в качестве маршрутизатора по умолчанию 192.168.0.50. Либо прописывать дополнительный маршрут на хосте 192.168.0.2
Vladivostok Linux User Group
Спасибо сказали:
zenner
Сообщения: 58

Re: Решено: iptables и port forwarding

Сообщение zenner »

DaemonTux, большое спасибо за помощь!!! На гейте прописал дополнительный маршрут:
iptables -t nat -A POSTROUTING -m tcp -p tcp --dport 22 -d 192.168.0.2 -j SNAT --to-source 192.168.0.50
Gentoo x86 2.6.10 Полет нормальный
Ubuntu 8.10 Desktop - 2.6.27
Спасибо сказали: