Конфигурирование 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
решает эту проблему, так как позволяет клиенту подключаться к нужному месту назначения.