Страница 1 из 3

не получается natd -redirect_port

Добавлено: 2007-10-22 12:00:46
r0man_
Нужно локальный web сервер наружу выпустить. 8123 - порт наружу, 192.168.0.120:80 - внутренний web сервер
Читал здесь http://www.lissyara.su/?id=1127 и здесь http://www.lissyara.su/?id=1159
Однако у меня не работает, где-то что-то упустил:(

Запускаю нат:

Код: Выделить всё

#natd -m -s -n ed0 -redirect_port tcp 192.168.0.120:80 8123
ed0 - внешний интерфейс
Конфиги:

Код: Выделить всё

# ipfw show
00050     0       0 divert 8668 ip from 192.168.0.120 to any out via ed0
00055     0       0 divert 8668 ip from any to 1.1.1.1 in via ed0
00100 59171 8649127 allow ip from any to any
1.1.1.1 - внешний ip

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 12:32:57
dikens3
forwarding включён? (gateway_enable="YES")

P.S. Странно что у тебя ни в один NATD ни одного пакета нет.

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 12:36:13
Dmitriy.A
r0man_ писал(а):Нужно локальный web сервер наружу выпустить. 8123 - порт наружу, 192.168.0.120:80 - внутренний web сервер
Читал здесь http://www.lissyara.su/?id=1127 и здесь http://www.lissyara.su/?id=1159
Однако у меня не работает, где-то что-то упустил:(

Запускаю нат:
#natd -m -s -n ed0 -redirect_port tcp 192.168.0.120:80 8123
ed0 - внешний интерфейс
Конфиги:
# ipfw show
00050 0 0 divert 8668 ip from 192.168.0.120 to any out via ed0
00055 0 0 divert 8668 ip from any to 1.1.1.1 in via ed0
00100 59171 8649127 allow ip from any to any
1.1.1.1 - внешний ip
забей поюзай balance

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 13:02:45
r0man_
в rc.conf gateway_enable="YES" присутствует
еще где-то нужно что-нить добавлять для форвардинга?

На самом деле 55-е правило работает, а 50-е нет:

Код: Выделить всё

00050    0      0 divert 8668 log logamount 100 ip from 192.168.0.120 to any out via ed0
00055    3    144 divert 8668 log logamount 100 ip from any to 1.1.1.1 dst-port 8123 in via ed0
вот что выдает natd

Код: Выделить всё

#natd -m -s -n ed0 -redirect_port tcp 192.168.0.120:80 8123 -v
natd[827]: Aliasing to 1.1.1.1, mtu 1500 bytes
In  {default}[TCP]  [TCP] 172.00.01.01:2510 -> 1.1.1.1:8123 aliased to
           [TCP] 172.00.01.01:2510 -> 192.168.0.120:80
In  {default}[TCP]  [TCP] 172.00.01.01:2510 -> 1.1.1.1:8123 aliased to
           [TCP] 172.00.01.01:2510 -> 192.168.0.120:80
In  {default}[TCP]  [TCP] 172.00.01.01:2510 -> 1.1.1.1:8123 aliased to
           [TCP] 172.00.01.01:2510 -> 192.168.0.120:80
Почему-то 50-е правило не работает

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 13:31:20
dikens3
Это весь файрвол? Или ты считаешь что только это нужно для решения твоего вопроса?

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 14:01:06
r0man_
До недавнего времени, так и считал, но после многих безуспешных попыток уже считаю по-другому.
И все-таки, как будет правильно натить для моего случая?

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 14:03:34
schizoid
а divert в ядре скомпилен?

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 14:23:42
r0man_
schizoid писал(а):а divert в ядре скомпилен?
Да.

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 19:50:44
dikens3
ipfw -ad list в студию.

В правилах всё нормально. Скорее всего с расположением правил намудрил.

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 19:59:01
abanamat
натд умеет пробрасывать 80 -> 80, 25 -> 25; а 8123 -> 80 он не может. факт.

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 20:34:34
dikens3
Ну перед фактом не поспоришь, вопросов нет. :-)

Только смущает man natd, забыли поправить наверное.

Код: Выделить всё

For example, the argument

                       tcp inside1:telnet 6666

                 means that incoming TCP packets destined for port 6666 on
                 this machine will be sent to the telnet port on the inside1
                 machine.

                       tcp inside2:2300-2399 3300-3399

will redirect incoming connections on ports 3300-3399 to host
                 inside2, ports 2300-2399.  The mapping is 1:1 meaning port
                 3300 maps to 2300, 3301 maps to 2301, etc.

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 21:07:18
abanamat
угу. Сам-то пробовал? Я вот пробовал. 2 раза за последний год тупил по часу - почему это у меня согласно ману не работает? Наверно тупой сильно. Надо мозги допилить.
--
ну в смысле входящие-то пакеты он пробросит. А дальше? Обратка после натда идет с тем портом, который внутре, а не с тем, который охота получить.

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 21:26:49
dikens3
Конечно не пробовал, если бы пробовал тоже самое наверное сказал.

Re: не получается natd -redirect_port

Добавлено: 2007-10-22 21:29:42
abanamat
dikens3 писал(а):Конечно не пробовал, если бы пробовал тоже самое наверное сказал.
попробуй.

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 7:50:47
r0man_
abanamat писал(а):натд умеет пробрасывать 80 -> 80, 25 -> 25; а 8123 -> 80 он не может. факт.
Здесь написано, что получилось http://www.lissyara.su/?id=1159

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 8:13:24
r0man_
dikens3 писал(а):ipfw -ad list в студию.
В правилах всё нормально. Скорее всего с расположением правил намудрил.

Код: Выделить всё

 ipfw show
00050    0      0 divert 8668 ip from 192.168.0.120 to any out via ed0
00055    3    144 divert 8668 ip from any to 1.1.1.1 dst-port 8123 in via ed0
00100 183316938 93409181874 allow ip from any to any
ed0 - внешний интерфейс

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 8:58:54
vygov
Покажи конфиг фаера.

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 9:33:00
r0man_
vygov писал(а):Покажи конфиг фаера.

Код: Выделить всё

# ipfw show
00050     0       0 divert 8668 ip from 192.168.0.120 to any out via ed0
00055     0       0 divert 8668 ip from any to 1.1.1.1 in via ed0
00100 59171 8649127 allow ip from any to any
это и есть конфиг, больше никаких правил нет

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 10:22:57
vygov
Добавь првило сразу после divert:

Код: Выделить всё

$cmd add allow tcp from any to 192.168.0.120 80 in recv xl0
$cmd add allow tcp from any to 192.168.0.120 80 out via fxp0

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 10:31:31
vygov
Да и divert, честно говоря, странный. почему бы просто не написать:

Код: Выделить всё

$cmd add divert natd ip from any to any via $inet_if
$cmd add divert natd ip from any to any via $local_if
Вторую строчку можешь закомментить.

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 10:43:27
BAV_Lug
abanamat писал(а):натд умеет пробрасывать 80 -> 80, 25 -> 25; а 8123 -> 80 он не может. факт.
Не порите чушь, уважаемый. Все он умеет. И это не однократно проверено.

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 11:57:17
r0man_
vygov писал(а):Добавь првило сразу после divert:
$cmd add allow tcp from any to 192.168.0.120 80 in recv xl0
$cmd add allow tcp from any to 192.168.0.120 80 out via fxp0
кто из интерфейсов внешний а кто внутр.?

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 12:04:23
dikens3
Вобщем фаер должен быть такой:

Код: Выделить всё

00050     0       0 divert 8668 ip from any to any in via ed0
00075     0       0 divert 8668 ip from any to any out via ed0
00100 59171 8649127 allow ip from any to any
Для проверки самое оно.
Если не работает что-то, клади сюда вывод.

Проверь запущен ли natd.
покажи вывод:

Код: Выделить всё

sysctl net.inet.ip.forwarding
sysctl net.inet.ip.fw.enable

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 13:34:08
vygov
кто из интерфейсов внешний а кто внутр.?
Блин, свои интефейсы воткнул. Первый внешний, второй внутренний.
00050 0 0 divert 8668 ip from any to any in via ed0
00075 0 0 divert 8668 ip from any to any out via ed0
А не проще просто: divert 8668 ip from any to any via ed0 ?

Re: не получается natd -redirect_port

Добавлено: 2007-10-23 13:45:50
dikens3
Проще, но так понятнее что и куда приходит и как уходит(натится/разначивается).