URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 32508
[ Назад ]

Исходное сообщение
"natd не хочет ..."

Отправлено als , 21-Июл-03 09:11 
Доброе время!
Стоит FreeBSD 4.5
Появилась задача достучаться до внутренего компа из вне Free. Почитал факи, маны, пришел к выводу что надо natd. Засучил рукава и ...
После долгих мытарств облегчил задачу до следующей.
Внутренняя сеть. Хотим открыть порт 4932 на сервер с редиректом на 23 порт внутренней машины. Ядро скомпелировано на с опциями
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=10
options         IPDIVERT
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         DUMMYNET
в rc.conf прописано
gateway_enable="YES"
natd_enable="YES"
natd_interface="ed0"
natd_flags=""

делаем следующие команды:
ipfw add 150 divert 6666 tcp from 192.168.0.101 to 192.168.0.137 23 out
ipfw add 160 divert 7777 tcp from 192.168.0.137 23 to 192.168.0.101 in
ipfw add 200 allow tcp from any to any
natd -v -n rl0 -o 6666 -i 7777 -redirect_port tcp 192.168.0.137:23 4932

при telnet 192.168.0.101 4932 простой ответ
Trying 192.168.0.101...
telnet: connect to address 192.168.0.101: Connection refused
telnet: Unable to connect to remote host
и natd молчит.
Если запускать telnet 192.168.0.137, то сразу начинается движение
Out [TCP]  [TCP] 192.168.0.101:1091 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:1091 -> 192.168.0.137:23
In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:1091 aliased to
           [TCP] 192.168.0.137:23 -> 192.168.0.101:1091
Что же еще ему надо?


Содержание

Сообщения в этом обсуждении
"natd не хочет ..."
Отправлено A Clockwork Orange , 21-Июл-03 09:24 

>natd_interface="ed0"
                ~~~~~
>natd -v -n rl0 -o 6666 -i 7777 -redirect_port tcp 192.168.0.137:23 4932
         ~~~~~~
>

Так на каком все же интерфейсе natd запущен?


"natd не хочет ..."
Отправлено als , 21-Июл-03 09:37 
>
>>natd_interface="ed0"
>            
>    ~~~~~
>>natd -v -n rl0 -o 6666 -i 7777 -redirect_port tcp 192.168.0.137:23 4932
>         ~~~~~~
>>
>
>Так на каком все же интерфейсе natd запущен?
Исходя из запуска natd -v -n rl0 -o 6666 -i 7777 -redirect_port tcp 192.168.0.137:23 4932
то на rl0.


"natd не хочет ..."
Отправлено denb , 21-Июл-03 09:27 
>Доброе время!
>Стоит FreeBSD 4.5
>Появилась задача достучаться до внутренего компа из вне Free. Почитал факи, маны,
>пришел к выводу что надо natd. Засучил рукава и ...
>После долгих мытарств облегчил задачу до следующей.
>Внутренняя сеть. Хотим открыть порт 4932 на сервер с редиректом на 23
>порт внутренней машины. Ядро скомпелировано на с опциями
>options         IPFIREWALL
>options         IPFIREWALL_VERBOSE
>options         IPFIREWALL_VERBOSE_LIMIT=10
>options         IPDIVERT
>options         IPFIREWALL_DEFAULT_TO_ACCEPT
>options         DUMMYNET
>в rc.conf прописано
>gateway_enable="YES"
>natd_enable="YES"
>natd_interface="ed0"
>natd_flags=""
>
>делаем следующие команды:
>ipfw add 150 divert 6666 tcp from 192.168.0.101 to 192.168.0.137 23 out
>
>ipfw add 160 divert 7777 tcp from 192.168.0.137 23 to 192.168.0.101 in
>
>ipfw add 200 allow tcp from any to any
>natd -v -n rl0 -o 6666 -i 7777 -redirect_port tcp 192.168.0.137:23 4932
>
>
>при telnet 192.168.0.101 4932 простой ответ
>Trying 192.168.0.101...
>telnet: connect to address 192.168.0.101: Connection refused
>telnet: Unable to connect to remote host
>и natd молчит.
>Если запускать telnet 192.168.0.137, то сразу начинается движение
>Out [TCP]  [TCP] 192.168.0.101:1091 -> 192.168.0.137:23 aliased to
>           [TCP] 192.168.0.101:1091 -> 192.168.0.137:23
>In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:1091 aliased to
>           [TCP] 192.168.0.137:23 -> 192.168.0.101:1091
>Что же еще ему надо?

Я не понял, ты хочешь из инета на внутренний комп зайти?

