Конфигурирование Lightsail bitnami vsftpd пассивный

Я потратил очень много времени на это, и у меня это работало прошлой ночью. Пришел на работу сегодня утром и перестал работать (я единственная ИТ-поддержка, и я не внес никаких изменений).

Я настроил свой брандмауэр на AWS, как показано на рисунке ниже.

образ конфигурации межсетевого экрана aws

Сервер является сервером bitnami / ubuntu, размещенным на aws.

Я настроил vsftpd.conf как показано ниже

# Пример конфигурационного файла /etc/vsftpd.conF# # Скомпилированные в настройках настройки по умолчанию довольно параноидальны. Этот пример файла # немного ослабляет вещи, чтобы сделать демон ftp более удобным. # Пожалуйста, смотрите vsftpd.conf.5 для всех скомпилированных по умолчанию. # # ПРОЧИТАЙТЕ: этот пример файла НЕ является исчерпывающим списком параметров vsftpd. # Пожалуйста, прочитайте справочную страницу vsftpd.conf.5, чтобы получить полное представление о # возможностях vsftpd. # # # Запустить автономно?  vsftpd может запускаться либо из inetd, либо как отдельный # демон, запущенный из initscript.
listen=NO
#Passive Settings
#listen=yes
#
# Эта директива позволяет прослушивать сокеты IPv6. По умолчанию прослушивание # на "любом" адресе IPv6 (::) будет принимать подключения как от клиентов IPv6
#, так и от клиентов IPv4. Нет необходимости прослушивать * оба * сокета IPv4 и IPv6
#. Если вы хотите этого (возможно, потому что вы хотите прослушивать определенные # адреса), вы должны запустить две копии vsftpd с двумя # файлами конфигурации.
listen_ipv6=YES
#
# Разрешить анонимный FTP? (Отключено по умолчанию).
anonymous_enable=NO
#
# Раскомментируйте это, чтобы позволить локальным пользователям входить в систему.
local_enable=YES
#
# Раскомментируйте это, чтобы включить любую форму команды записи FTP.
write_enable=YES
#
# Значение umask по умолчанию для локальных пользователей: 077. Вы можете изменить это значение на 022,
# если ваши пользователи ожидают, что (022 используется большинством других ftpd)
#local_umask=022
#
# Раскомментируйте это, чтобы разрешить анонимный FTP Пользователь загружает файлы. Это только # имеет эффект, если активировано вышеуказанное глобальное разрешение записи. Кроме того, вам, очевидно, потребуется создать каталог, доступный для записи пользователю FTP.
#anon_upload_enable=YES
#
# Раскомментируйте это, если хотите, чтобы анонимный пользователь FTP мог создавать # новые каталоги.
#anon_mkdir_write_enable=YES
#
# Активировать сообщения каталога - сообщения, отправляемые удаленным пользователям, когда они # попадают в определенный каталог.
dirmessage_enable=YES
#
# Если включено, vsftpd будет отображать списки каталогов со временем # в вашем местном часовом поясе. По умолчанию отображается время по Гринвичу. # Время, возвращаемое командой MDTM FTP, также зависит от этой опции #.
use_localtime=YES
#
# Активировать запись загрузок / загрузок.
xferlog_enable=YES
#
# Убедитесь, что соединения для передачи PORT исходят от порта 20 (ftp-данные).
connect_from_port_20=YES
#
# Если хотите, вы можете сделать так, чтобы загруженные анонимные файлы принадлежали # другому пользователю. Заметка! Использование "root" для загружаемых файлов не рекомендуется!
#chown_uploads=YES
#chown_username=whoever
#
# Вы можете переопределить, куда идет файл журнала, если хотите. Значение по умолчанию показано # ниже.
xferlog_file=/var/log/vsftpd.log
#
# Если вы хотите, вы можете иметь свой файл журнала в стандартном формате ftpd xferlog. # Обратите внимание, что в этом случае местоположение файла журнала по умолчанию - /var/log/xferlog.
#xferlog_std_format=YES
#
# Вы можете изменить значение по умолчанию для тайм-аута незанятого сеанса.
#idle_session_timeout=600
#
# Вы можете изменить значение по умолчанию для тайм-аута подключения к данным.
#data_connection_timeout=120
#
# Рекомендуется определить в вашей системе уникального пользователя, которого сервер # ftp может использовать как полностью изолированный и непривилегированный пользователь.
#nopriv_user=ftpsecure
#
# Включите это, и сервер будет распознавать асинхронные запросы ABOR. Не # рекомендуется для безопасности (код нетривиален). Однако его отсутствие # может запутать старые FTP-клиенты.
#async_abor_enable=YES
#
# По умолчанию сервер делает вид, что разрешает режим ASCII, но фактически игнорирует # запрос. Включите приведенные ниже параметры, чтобы сервер фактически выполнял ASCII
# манипулирование файлами в режиме ASCII. # Помните, что на некоторых FTP-серверах поддержка ASCII допускает атаку типа "отказ в обслуживании" (DoS) с помощью команды "SIZE /big/file" в режиме ASCII. vsftpd # предсказал эту атаку и всегда был безопасен, сообщая о размере файла # raw.
# ASCII искажение - ужасная особенность протокола.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# Вы можете полностью настроить строку баннера входа в систему:
#ftpd_banner= Добро пожаловать в blah FTP-сервис. # # Вы можете указать файл запрещенных анонимных адресов электронной почты. Очевидно, # полезен для борьбы с определенными DoS-атаками.
#deny_email_enable=YES
# (по умолчанию следует)
#banned_email_file=/etc/vsftpd.banned_emails
#
# Вы можете ограничить локальных пользователей их домашними каталогами. Смотрите # часто задаваемые вопросы о возможных рисках в этом, прежде чем использовать chroot_local_user или # chroot_list_enable ниже.
#chroot_local_user=YES
#
# Вы можете указать явный список локальных пользователей для chroot() в их домашнюю директорию #. Если chroot_local_user имеет значение YES, тогда этот список становится списком из # пользователей, которые НЕ выполняют chroot().
# (Внимание! Chroot'ing может быть очень опасным. Если вы используете chroot, убедитесь, что у пользователя # нет доступа на запись в каталог верхнего уровня в # chroot)
#chroot_local_user=YES
#chroot_list_enable=YES
# (по умолчанию следует)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# Вы можете активировать опцию "-R" для встроенного ls. Это отключено по умолчанию #, чтобы удаленные пользователи не могли вызвать чрезмерный ввод / вывод на больших # сайтах. Однако некоторые неработающие FTP-клиенты, такие как "ncftp" и "mirror", предполагают наличие опции "-R", поэтому есть веские основания для ее включения.
#ls_recurse_enable=YES
#
# Настройка # # Некоторые настройки vsftpd по умолчанию не соответствуют разметке файловой системы. # # Эта опция должна быть именем каталога, который пуст. Кроме того, каталог # не должен быть доступен для записи пользователю ftp. Этот каталог # используется как защищенная тюрьма chroot(), иногда vsftpd не требует доступа к файловой системе #.
secure_chroot_dir=/var/run/vsftpd/empty
#
# Эта строка является именем службы PAM, которую будет использовать vsftpd.
pam_service_name=ftp
#
# Этот параметр указывает местоположение сертификата RSA, который будет использоваться для шифрованных соединений SSL
#.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

