Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: ProFTPd не открывает соединение без отправки управляющей команды  (Прочитано 975 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pedrosoft

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Привет,

Столкнулся с интересной особенностью работы одного из клиентов. Этот FTP-клиент пытается установить соединение с хостом и портом, выданным командой PASV, сразу после получения ответа на нее и только после этого выдает управляющую команду для передачи данных. И это работает при использовании Filezilla Server, журнал подключений:
Цитировать
* OPEN CONNECTION #812652629
* OPEN - OK
>220 FileZilla Server 0.9.60 beta
* WELCOME - OK
--> FEAT
* FEAT - OK
--> AUTH TLS
>234 Using authentication type TLS
* CONNECT > SET SECURE
* TLS - OK
--> USER l0g0n
>331 Password required for l0g0n
--> PASS Pa$$w0rd
>230 Logged on
* LOGIN - OK
--> FEAT
* FEAT - OK
--> CWD IN
>250 CWD successful. "/IN" is current directory.
* CWD - OK
--> PBSZ 512
>200 PBSZ=0
* PBSZ - OK
--> PROT P
>200 Protection level set to P
* PROT - OK
--> STRU F
>200 Using file structure 'File'
--> MODE S
>200 MODE set to S.
--> TYPE A
>200 Type set to A
* FILE:STREAM:ASCII - OK
--> PASV
>227 Entering Passive Mode (xxx,xxx,202,2,196,9)
* PASV - 227 '227 Entering Passive Mode (xxx,xxx,202,2,196,9)'
* PASV - xxx.xxx.202.2:50185
* PASV xxx.xxx.202.2:50185
* CONNECT > SET SECURE
* OPEN CONNECTION #84008526
--> NLST
>425 Rejected data connection for transfer of "/IN", IP addresses of control and data connection do not match
* NLST - 425
* CLOSE CONNECTION #84008526 : -> xxx.xxx.202.2:50185
** TCP is OPEN
** DATA END ERR:ORA-29259: end-of-input reached
** CLOSE DATA LEN:0
** TCP_Close CONNECT 84008526
** TCP_Close CONNECT #84008526 - CLOSE
--> QUIT
>221 Goodbye
END>
* QUIT - OK
* CLOSE CONNECTION #812652629 : -> xxx.xxx.202.2:21
** TCP is OPEN
** DATA END ERR:ORA-29259: end-of-input reached
** CLOSE DATA LEN:0
** TCP_Close CONNECT 812652629
** TCP_Close CONNECT #812652629 - CLOSE
* CLOSE - OK

WORK : +000000000 00:00:04.187455000

Реализация ProFTPd не сразу открывает порт, а ожидает передачи следующей управляющей команды и только после этого открывает порт. В результате клиент ожидает открытия порта, а ProFTPd ожидает получения команды передачи, и обмен останавливается, а спустя таймаут обрывается:
Цитировать
* OPEN CONNECTION #87314348
* OPEN - OK
>220 Server
* WELCOME - OK
--> FEAT
--> AUTH TLS
>234 AUTH TLS successful
* CONNECT > SET SECURE
* TLS - OK
--> USER l0g0n
>331 Password required for l0g0n
--> PASS Pa$$w0rd
>230 Now upload/download files
* LOGIN - OK
--> FEAT
--> CWD IN
>250 CWD command successful
* CWD - OK
--> PBSZ 512
>200 PBSZ=0 successful
* PBSZ - OK
--> PROT P
>200 Protection set to Private
* PROT - OK
--> STRU F
>200 Structure set to F
--> MODE S
>200 Mode set to S
--> TYPE A
>200 Type set to A
* FILE:STREAM:ASCII - OK
--> PASV
>227 Entering Passive Mode (xxx,xxx,202,15,196,254).
* PASV - 227 '227 Entering Passive Mode (xxx,xxx,202,15,196,254).'
* PASV - xxx.xxx.202.15:50430
* PASV xxx.xxx.202.15:50430
ERROR : ORA-29276: transfer timeout
==================== ERROR ====================
ORA-06512: at "SYS.UTL_TCP", line 63
ORA-06512: at "SYS.UTL_TCP", line 297
ORA-06512: at "AI.UTL_FTP", line 518
ORA-06512: at "AI.UTL_FTP", line 583
ORA-06512: at "AI.UTL_FTP", line 1174
ORA-06512: at "AI.UTL_FTP", line 1217
ORA-06512: at line 95
ORA-29276: transfer timeout
* CLOSE CONNECTION #87314348 : -> ftp.server.org:21
** TCP is OPEN
** CLOSE DATA LEN:0
** TCP_Close CONNECT 87314348
** TCP_Close CONNECT #87314348 - CLOSE
* CLOSE - OK

Как я могу изменить поведение ProFTPd, чтобы служба не дожидалась управляющей команды?
« Последнее редактирование: 24 Октября 2021, 23:31:09 от pedrosoft »

 

Страница сгенерирована за 0.038 секунд. Запросов: 22.