0 votes
by (120 points)

Binding FTP server to port 21 (explicit mode)...
Binding FTP server to port 990 (implicit mode)...
Starting...
08:09:26.725 Info Server: Starting server.
08:09:26.749 Info Server: Listening for connections at 0.0.0.0:21.
08:09:26.758 Info Server: Listening for connections at 0.0.0.0:990.
08:09:26.765 Info Server: Server started.
FTP server has started and is ready to accept connections.
Log level changed to Debug.
08:09:57.435 Debug Server: Accepted FTP connection from 192.168.0.141:49165.
08:09:57.796 Info Server: FtpSession 1: Started on connection from 192.168.0.141:49165.
08:09:57.816 Debug Info: Starting session.
08:09:57.826 Debug Info: Control connection TLS mode is 'Explicit'.
08:09:57.827 Debug Info: Control connection protection mode is 'Optional'.
08:09:57.837 Debug Info: Data connection protection mode is 'Optional'.
08:09:57.872 Debug Response: 220 Rebex FTP Server ready.
08:09:57.950 Debug Info: Session started.
08:09:58.029 Debug Command: USER Cryptobox
08:09:58.075 Debug Response: 331 Password required for 'Cryptobox'.
08:09:58.096 Debug Command: PASS **********
08:09:58.130 Info Server: FtpSession 1: Authentication for 'Cryptobox' succeeded.
08:09:58.229 Debug FTP: Getting item info on '/': success.
08:09:58.232 Debug Response: 230 User 'Cryptobox' logged in.
08:09:58.244 Debug Command: TYPE A
08:09:58.262 Debug Response: 200 TYPE set to A.
08:09:58.375 Debug Command: PWD
08:09:58.379 Debug Response: 257 "/" is current directory.
08:09:58.388 Debug Command: PASV
08:09:58.441 Debug Info: PASV::binding.
08:09:58.447 Debug Info: PASV::listening(192.168.0.117:56825).
08:09:58.452 Debug Response: 227 Entering Passive Mode (192,168,0,117,221,249)
08:09:58.502 Debug Info: Established data connection to 192.168.0.141:49166 in passive mode.
08:09:58.519 Debug Command: TYPE I
08:09:58.519 Debug Response: 200 TYPE set to I.
08:09:58.531 Debug Command: LIST -l
08:09:58.576 Debug FTP: Getting item info on '/-l': not found.
08:09:58.576 Debug Response: 550 No such directory.
08:09:58.594 Debug Info: Discarding data connection.
08:09:58.684 Debug Info: Closing data connection.
08:09:58.685 Debug Command: QUIT
08:09:58.700 Debug Response: 221 Closing session.
08:09:58.730 Debug Info: Closing session.
08:09:58.755 Debug Info: Shutting down control connection.
08:09:58.764 Debug Info: Awaiting shutdown confirmation from remote end.
08:09:58.785 Debug Info: Shutdown confirmed by remote end.
08:09:58.789 Debug Info: Closing control connection.
08:09:58.812 Debug Info: Session closed.
08:09:58.817 Info Server: FtpSession 1: Closed connection from 192.168.0.141:49165.

Applies to: Rebex FTP/SSL

1 Answer

0 votes
by (75.4k points)

The connection is closed by the client explicitly after the initial directory listing fails. So, the question is why the initial directory listing fails?

The client issued command LIST -l which is not supported by Rebex FTP server. The supported format of the LIST command is (as defined in RFC 959):

LIST [<SP> <pathname>] <CRLF>

It seems that the client is trying to pass a -l option to the LIST command, which results to interpreting the -l as a <pathname> argument. Since the -l directory does not exist on the server the 550 No such directory response is sent to the client.

The -l option is a non-standard extension for the LIST command.

The currently possible solution is to disable sending -l option at the client side. However, we will consider to add support for -l and -a options, which seems to be used by some FTP clients. Please leave a comment here, if you want to receive preview version in case the support is added.

...