FTP server на машине, на которой установлен WinRoute - PASV?

[ Ответ ] [ Послать ответ ] [ LAN конференция ]


200.45.177.112Автор:jardokraka
Февраль 21, 19102 в 01:16:04:

ЗАДАЧА:
добиться возможности для ftp-сервера принимать соединения из интернет не только по PORT, но и по PASV.

РАСКЛАД:

машина с win2000 pro, на ней установлен WinRoute 4.2 pro.

на машине 2 сетевые карты.

NIC 1: первая карта имеет фиксированный ip 10.0.10.1 (submask 255.255.255.0) и подключена к adsl-модему (WinRoute дополнительно видит еще и RAS-интерфейс/virtual ethernet adapter, который получает при каждом новом соединении с интернет новый динамический ip от провайдера);

NIC 2: вторая карта имеет фиксированный ip 10.0.0.1 (submask 255.255.255.0) и подключена к сетевой карте ноутбука (win2000 pro) (fixed ip 10.0.0.2). (на машине с WinRoute DHCP отключен, ибо в сети только две машины, так что ноутбук всегда получает ip 10.0.0.2.)

от ноутбука требуется лишь иметь доступ в сеть и в интернет, пользуясь соединенем основной машины, с чем он без проблем справляется. потому забудем о нем - там все работает.

основная же машина, на которой и установлен WinRoute, - по совместительству и рабочая. понятно, что это не лучший расклад, но - какой есть.

на большой машине с WinRoute установлен ftp server BFTPServer 2.15, слушающий ip 10.0.10.1 (фиксированный адрес сетевой карты, поключенной к adsl-модему). для того, чтобы к серверу извне можно было подключиться по PORT, нужны порты 20 и 21.

замечательно. идем в настройки WinRoute, делаем port mapping:

listen port >>> 20 и 21

listen ip >>> [ unspecified ]

protocol >>> tcp

destination ip >>> 10.0.10.1 (ip, на котором сидит ftp-сервер)

destination port >>> 20 и 21


теперь запросы, поступающие на внешний ip на порты 20 и 21 будут перекидываться на порты 20 и 21 на внутреннем ip 10.0.10.1, на коем и сидит ftp-сервер.

проверям - все работает. люди могут и upload, и download.

однако для меня довольно-таки важно разрешить соединение с ftp-сервером в пассивном режиме / pasv mode.

ну, идем в настройки ftp-сервера. определяем passive port range - 29680-29683 - и говорим, что ip для PASV будет X.X.X.X (внешний ip, полученный от провайдера при соединении, - придется изменять эту настройку в сервере при каждом переподключении к интернету).

теперь снова идем в WinRoute, port mapping - и говорим, что -

listen port >>> 29680-29683

listen ip >>> [ unspecified ]

protocol >>> tcp

destination ip >>> 10.0.10.1 (ip, на котором сидит ftp-сервер)

destination port >>> 29680-29683


теперь, когда клиент пытается открыть PASV извне, сервер скажет ему, что надо использовать ip X.X.X.X на портах от 29680 по 29683, а WinRoute переадресует эти запросы на эти же порты, но уже на ip 10.0.10.1, на котором работает ftp-server.

результат - не работает.

из security log'a WinRoute'a >>>

[19/Feb/2002 14:15:08] NAT: + proto:TCP, len:58, ip+port:129.177.90.54:38011 -> X.X.X.X:45007, flags: SYN ,
seq:11732426 ack:0, win:8192, tcplen:0
[19/Feb/2002 14:16:48] NAT: Attempt to establish TCP connection through NAT (in). The following line contains suspicious
packet dump:
[19/Feb/2002 14:16:48] NAT: + proto:TCP, len:58, ip+port:129.177.90.54:38358 -> X.X.X.X:45008, flags: SYN ,
seq:11732439 ack:0, win:8192, tcplen:0
[19/Feb/2002 14:16:49] NAT: Attempt to establish TCP connection through NAT (in). The following line contains suspicious
packet dump:
[19/Feb/2002 14:16:49] NAT: + proto:TCP, len:58, ip+port:129.177.90.54:38358 -> X.X.X.X:45008, flags: SYN ,
seq:11732439 ack:0, win:8192, tcplen:0

т.е. клиент пытался открыть соединение с ftp-сервером по pasv, но порты ему выдавались не из коридора 29680-29683, как было сконфигурировано, а просто случайные выше 1440. passive mode ip - X.X.X.X - был сообщен корректно.

отключаем WinRoute - все нормально - выдаются порты 29680-29683.

все мозги сломал. не работает pasv, а надо.

поможете?





Ответ



Послать ответ
Имя :
Mail:

Тема:

Коментарии:

Ссылка на URL:
Текст ссылки:
Ссылка на картинку:


[ Ответ ] [ Послать ответ ] [ LAN конференция ]