Какой IP у сервера?
Какой IP у внутренней машины?


"natd не хочет ..."
Отправлено als , 21-Июл-03 09:39 
>>Доброе время!
>>Стоит FreeBSD 4.5
>>Появилась задача достучаться до внутренего компа из вне Free. Почитал факи, маны,
>>пришел к выводу что надо natd. Засучил рукава и ...
>>После долгих мытарств облегчил задачу до следующей.
>>Внутренняя сеть. Хотим открыть порт 4932 на сервер с редиректом на 23
>>порт внутренней машины. Ядро скомпелировано на с опциями
>>options         IPFIREWALL
>>options         IPFIREWALL_VERBOSE
>>options         IPFIREWALL_VERBOSE_LIMIT=10
>>options         IPDIVERT
>>options         IPFIREWALL_DEFAULT_TO_ACCEPT
>>options         DUMMYNET
>>в rc.conf прописано
>>gateway_enable="YES"
>>natd_enable="YES"
>>natd_interface="ed0"
>>natd_flags=""
>>
>>делаем следующие команды:
>>ipfw add 150 divert 6666 tcp from 192.168.0.101 to 192.168.0.137 23 out
>>
>>ipfw add 160 divert 7777 tcp from 192.168.0.137 23 to 192.168.0.101 in
>>
>>ipfw add 200 allow tcp from any to any
>>natd -v -n rl0 -o 6666 -i 7777 -redirect_port tcp 192.168.0.137:23 4932
>>
>>
>>при telnet 192.168.0.101 4932 простой ответ
>>Trying 192.168.0.101...
>>telnet: connect to address 192.168.0.101: Connection refused
>>telnet: Unable to connect to remote host
>>и natd молчит.
>>Если запускать telnet 192.168.0.137, то сразу начинается движение
>>Out [TCP]  [TCP] 192.168.0.101:1091 -> 192.168.0.137:23 aliased to
>>           [TCP] 192.168.0.101:1091 -> 192.168.0.137:23
>>In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:1091 aliased to
>>           [TCP] 192.168.0.137:23 -> 192.168.0.101:1091
>>Что же еще ему надо?
>
>Я не понял, ты хочешь из инета на внутренний комп зайти?
>
>Какой IP у сервера?
>Какой IP у внутренней машины?

Задачу облегчил. Решил проводить эксперимент снала с внутренними адресами.
Сервер 192.168.0.101
локалка 192.168.0.137
сетевая на сервере смотрящая внутрь - rl0.
К ней примотано еще несколько ip.


"natd не хочет ..."
Отправлено als , 21-Июл-03 10:13 
Вообще, как оно должно работать?
Точнее, что будет отвечать по порту обращения на алиас ip?
когда telnet конектится на 192.168.0.101 4932, кто слушает этот порт?

"natd не хочет ..."
Отправлено als , 21-Июл-03 11:24 
>Доброе время!
>Стоит FreeBSD 4.5
>Появилась задача достучаться до внутренего компа из вне Free. Почитал факи, маны,
>пришел к выводу что надо natd. Засучил рукава и ...
>После долгих мытарств облегчил задачу до следующей.
>Внутренняя сеть. Хотим открыть порт 4932 на сервер с редиректом на 23
>порт внутренней машины. Ядро скомпелировано на с опциями
>options         IPFIREWALL
>options         IPFIREWALL_VERBOSE
>options         IPFIREWALL_VERBOSE_LIMIT=10
>options         IPDIVERT
>options         IPFIREWALL_DEFAULT_TO_ACCEPT
>options         DUMMYNET
>в rc.conf прописано
>gateway_enable="YES"
>natd_enable="YES"
>natd_interface="ed0"
>natd_flags=""
>
>делаем следующие команды:
>ipfw add 150 divert 6666 tcp from 192.168.0.101 to 192.168.0.137 23 out
>
>ipfw add 160 divert 7777 tcp from 192.168.0.137 23 to 192.168.0.101 in
>
>ipfw add 200 allow tcp from any to any
>natd -v -n rl0 -o 6666 -i 7777 -redirect_port tcp 192.168.0.137:23 4932
>
>
>при telnet 192.168.0.101 4932 простой ответ
>Trying 192.168.0.101...
>telnet: connect to address 192.168.0.101: Connection refused
>telnet: Unable to connect to remote host
>и natd молчит.
>Если запускать telnet 192.168.0.137, то сразу начинается движение
>Out [TCP]  [TCP] 192.168.0.101:1091 -> 192.168.0.137:23 aliased to
>           [TCP] 192.168.0.101:1091 -> 192.168.0.137:23
>In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:1091 aliased to
>           [TCP] 192.168.0.137:23 -> 192.168.0.101:1091
>Что же еще ему надо?
Кажется нашел проблему.
В правилах ipfw нигде не сказано, что диверт надо делать с портом 4932.
поменял на
ipfw add 150 divert 6666 tcp from 192.168.0.101 4932 to any out
ipfw add 160 divert 7777 tcp from any to 192.168.0.101 4932 in

