LINUX.ORG.RU
решено ФорумAdmin

vsftpd + alpine = 500 Illegal PORT command.

 , ,


0

2

Доброго времени суток. Я установила на VirtualBox последнюю версию дистрибутива Alpine. Установила vsftpd для доступа к виртуалке. В настройках виртуалки включила перенаправление портов:

22020 -> 20
22021 -> 21
22022 -> 22

Подключение по ssh к адресу 127.0.0.1:22022 работает идеально, а подключение по ftp к адресу 127.0.0.1:22021 выдает ошибку 500 Illegal PORT command.

Вот лог клиента при подключении:

Connect to: (02.01.2017 13:09:33)
hostname=127.0.0.1:22021
username=******
startdir=
127.0.0.1=127.0.0.1
220 (vsFTPd 3.0.3)
USER ******
331 Please specify the password.
PASS ***********
230 Login successful.
SYST
215 UNIX Type: L8
FEAT
211-Features:
EPRT
EPSV
MDTM
PASV
REST STREAM
SIZE
TVFS
UTF8
211 End
HELP SITE
214-The following commands are recognized.
ABOR ACCT ALLO APPE CDUP CWD DELE EPRT EPSV FEAT HELP LIST MDTM MKD
MODE NLST NOOP OPTS PASS PASV PORT PWD QUIT REIN REST RETR RMD RNFR
RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD
XPWD XRMD
214 Help OK.
OPTS UTF8 ON
200 Always in UTF8 mode.
Connect ok!
PWD
257 «/» is the current directory
TYPE A
200 Switching to ASCII mode.
PASV
227 Entering Passive Mode (10,0,2,15,255,61).
Server reports local IP -> Redirect to: 127.0.0.1
PORT 127,0,0,1,196,161
500 Illegal PORT command.

Вот конфигурация vsftpd:

cat /etc/vsftpd/vsftpd.conf | grep -v ^#

anonymous_enable=no
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
listen=YES
seccomp_sandbox=NO
allow_writeable_chroot=YES
pasv_enable=YES

Помогите пожалуйста, в чем проблема?

Попробуй включить пассивный режим в клиенте

Deleted
()

PASV

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

Потому проще либо отключить пассивный режим, либо настроить виртуалку как шлюз (без трансляции адресов). Ну или пользоваться ssh (йим тоже можно файлы передавать)

Deleted
()
Ответ на: комментарий от Deleted

На стороне сервера выключила пассивный режим pasv_enable=NO и на стороне клиента также выключила пассивный режим. Все равно ругается Illegal PORT command :(

TikName
() автор топика
Ответ на: комментарий от Deleted

Есть, но ошибка теперь возникает ДО того как она появляется. Начало лога такое же, а конец вот:

TYPE A
200 Switching to ASCII mode.
PORT 127,0,0,1,201,69
500 Illegal PORT command.
PASV
550 Permission denied.
PORT 127,0,0,1,201,70
500 Illegal PORT command.

TikName
() автор топика
Ответ на: комментарий от Deleted

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

TikName
() автор топика
Ответ на: комментарий от TikName

ну возможно vsftpd выдает pasv в этом списке:

HELP SITE
214-The following commands are recognized.
и клиент пытается ее использовать

Deleted
()
Ответ на: комментарий от Deleted

А вас не смутило 127,0,0,1 ? Меня смутило. Активный - клиент сообщает свой порт (рандомный >1024) и при этом с ip 127.0.0.1. Пассивный - сервер сообщает свой порт (рандомный из диапазона конфига сервера). Не первый не второй вариант как-то в проброс портов ТС не укладывается.
ТС Я бы не заморачивался пробросом а настроил сеть например бриджем (или приватную между хостом и гостем) и обращался по соответствующим ip.

anc ★★★★★
()
Ответ на: комментарий от anc

Спасибо. Может действительно проблема в этом.

TikName
() автор топика
Ответ на: комментарий от anc

Да, так и есть. Проблема была в одинаковых айпишках. Виртуалка и фпт клиент одновременно пытались использовать 127.0.0.1

TikName
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.