Назад | Перейти на главную страницу

настройка пассивного порта vsftpd не применяется

Вкратце: он ДЕЙСТВИТЕЛЬНО подключается в пассивном режиме, но просто не использует порты, которые я пытаюсь использовать, несмотря на конфигурацию.

Настройки на pasv_max_port и pasv_min_port похоже, игнорируется, но я не вижу, что мешает vsftpd распознать или применить конфигурацию.

Я предпринял следующие действия:

  1. [Сервер] Отредактируйте vsftpd.conf и сохраните

    pasv_max_port=60000
    pasv_min_port=60003
    #Server's public IP (AWS EC2 Elastic IP)
    pasv_address=*.*.*.*  
    

    * Я пробовал несколько других комбинаций: они показаны ниже.

  2. [Сервер] Перезапустите vsftpd с service vsftpd restart

  3. [Клиент (Filezilla)] Подключитесь к *. *. *. * Через порт 22 в пассивном режиме. SSL и вход в систему все идет нормально, затем он возвращает это:

    Command:    PASV
    Trace:  CFtpControlSocket::OnReceive()
    Response:   227 Entering Passive Mode (*,*,*,*,254,73).
    

Похоже, он подключается к *.*.*.*:65097. (И этот номер порта меняется при каждой попытке, как будто я не установил диапазон портов для использования в пассивном режиме.) Разумеется, если я настрою свой брандмауэр на закрытие всего остального, кроме порта 22 и диапазона 60000-60003, это не так. не будем продолжать.

Я пробовал другие диапазоны, такие как 62010-62019, даже перезагружал Linux, но он по-прежнему ведет себя так же.

Это конфликт с iptables ?? (Я сомневаюсь в этом, поскольку моя машина работает на экземпляре AWS EC2, так что это похоже на работу за NAT, верно?)

Ничего похожего на мой вопрос не было найдено, поэтому я подумал, что, должно быть, делаю что-то глупое, но орфография была проверена буква к букве, а строки под конфигурацией pasv_address действительно вступает в силу (это не сработает, если я оставлю их пустыми и перезапущу vsftpd).


Моя цель - открыть только контролируемый диапазон портов для передачи данных, и это только для одного клиента с фиксированным IP-адресом. Это означает, что я могу просто перейти в активный режим и открыть порт 20 только для этого IP-адреса, однако просто для того, чтобы придерживаться старой конфигурации текущего FTP-сервера, который нужно заменить, я бы предпочел использовать пассивный режим. -> Только что выяснил, что это должен быть пассивный режим из-за соображений безопасности на стороне клиента.

.. любая идея?


До этого я пробовал их с несколькими другими vsftpd.conf, например

pasv_enable=YES
pasv_max_port=60000
pasv_min_port=60003
port_enable=YES
pasv_addr_resolve=YES
pasv_address=*.*.*.*

И с этим мне тоже не повезло. В настоящее время я просто придерживаюсь минимума строк, необходимых для таких вещей (например, pasv_enable является YES по умолчанию.)

Решено: @Zdenek из раздела комментариев заметил, что в моей конфигурации была глупая ошибка:

максимальный порт должен быть выше вашего минимального порта - @ Zdenek

Итак, исправление от

pasv_max_port=60000
pasv_min_port=60003

к

pasv_max_port=60003
pasv_min_port=60000

было все, что нужно было сделать.


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

Еще раз спасибо @Zdenek за проверку!