стали проходить пакеты IN, пакетов OUT пока не видно. Будем искать.


"natd не хочет ..."
Отправлено als , 21-Июл-03 12:25 
После применения такого:
ipfw add 150 divert 6666 tcp from 192.168.0.101 23 to any
ipfw add 160 divert 6666 tcp from any to 192.168.0.101 23
natd -v -n rl0 -p 6666 -m -s -redirect_port tcp 192.168.0.137:23 23

telnet 192.168.0.101
natd стал двигать это:
Out [TCP]  [TCP] 192.168.0.101:3055 -> 192.168.0.101:23 aliased to
           [TCP] 192.168.0.101:3055 -> 192.168.0.101:23
In  [TCP]  [TCP] 192.168.0.101:3055 -> 192.168.0.101:23 aliased to
           [TCP] 192.168.0.101:3055 -> 192.168.0.137:23

Что переделать, что бы ветка OUT пошла в нужное русло?


"natd не хочет ..."
Отправлено HFSC , 21-Июл-03 12:46 
>После применения такого:
>ipfw add 150 divert 6666 tcp from 192.168.0.101 23 to any
>ipfw add 160 divert 6666 tcp from any to 192.168.0.101 23
>natd -v -n rl0 -p 6666 -m -s -redirect_port tcp 192.168.0.137:23 23
>
>
>telnet 192.168.0.101
>natd стал двигать это:
>Out [TCP]  [TCP] 192.168.0.101:3055 -> 192.168.0.101:23 aliased to
>           [TCP] 192.168.0.101:3055 -> 192.168.0.101:23
>In  [TCP]  [TCP] 192.168.0.101:3055 -> 192.168.0.101:23 aliased to
>           [TCP] 192.168.0.101:3055 -> 192.168.0.137:23
>
>Что переделать, что бы ветка OUT пошла в нужное русло?

ipfw add 150 divert 6666 tcp from any to any 23
ipfw add 150 divert 6666 tcp from any 23 to any


