jardokraka
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ЗАДАЧА: добиться возможности для 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, а надо. поможете? |