Форум программистов, компьютерный форум, киберфорум
Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Эксперт по компьютерным сетямЭксперт NIX
12230 / 7097 / 727
Регистрация: 09.09.2009
Сообщений: 27,697
1

Portforwarding - все мозги высушил

27.08.2012, 23:28. Показов 978. Ответов 13
Метки нет (Все метки)

Убил практически весь день, не могу понять, что не так сделал.
Есть комп с убунтой, в нем две сетевые платы
К первой подключен интернет (WAN)
Код
eth0      Link encap:Ethernet  HWaddr 00:30:77:5f:69:57
          inet addr:192.168.1.15  Bcast:192.168.1.255  Mask:255.255.255.0
Вторая - локальная сеть (LAN)
Код
eth1      Link encap:Ethernet  HWaddr 00:19:55:87:29:c6
          inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0
Задача - к eth1 подключен "локальный" сервер, с адресом 192.168.100.10, слушающий на порту 3333, и к нему надо дать доступ ИЗВНЕ (из сети 192.168.1.х - WAN).

Проверяю видимость локального сервера с самой убунты - доступ к серверу есть:
Код
# nmap -P0 -p 3333 192.168.100.10

Starting Nmap 5.21 ( http://nmap.org ) at 2012-08-27 22:11 EEST
Nmap scan report for 192.168.100.10
Host is up (0.00027s latency).
PORT     STATE SERVICE
3333/tcp open  dec-notes
MAC Address: 00:90:4C:C0:00:02 (Epigram)
Хорошо, начинаю настраивать.
Проверяю - портфорвардинг в ядре включен:
Код
# cat /proc/sys/net/ipv4/ip_forward
1
Сбрасываю полностью файервол:
Код
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Проверяю - файервол "девственно чист":
Код
# iptables-save
# Generated by iptables-save v1.4.12 on Mon Aug 27 22:15:29 2012
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [1:60]
:POSTROUTING ACCEPT [1:60]
COMMIT
# Completed on Mon Aug 27 22:15:29 2012
# Generated by iptables-save v1.4.12 on Mon Aug 27 22:15:29 2012
*filter
:INPUT ACCEPT [128:8013]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [138:8813]
COMMIT
# Completed on Mon Aug 27 22:15:29 2012
# Generated by iptables-save v1.4.12 on Mon Aug 27 22:15:29 2012
*mangle
:PREROUTING ACCEPT [130:8093]
:INPUT ACCEPT [130:8093]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [147:9801]
:POSTROUTING ACCEPT [147:9801]
COMMIT
# Completed on Mon Aug 27 22:15:29 2012
ОК. Для начала разрешаю принимать запросы на 3333 порту.
Извне:
Код
iptables -A FORWARD -i eth0 -p tcp --dport 3333 -j ACCEPT
Изнутри:
Код
iptables -A FORWARD -i eth1 -p tcp --dport 3333 -j ACCEPT
Включаю переадресацию желаемого (с порта 3333 на адрес 192.168.100.10:
Код
iptables -t nat -A PREROUTING -p tcp -i eth0  --dport 3333 -j DNAT --to-destination 192.168.100.10:3333
Проверяем текущее состояние фаейрвола:
Код
~# iptables-save
# Generated by iptables-save v1.4.12 on Mon Aug 27 22:22:00 2012
*nat
:PREROUTING ACCEPT [7:1135]
:INPUT ACCEPT [7:1135]
:OUTPUT ACCEPT [164:9838]
:POSTROUTING ACCEPT [164:9838]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 3333 -j DNAT --to-destination 192.168.100.10:3333
COMMIT
# Completed on Mon Aug 27 22:22:00 2012
# Generated by iptables-save v1.4.12 on Mon Aug 27 22:22:00 2012
*filter
:INPUT ACCEPT [11333:949530]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [11437:925583]
-A FORWARD -i eth0 -p tcp -m tcp --dport 3333 -j ACCEPT
-A FORWARD -i eth1 -p tcp -m tcp --dport 3333 -j ACCEPT
COMMIT
# Completed on Mon Aug 27 22:22:00 2012
# Generated by iptables-save v1.4.12 on Mon Aug 27 22:22:00 2012
*mangle
:PREROUTING ACCEPT [23409:2060900]
:INPUT ACCEPT [23409:2060900]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [23646:2012132]
:POSTROUTING ACCEPT [23646:2012132]
COMMIT
# Completed on Mon Aug 27 22:22:00 2012
А в результате - ОБЛОМ: при проверке с другого компа, подключенного в сети 192.168.1.х, NMAP-ом на адрес 192.168.1.15 и порт 3333 показывает его состояние filtered. В итоге, попасть на "локальный сервер" я не могу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.08.2012, 23:28
Ответы с готовыми решениями:

Регулярное выражение - все мозги сломал
Читал доку уже несколько раз - НЕ ПОНИМАЮ! Нужно, чтобы в строке последовательности из ДВУХ...

Нужен вирусняк, уничтожающий все мозги.
Вкрадце так. Нужен вирусняк или файл, который при нажатии определенных клавиш уничтожает все...

помогите плз с DLLImport все мозги сломал(
упорно не работает элементарная программа. using System; using System.Collections.Generic;...

Не проходит portforwarding tplink TL-WR1043ND
Здравствуйте, пытался поставить на компьютере контроль температуры, за которым мог бы следить...

13
Почетный модератор
7385 / 2629 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.08.2012, 00:00 2
С iptables очень давно не имел дела. А можно вывод "iptables -L"?
Цепочка FORWARD вроде уже сброшена в аксепт, для чистоты эксперимента, в нее правила, имхо, можно не добавлять.
А nmap точно по tcp запускается в данном случае, не icmp? Что будет, если из правила убрать проверку -m?

Добавлено через 3 минуты
У нетфильтра еще можно правила добавить, что-то типа -j LOG или что-то похожее, не помню уже точно, что поможет увидеть, как матчатся пакеты приходящие в логах
0
Эксперт по компьютерным сетямЭксперт NIX
12230 / 7097 / 727
Регистрация: 09.09.2009
Сообщений: 27,697
28.08.2012, 00:12  [ТС] 3
Цитата Сообщение от Vourhey Посмотреть сообщение
А можно вывод "iptables -L"?
да легко
Код
# iptables -L -v -n
Chain INPUT (policy ACCEPT 107K packets, 11M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 3 packets, 228 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0            tcp spt:3333
   20  1008 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3333

Chain OUTPUT (policy ACCEPT 108K packets, 9481K bytes)
 pkts bytes target     prot opt in     out     source               destination
можно и цепь nat
Код
# iptables -L -v -n -t nat
Chain PREROUTING (policy ACCEPT 120 packets, 18708 bytes)
 pkts bytes target     prot opt in     out     source               destination
   10   488 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3333 to:192.168.100.10:3333

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

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

Chain POSTROUTING (policy ACCEPT 2628 packets, 158K bytes)
 pkts bytes target     prot opt in     out     source               destination
Цитата Сообщение от Vourhey Посмотреть сообщение
А nmap точно по tcp запускается в данном случае, не icmp?
хз.
Цитата Сообщение от Vourhey Посмотреть сообщение
Что будет, если из правила убрать проверку -m?
в используемой мной команде ее нет:
Цитата Сообщение от Dmitry Посмотреть сообщение
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 3333 -j DNAT --to-destination 192.168.100.10:3333
похоже, ее добавляет сам iptables
0
Почетный модератор
7385 / 2629 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.08.2012, 00:20 4
Я б тогда добавил рулы для лога. А еще сделал бы форвардинг для всех протоколов (вдруг нмап по icmp пытается достучаться), и всех интефейсов (звездочка? не помню уже). Вдруг попрет
Цитата Сообщение от Dmitry Посмотреть сообщение
похоже, ее добавляет сам iptables
Да, наверное
0
4855 / 3276 / 467
Регистрация: 10.12.2008
Сообщений: 10,570
28.08.2012, 02:06 5
Цитата Сообщение от Dmitry Посмотреть сообщение
Изнутри:
там у тебя --dport вместо --sport
0
Эксперт по компьютерным сетямЭксперт NIX
12230 / 7097 / 727
Регистрация: 09.09.2009
Сообщений: 27,697
28.08.2012, 02:13  [ТС] 6
Цитата Сообщение от accept Посмотреть сообщение
там у тебя --dport вместо --sport
это я заметил, когда перечитывал созданое сообщение
изменение на sport не дало абсолютно ничего.
по большому счету правил этих перепробовал море
в том числе были и такие, где порты для пакетов из LAN-подсети не указывались вовсе..\
результат был тотже, т, е. его не было
0
4855 / 3276 / 467
Регистрация: 10.12.2008
Сообщений: 10,570
28.08.2012, 03:34 7
не надо nmap'ом
через telnet

Добавлено через 29 минут
Bash
1
iptables -t nat -A PREROUTING -p tcp --dport 123 -j DNAT --to-destination 127.0.0.1:25
такая не работает

Bash
1
iptables -t nat -A OUTPUT -p tcp --dport 123 -j DNAT --to-destination 127.0.0.1:25
такая работает
0
Эксперт по компьютерным сетямЭксперт NIX
12230 / 7097 / 727
Регистрация: 09.09.2009
Сообщений: 27,697
28.08.2012, 15:01  [ТС] 8
Цитата Сообщение от accept Посмотреть сообщение
не надо nmap'ом
через telnet
проверял, толку никакого (точнее - результат один и тот же)

Цитата Сообщение от accept Посмотреть сообщение
такая не работает
................
такая работает
Ну тут уж точно не в тему...
в вашем случае - переадресацимя в локалхост.
в моем - на другой комп

Дело в том. что проверка показывает, что на порт 3333 устройства 192.168.100.10 пакеты приходят
И с него ответы отправляются.
Только вот куда они деваются - я понять пока не могу...

Добавлено через 1 час 48 минут
итого, пользуясь маном, а также поглядывая на картинку прохождения пакетов, выложенную (мной же ) в этом сообщении, продолжаю мягко говоря "ничего не понимать".
Прикрутил логирование. В купе с остальными текущими правилами это выгладит примерно так:
Код
/sbin/iptables -A FORWARD -p tcp --dport 3333 -j LOG --log-level debug --log-prefix "TO-PORT-3333  "
/sbin/iptables -A PREROUTING -t nat -p tcp -j LOG --log-level debug --log-prefix "PRE-ROUTE  "
/sbin/iptables -A POSTROUTING -t nat -p tcp -j LOG --log-level debug --log-prefix "POST-ROUTE  "
/sbin/iptables -A FORWARD -p tcp --sport 3333 -j LOG --log-level debug --log-prefix "FROM-PORT-3333  "



/sbin/iptables -A FORWARD -i eth0 -p tcp -d 192.168.100.10 -j ACCEPT

/sbin/iptables -A FORWARD -i eth1 -p tcp  -j ACCEPT

/sbin/iptables -A PREROUTING -t nat -p tcp --dport 3333 -i eth0 -j DNAT --to 192.168.100.10:3333

/sbin/iptables -A POSTROUTING -t nat -o eth0  -s 192.168.100.10  -j MASQUERADE
Четыре первые строки - это просто ловля пакетов в лог.
Потом два правила, принимающих в FORWARD пакеты (уже практически безо всяких условий)..
Затем правило, переадресующее запросы на 3333 порту в адрес и порт "локального сервера".
И последнее правило - маскарадинг. (Просто вот тут в коментариях вычитал, что типа без него работать не будет)..

Ну и...
Вот кусок лога:
Код
Aug 28 13:12:07 hotspot kernel: [11941.353596] PRE-ROUTE  IN=eth0 OUT= MAC=00:30:67:5f:69:57:0c:b7:0d:a2:47:8c:08:00 SRC=192.168.1.100 DST=192.168.1.15 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=29690 DF PROTO=TCP SPT=4334 DPT=3333 WINDOW=65535 RES=0x00 SYN URGP=0
Aug 28 13:12:07 hotspot kernel: [11941.353685] TO-PORT-3333  IN=eth0 OUT=eth1 MAC=00:30:67:5f:69:57:0c:b7:0d:a2:47:8c:08:00 SRC=192.168.1.100 DST=192.168.100.10 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=29690 DF PROTO=TCP SPT=4334 DPT=3333 WINDOW=65535 RES=0x00 SYN URGP=0
Aug 28 13:12:07 hotspot kernel: [11941.353740] POST-ROUTE  IN= OUT=eth1 SRC=192.168.1.100 DST=192.168.100.10 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=29690 DF PROTO=TCP SPT=4334 DPT=3333 WINDOW=65535 RES=0x00 SYN URGP=0
Aug 28 13:12:10 hotspot kernel: [11944.274253] TO-PORT-3333  IN=eth0 OUT=eth1 MAC=00:30:67:5f:69:57:0c:b7:0d:a2:47:8c:08:00 SRC=192.168.1.100 DST=192.168.100.10 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=29694 DF PROTO=TCP SPT=4334 DPT=3333 WINDOW=65535 RES=0x00 SYN URGP=0
Aug 28 13:12:16 hotspot kernel: [11950.309089] TO-PORT-3333  IN=eth0 OUT=eth1 MAC=00:30:67:5f:69:57:0c:b7:0d:a2:47:8c:08:00 SRC=192.168.1.100 DST=192.168.100.10 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=29714 DF PROTO=TCP SPT=4334 DPT=3333 WINDOW=65535 RES=0x00 SYN URGP=0
Aug 28 13:12:28 hotspot kernel: [11962.344318] PRE-ROUTE  IN=eth0 OUT= MAC=00:30:67:5f:69:57:0c:b7:0d:a2:47:8c:08:00 SRC=192.168.1.100 DST=192.168.1.15 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=29807 DF PROTO=TCP SPT=4342 DPT=3333 WINDOW=65535 RES=0x00 SYN URGP=0
Aug 28 13:12:28 hotspot kernel: [11962.344407] TO-PORT-3333  IN=eth0 OUT=eth1 MAC=00:30:67:5f:69:57:0c:b7:0d:a2:47:8c:08:00 SRC=192.168.1.100 DST=192.168.100.10 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=29807 DF PROTO=TCP SPT=4342 DPT=3333 WINDOW=65535 RES=0x00 SYN URGP=0
Aug 28 13:12:28 hotspot kernel: [11962.344462] POST-ROUTE  IN= OUT=eth1 SRC=192.168.1.100 DST=192.168.100.10 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=29807 DF PROTO=TCP SPT=4342 DPT=3333 WINDOW=65535 RES=0x00 SYN URGP=0
Aug 28 13:12:31 hotspot kernel: [11965.297796] TO-PORT-3333  IN=eth0 OUT=eth1 MAC=00:30:67:5f:69:57:0c:b7:0d:a2:47:8c:08:00 SRC=192.168.1.100 DST=192.168.100.10 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=29819 DF PROTO=TCP SPT=4342 DPT=3333 WINDOW=65535 RES=0x00 SYN URGP=0
все что я вижу в логе - пакет пришел в PREROUTING (строки с "суффиксом" PRE-ROUTE)
его направляют на адрес 192.168.100.10 (строки с маркером TO-PORT-3333)
и пакет уходит на "локальный сервер" (строки с маркером POST-ROUTE)

а в ответ не видать ничего...
0
Почетный модератор
7385 / 2629 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.08.2012, 15:11 9
Цитата Сообщение от Dmitry Посмотреть сообщение
И с него ответы отправляются.
А по какому маршруту? Какой там дестинейшн стоит в ответе?
0
Эксперт по компьютерным сетямЭксперт NIX
12230 / 7097 / 727
Регистрация: 09.09.2009
Сообщений: 27,697
28.08.2012, 15:15  [ТС] 10
судя по строкам из лога, DST=192.168.100.10 (это как раз адрес "локального сервера")
Цитата Сообщение от Dmitry Посмотреть сообщение
TO-PORT-3333 IN=eth0 OUT=eth1 SRC=192.168.1.100 DST=192.168.100.10 LEN=52 TOS=0x00 PREC=0x00 TTL=127 ID=29819 DF PROTO=TCP SPT=4342 DPT=3333 WINDOW=65535 RES=0x00 SYN URGP=
0
Почетный модератор
7385 / 2629 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.08.2012, 15:50 11
Судя по логу, это вроде и есть пинг от нмапа. Я имел ввиду, посмотреть, на какой адрес шлет ответ сам сервер 100.10.
А если вместо маскарадинга попробовать что-нибудь типа
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.10 -j SNAT --to-source 192.168.1.15
0
Эксперт по компьютерным сетямЭксперт NIX
12230 / 7097 / 727
Регистрация: 09.09.2009
Сообщений: 27,697
28.08.2012, 16:19  [ТС] 12
Цитата Сообщение от Vourhey Посмотреть сообщение
это вроде и есть пинг от нмапа.
нет, сегодняшний лог я проверял только браузером, это не нмап.
Цитата Сообщение от Vourhey Посмотреть сообщение
посмотреть, на какой адрес шлет ответ сам сервер 100.10.
дело в том, что такого количества "серверов" у меня дома нет. Поэтому, в качестве "локального сервера" выступает роутер и его WAN интерфейс, на котором открыта вебстраница администрирования на порту 3333. Как в нем смотреть - куда и что он шлет, я хз...
0
Почетный модератор
7385 / 2629 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.08.2012, 16:47 13
Цитата Сообщение от Dmitry Посмотреть сообщение
это не нмап.

Не по теме:

Я имел ввиду не именно нмап (кто их шлет), а что пакеты со внешнего хоста )))



Добавлено через 1 минуту
Dmitry, wireshark'ом, может?
0
Эксперт по компьютерным сетямЭксперт NIX
12230 / 7097 / 727
Регистрация: 09.09.2009
Сообщений: 27,697
28.08.2012, 17:16  [ТС] 14

Не по теме:

Цитата Сообщение от Vourhey Посмотреть сообщение
Dmitry, wireshark'ом, может?
сейчас посталю...

Вообще, где-то нагуглил что человек вот так тоже долбался с бубунтой (там правда упоминалась 11.10, а у меня 12.04), а потом плюнул на все, поставил дебиан 6-й, и все те же действия привели к желаемому результату. Вот что блин, могли эти бубунтовские кудесники туда навстромлять, что оно не пашет, ума не приложу...

Да и сам в эту катавасию встрял по причине, что у меня в одном из старых мануалов описаны правила для настройки портфорвардинга. Я когда-то года 2 назад их проверял и все прекрасно работало. Но тогда это все было для написано бубунты 9.04. А вот сейчас мне пишут - правила из твоей цидульки - фигня и не работают. Вот и сел разбираться "по новой", а тут просто бред какой-то.....



Добавлено через 18 минут
Цитата Сообщение от Vourhey Посмотреть сообщение
wireshark'ом, может?
показывает только активность в направлении "локального сервера". Ответных пакетов нет никаких
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.08.2012, 17:16

Мозги вправить. Эйнштейну
начало: придётся немного погнуть мозг чтобы понять увидеть этот мир с точки зрения времени и так...

Мозги для квадроцикла
Доброго времени суток, уважаемые форумчане! Встала тут такая задачка... Имеется детский...

Самодельные мозги контроллера
Думаю если вы перешли в эту тему, вы слышали про MJoy 16, MMJoy и подобные прошивки для arduino. Мб...

Куки мозги зомбируют
Вот пишу регистрацию, с этим все в порядке.НО!Сам куки записывается(setcoockie("u","admin")) а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.