#
# Раскомментируйте это, чтобы указать, что vsftpd использует файлы utf8.
#utf8_filesystem=YES

# пользовательское ограничение userlist_file=/etc/vsftpd.userlist
userlist_enable=YES
userlist_deny=NO

# настройка пассивного / активного режима #port_enable=YES
pasv_enable=YES
pasv_min_port=1200
pasv_max_port=1250
pasv_address=xxx.xxx = x. если pasv_address_resolve=YES, pasv_address должен быть именем, например, ftp.blah.com
#pasv_addr_resolve=YES


seccomp_sandbox=NO

Вот что он показывает из filezilla:

Статус: Соединяется с xx.xx.xx.xx:21...
Статус: Соединение установлено, ожидание приветственного сообщения...
Состояние: сервер не поддерживает символы не ASCII.
Статус: авторизован
Статус: Получение списка каталогов...
Команда:    PWD
Ответ:   257 "/home/username" является текущим каталогом
Команда: ТИП I
Ответ:   200 Переключение в двоичный режим.
Команда:    PASV
Ошибка: не удалось прочитать из сокета: ECONNRESET - соединение сброшено узлом
Ошибка: отключен от сервера
Ошибка: не удалось получить список каталогов

Вывод из командной строки cmd:

bitnami@ip-xx.xx.xx.xx: ~ $ sudo ftp localhost
Подключен к localhost.
220 (vsFTPd 3.0.3)
Имя (localhost:bitnami): имя пользователя
331 Пожалуйста, укажите пароль.
Пароль:
230 Войти успешно.
Тип удаленной системы - UNIX.
Использование двоичного режима для передачи файлов.
ftp> ls
Команда 200 PORT успешна. Подумайте об использовании PASV.
150 Здесь идет список каталогов.
-rw-rw-r--    1 1002     1004          415 фев 08 15:30 1
226 Справочник отправить ОК.
ftp> пассивный
Пассивный режим включен.
ftp> ls
227 Вход в пассивный режим (0,0,0,0,4,224).
150 Здесь идет список каталогов.
-rw-rw-r--    1 1002     1004          415 фев 08 15:30 1
226 Справочник отправить ОК.
ftp> выход
221 До свидания.
bitnami@ip-xx.xx.xx.xx:~$ 

Я бы очень признателен за любую помощь, потому что я очень смущен.

Он работает в активном режиме, но сторонний может только FTP в пассивном режиме, поэтому мне это нужно для этого.

Заранее спасибо!

1 ответ

Настройте pasv_address (а также pasv_addr_resolve опции:

pasv_address

Используйте эту опцию, чтобы переопределить IP-адрес, который vsftpd объявит в ответ на команду PASV. Укажите числовой IP-адрес, если pasv_addr_resolve не включен, и в этом случае вы можете указать имя хоста, которое будет разрешено DNS при запуске.

По умолчанию: (нет - адрес берется из входящего подключенного сокета)

pasv_addr_resolve

Установите значение YES, если вы хотите использовать имя хоста (в отличие от IP-адреса) в параметре pasv_address.

По умолчанию: НЕТ

(Из http://vsftpd.beasts.org/vsftpd_conf.html)

На прошлой неделе я точно об этом говорил. Симптомы:

  • Использование FileZilla в активном режиме работает нормально
  • Использование автоматического или пассивного режима приводит к тайм-ауту или отказу в соединении
  • Пассивный адрес печатается как 0,0,0,0 в логах

настройка pasv_address к IP или к полному доменному имени при настройке passv_addr_resolve в yes решает эту проблему, так как позволяет клиенту подключаться к нужному месту назначения.

Другие вопросы по тегам