СПИСОК vsftpd вызывает ошибку GnuTLS -15

У меня есть система Arch Linux, работающая под управлением vsftpd, которая уже год работала с FTPES. В течение последних двух дней я заметил, что все мои FTP-клиенты не могут подключиться через FTPES. Когда я подключаюсь с помощью FileZilla 3.17.0 в Windows 7, я замечаю, что при отправке списка каталогов возникает ошибка GnuTLS -15:

Это пассивный FTPES с хостом, указанным с использованием IP-адреса WAN:

Status: Connecting to ###.###.###.###:21...
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is the current directory
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PASV
Response:   227 Entering Passive Mode (###,###,###,###,27,163).
Command:    LIST
Response:   150 Here comes the directory listing.
Error:  GnuTLS error -15: An unexpected TLS packet was received.
Error:  Disconnected from server: ECONNABORTED - Connection aborted
Error:  Failed to retrieve directory listing
Status: Disconnected from server

FileZilla затем повторяет попытку соединение с идентичными результатами, затем прекращает попытки подключения. Предыдущая версия FileZilla также показывала ошибку GnuTLS -110, хотя у меня нет сохраненного вывода, содержащего эту ошибку.

Я читал несколько сообщений, в которых предполагается, что эта проблема вызвана проблемой с пассивной конфигурацией FTP. Пассивный FTP работает на этом сервере уже некоторое время, и я не вносил никаких изменений в какие-либо соответствующие файлы конфигурации. Конечно, я пробовал подключиться в активном режиме. Все кажется нормальным, пока я не получаю ошибку команды Illegal PORT, после чего FileZilla снова пытается использовать пассивный.

Это «активный» FTPES с хостом, указанным с использованием WAN IP:

Status: Connecting to ###.###.###.###:21...
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is the current directory
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PORT 192,168,0,7,240,98
Response:   500 Illegal PORT command.
Command:    PASV
Response:   227 Entering Passive Mode (###,###,###,###,27,103).
Command:    LIST
Response:   150 Here comes the directory listing.
Error:  GnuTLS error -15: An unexpected TLS packet was received.
Error:  Disconnected from server: ECONNABORTED - Connection aborted
Error:  Failed to retrieve directory listing
Status: Disconnected from server

Проблема здесь, кажется, в том, хотя Я ввожу свой IP-адрес в глобальной сети, активный режим по-прежнему пытается использовать локальный IP-адрес в этой команде PORT. Другой FTP-клиент, FTP Client Pro версии 3.0.4 для iOS, выдает ошибку «Сервер, похоже, не поддерживает активный режим». Затем я попытался подключиться к своему серверу локально, и хотя на этот раз клиент не перешел в пассивный режим, ошибка TLS сохраняется.

Это активный FTPES с хостом, указанным с использованием локального IP:

Status: Connecting to 192.168.0.2:21...
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is the current directory
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PORT 192,168,0,7,240,129
Response:   200 PORT command successful. Consider using PASV.
Command:    LIST
Response:   150 Here comes the directory listing.
Error:  GnuTLS error -15: An unexpected TLS packet was received.
Error:  Disconnected from server: ECONNABORTED - Connection aborted
Error:  Failed to retrieve directory listing
Status: Disconnected from server

Наконец, я попытался подключение без использования шифрования. Хотя я избегаю этого, если это вообще возможно, я должен оставить поддерживаемые незашифрованные соединения, чтобы подключаться из некоторых ограниченных сетей. Как активные, так и пассивные настройки в FileZilla работают через общедоступный Интернет с отключенным шифрованием, хотя оба типа показывают одинаковый результат:

Это активный / пассивный простой FTP с хостом, указанным с использованием WAN IP:

Status: Connecting to 98.220.249.102:21...
Status: Connection established, waiting for welcome message...
Status: Logged in
Status: Retrieving directory listing...
Status: Calculating timezone offset of server...
Status: Timezone offset of server is 0 seconds.
Status: Directory listing of "/" successful

Поскольку этот сервер находится за маршрутизатор, он настроен так, что пассивный FTP не будет работать локально; см. vsftpd.conf ниже. Чтобы опробовать все возможности подключения, вот FileZilla ' s выход для создания активного, незашифрованного соединения локально. Это не удается, но меня это не особо беспокоит, поскольку я никогда не использую эту комбинацию настроек.

Это активный простой FTP с хостом, указанным с использованием локального IP:

Status: Connecting to 192.168.0.2:21...
Status: Connection established, waiting for welcome message...
Status: Logged in
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is the current directory
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PORT 192,168,0,7,240,195
Response:   200 PORT command successful. Consider using PASV.
Command:    LIST
Response:   150 Here comes the directory listing.
Response:   500 OOPS: priv_sock_get_cmd
Error:  Failed to retrieve directory listing
Error:  Connection closed by server

Вот мой /etc/vsftpd.conf без комментариев. По сути, это тот же файл, который я успешно использовал в течение прошлого года.

anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
port_enable=YES
connect_from_port_20=YES
ftpd_banner=Welcome to HOSTNAME (vsftpd on ArchLinux).
chroot_local_user=YES
allow_writeable_chroot=YES
listen=YES
ssl_enable=YES
force_local_logins_ssl=NO
force_local_data_ssl=NO
ssl_tlsv1=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/certs/vsftpd.pem
pasv_min_port=7000
pasv_max_port=7100
pasv_address=###.###.###.###

Последнее полное обновление моей системы Arch, до того, как я заметил эту проблему, было 17 апреля 2016 года и включало обновленные gnutls (3.4.10- 1 -> 3.4.11-1) . Последнее обновление до vsftpd было 9 марта 2016 г. (3.0.3-1 -> 3.0.3-2), поэтому вместо того, чтобы понижать только gnutls, я восстановил всю систему до ее состояния 9 марта 2016 г., используя Arch Linux Archive . Это не помогло, и впоследствии я обновил систему, чтобы она соответствовала текущим репозиториям. Представленные здесь выходные данные были созданы с использованием последней версии системы на дату публикации (23 апреля 2016 г.). Я не уверен, когда именно возникла эта ошибка, поскольку я не использую свой FTP-сервер достаточно часто, чтобы сразу заметить ее.

Как я уже говорил ранее, мои соответствующие конфигурации не изменились с момента последней работы моего FTP-сервера, за исключением изменения, внесенные для размещения информации здесь.

Моя цель - снова заставить пассивный FTPES работать через общедоступный Интернет. Это приемлемо, если я должен пожертвовать незашифрованным активным FTP, но я все же хотел бы оставить его доступным на те редкие моменты, когда он мне нужен. Что мне нужно сделать, чтобы это исправить?

2
задан 18 June 2016 в 15:26
1 ответ

Теги

Похожие вопросы