"natd не хочет ..."
Отправлено als , 21-Июл-03 13:10 
>>После применения такого:
>>ipfw add 150 divert 6666 tcp from 192.168.0.101 23 to any
>>ipfw add 160 divert 6666 tcp from any to 192.168.0.101 23
>>natd -v -n rl0 -p 6666 -m -s -redirect_port tcp 192.168.0.137:23 23
>>
>>
>>telnet 192.168.0.101
>>natd стал двигать это:
>>Out [TCP]  [TCP] 192.168.0.101:3055 -> 192.168.0.101:23 aliased to
>>           [TCP] 192.168.0.101:3055 -> 192.168.0.101:23
>>In  [TCP]  [TCP] 192.168.0.101:3055 -> 192.168.0.101:23 aliased to
>>           [TCP] 192.168.0.101:3055 -> 192.168.0.137:23
>>
>>Что переделать, что бы ветка OUT пошла в нужное русло?
>
>ipfw add 150 divert 6666 tcp from any to any 23
>ipfw add 150 divert 6666 tcp from any 23 to any
лог изменился, но все так же :(

Out [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.101:23 aliased to
           [TCP] 192.168.0.101:3581 -> 192.168.0.101:23
In  [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.101:23 aliased to
           [TCP] 192.168.0.101:3581 -> 192.168.0.137:23
Out [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:3581 -> 192.168.0.137:23
In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:3581 aliased to
           [TCP] 192.168.0.137:23 -> 192.168.0.101:3581
Out [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:3581 -> 192.168.0.137:23


"natd не хочет ..."
Отправлено HFSC , 21-Июл-03 16:00 
>>>После применения такого:
>>>ipfw add 150 divert 6666 tcp from 192.168.0.101 23 to any
>>>ipfw add 160 divert 6666 tcp from any to 192.168.0.101 23
>>>natd -v -n rl0 -p 6666 -m -s -redirect_port tcp 192.168.0.137:23 23
>>>
>>>
>>>telnet 192.168.0.101
>>>natd стал двигать это:
>>>Out [TCP]  [TCP] 192.168.0.101:3055 -> 192.168.0.101:23 aliased to
>>>           [TCP] 192.168.0.101:3055 -> 192.168.0.101:23
>>>In  [TCP]  [TCP] 192.168.0.101:3055 -> 192.168.0.101:23 aliased to
>>>           [TCP] 192.168.0.101:3055 -> 192.168.0.137:23
>>>
>>>Что переделать, что бы ветка OUT пошла в нужное русло?
>>
>>ipfw add 150 divert 6666 tcp from any to any 23
>>ipfw add 150 divert 6666 tcp from any 23 to any
>лог изменился, но все так же :(
>
>Out [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.101:23 aliased to
>           [TCP] 192.168.0.101:3581 -> 192.168.0.101:23
>In  [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.101:23 aliased to
>           [TCP] 192.168.0.101:3581 -> 192.168.0.137:23
>Out [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.137:23 aliased to
>           [TCP] 192.168.0.101:3581 -> 192.168.0.137:23
>In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:3581 aliased to
>           [TCP] 192.168.0.137:23 -> 192.168.0.101:3581
>Out [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.137:23 aliased to
>           [TCP] 192.168.0.101:3581 -> 192.168.0.137:23

у тебя что еще запущено? диверт до natd идет который прописан в rc.conf? никаких ipnat не запущено?


"natd не хочет ..."
Отправлено als , 22-Июл-03 07:28 
>>>>После применения такого:
>>>>ipfw add 150 divert 6666 tcp from 192.168.0.101 23 to any
>>>>ipfw add 160 divert 6666 tcp from any to 192.168.0.101 23
>>>>natd -v -n rl0 -p 6666 -m -s -redirect_port tcp 192.168.0.137:23 23
>>>>
>>>>
>>>>telnet 192.168.0.101
>>>>natd стал двигать это:
>>>>Out [TCP]  [TCP] 192.168.0.101:3055 -> 192.168.0.101:23 aliased to
>>>>           [TCP] 192.168.0.101:3055 -> 192.168.0.101:23
>>>>In  [TCP]  [TCP] 192.168.0.101:3055 -> 192.168.0.101:23 aliased to
>>>>           [TCP] 192.168.0.101:3055 -> 192.168.0.137:23
>>>>
>>>>Что переделать, что бы ветка OUT пошла в нужное русло?
>>>
>>>ipfw add 150 divert 6666 tcp from any to any 23
>>>ipfw add 150 divert 6666 tcp from any 23 to any
>>лог изменился, но все так же :(
>>
>>Out [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.101:23 aliased to
>>           [TCP] 192.168.0.101:3581 -> 192.168.0.101:23
>>In  [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.101:23 aliased to
>>           [TCP] 192.168.0.101:3581 -> 192.168.0.137:23
>>Out [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.137:23 aliased to
>>           [TCP] 192.168.0.101:3581 -> 192.168.0.137:23
>>In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:3581 aliased to
>>           [TCP] 192.168.0.137:23 -> 192.168.0.101:3581
>>Out [TCP]  [TCP] 192.168.0.101:3581 -> 192.168.0.137:23 aliased to
>>           [TCP] 192.168.0.101:3581 -> 192.168.0.137:23
>
>у тебя что еще запущено? диверт до natd идет который прописан в
>rc.conf? никаких ipnat не запущено?
запущен squid, portsentry. Порт 23 на 192.168.0.101 в inet.conf закоментирован. Кроме divert и natd ничем не пользуюсь, так что ipnat нету. А как проверить идет диверт до натд или нет? Если в смысле диверт раньше натд запускается, то да. Все стартует из одного скрипта:

ipfw -f flush
ipfw add 150 divert natd tcp from any to any 23
ipfw add 150 divert natd tcp from any 23 to any
ipfw add 300 allow all from any to any
natd -v -u -a 192.168.0.101 -redirect_port tcp 192.168.0.137:23 23

если применить telnet 192.168.0.137, то получаем:

Out [TCP]  [TCP] 192.168.0.101:1068 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:1068 -> 192.168.0.137:23
In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:1068 aliased to
           [TCP] 192.168.0.137:23 -> 192.168.0.101:1068
Out [TCP]  [TCP] 192.168.0.101:1068 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:1068 -> 192.168.0.137:23
Out [TCP]  [TCP] 192.168.0.101:1068 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:1068 -> 192.168.0.137:23
In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:1068 aliased to
           [TCP] 192.168.0.137:23 -> 192.168.0.101:1068
Out [TCP]  [TCP] 192.168.0.101:1068 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:1068 -> 192.168.0.137:23
Out [TCP]  [TCP] 192.168.0.101:1068 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:1068 -> 192.168.0.137:23
In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:1068 aliased to
           [TCP] 192.168.0.137:23 -> 192.168.0.101:1068
Out [TCP]  [TCP] 192.168.0.101:1068 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:1068 -> 192.168.0.137:23
In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:1068 aliased to
           [TCP] 192.168.0.137:23 -> 192.168.0.101:1068
Out [TCP]  [TCP] 192.168.0.101:1068 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:1068 -> 192.168.0.137:23
In  [TCP]  [TCP] 192.168.0.137:23 -> 192.168.0.101:1068 aliased to
           [TCP] 192.168.0.137:23 -> 192.168.0.101:1068
Out [TCP]  [TCP] 192.168.0.101:1068 -> 192.168.0.137:23 aliased to
           [TCP] 192.168.0.101:1068 -> 192.168.0.137:23

и все работает.


"natd не хочет ..."
Отправлено spf , 22-Июл-03 08:48 
Проброс ftp-обращений к внутр. серверу сделан так

/etc/rc.conf:
  firewall_enable="YES"
  firewall_quiet="YES"
  natd_enable="YES"
  # xl0 - внутр. интерфейс
  natd_interface="xl0"
  natd_flags="-f /etc/natd.conf"

/etc/natd.conf:
  unregistered_only       yes                                                    
  redirect_port           tcp 192.168.0.3:ftp-data my.host.ru:ftp-data
  redirect_port           tcp 192.168.0.3:ftp my.host.ru:ftp


"natd не хочет ..."
Отправлено als , 22-Июл-03 08:51 
>Проброс ftp-обращений к внутр. серверу сделан так
>
>/etc/rc.conf:
>  firewall_enable="YES"
>  firewall_quiet="YES"
>  natd_enable="YES"
>  # xl0 - внутр. интерфейс
>  natd_interface="xl0"
>  natd_flags="-f /etc/natd.conf"
>
>/etc/natd.conf:
>  unregistered_only       yes
>  redirect_port          
> tcp 192.168.0.3:ftp-data my.host.ru:ftp-data
>  redirect_port          
> tcp 192.168.0.3:ftp my.host.ru:ftp


А диверт как описан?


"natd не хочет ..."
Отправлено Free , 22-Июл-03 23:22 
Если правильно понял, что тебе надо, то вот оно самое, что у меня работает.

Задача. К нам обращаются на порт 3333, мы отправляем кренделя на 1.2.3.4 6666. Имеем один фейс rl0.

Как это сделать:

1. ipfw add 50 divert 8668 ip from any to any via rl0

2. /sbin/natd -f /etc/natd.conf -n rl0

3. Содержимое /etc/natd.conf
   redirect_port tcp 1.2.3.4:6666 3333


"natd не хочет ..."
Отправлено als , 23-Июл-03 08:18 
>Если правильно понял, что тебе надо, то вот оно самое, что у
>меня работает.
>
>Задача. К нам обращаются на порт 3333, мы отправляем кренделя на 1.2.3.4
>6666. Имеем один фейс rl0.
>
>Как это сделать:
>
>1. ipfw add 50 divert 8668 ip from any to any via
>rl0
>
>2. /sbin/natd -f /etc/natd.conf -n rl0
>
>3. Содержимое /etc/natd.conf
>   redirect_port tcp 1.2.3.4:6666 3333
Не идет. Мне кажется, что собака зарыта где-то в другом. Все настройки диверт и натд уже перебрал. Заметил одну штуку, у меня ядро скомпелировано без опции
options         IPFIREWALL_FORWARD
может в этом дело?

"natd не хочет ..."
Отправлено Free , 24-Июл-03 01:27 
>Не идет. Мне кажется, что собака зарыта где-то в другом. Все настройки

Что значит "не идет". Если "не подходит" - это ладно. А если "не дает эффект", который должен давать и который был мною описан, то у тебя что-то не так. Проверь все заново.


"natd не хочет ..."
Отправлено als , 24-Июл-03 08:17 
>>Не идет. Мне кажется, что собака зарыта где-то в другом. Все настройки
>
>Что значит "не идет". Если "не подходит" - это ладно. А если
>"не дает эффект", который должен давать и который был мною описан,
>то у тебя что-то не так. Проверь все заново.
Не идет, значит все как было так и осталось. Обратно пакет не доходит. блин.
Проверяю и проверяю, конца и краю нету :(

"natd не хочет ..."
Отправлено spf , 23-Июл-03 06:20 
>А диверт как описан?

divert система сама подымает чере rc скрипты.