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

Внешний доступ IIS 7.5 FTPS - политика 534 требует SSL

Я установил FTP-сайт, для которого требуется SSL, но когда я пытаюсь подключиться к нему извне, я получаю сообщение об ошибке:

220 Microsoft FTP Service 534 Политика требует SSL.

Знаю - так поставил! Почему он не получает сертификат SSL с сайта и не позволяет мне войти в систему ?!

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

Я подозреваю, что мне может быть нужен клиент, поддерживающий FTPS (FTP через SSL), а проводник Windows просто использует IE, которого нет. Но, попробовав FileZilla и WinSCP, я пошел немного дальше, но затем он зависает при согласовании TLS / SSL, ожидая ответа от сервера ...

ОБНОВИТЬ: Я пробовал (от: http://learn.iis.net/page.aspx/309/configuring-ftp-firewall-settings/):

  1. Настройте диапазон пассивных портов для службы FTP.
  2. Настройте внешний IPv4-адрес для определенного FTP-сайта.
  3. Настройте брандмауэр, чтобы служба FTP могла прослушивать все порты, которые она открывает.
  4. Отключение фильтрации FTP с отслеживанием состояния, чтобы брандмауэр Windows не блокировал FTP-трафик.

И все же я получаю (в FileZilla пробуя как активный, так и пассивный):

Status: Connecting to 203.x.x.x:21...
Status: Connection established, waiting for welcome message...
Response:   220 Microsoft FTP Service
Command:    AUTH TLS
Response:   234 AUTH command ok. Expecting TLS Negotiation.
Status: Initializing TLS...
Error:  Connection timed out
Error:  Could not connect to server

Журналы брандмауэра Windows бесполезно ничего не говорят ..

ОБНОВЛЕНИЕ2: Отключение брандмауэра не решает проблему.

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

ОБНОВЛЕНИЕ 3: Запуск FileZilla с локальным подключением через loopback работает в активном режиме, в пассивном режиме я могу:

Command:    LIST
Response:   150 Opening BINARY mode data connection.
Error:  GnuTLS error -53: Error in the push function.

Выключив брандмауэр на обоих концах, я все еще не могу подключиться к клиенту и получаю ту же ошибку, что и выше.

Вы правы, что нужны FileZilla или WinSCP. В основном эти настройки FTP говорят, что любой, кто пытается использовать обычный метод через порт 21, должен быть отклонен, и он не пытается восстановить другой тип подключения. Таким образом, IE и параметры командной строки не будут работать.

Хороший тест - установить FileZilla локально на FTP-сервер или на другой сервер, на котором нет промежуточного межсетевого экрана. Заставьте его работать там, чтобы доказать, что он работает, а затем начните смотреть на политику своего брандмауэра, чтобы его пропустить. Скорее всего, вы снова используете правило брандмауэра, которое блокирует динамические порты, необходимые для FTPS.

В FileZilla используйте «явный FTP через TLS» и проверьте в активном и пассивном режимах. Активный и пассивный требуют разных портов брандмауэра.

Я подозреваю, что у вас есть аналогичная проблема, с которой я сталкивался в прошлом, когда наше устройство пограничной безопасности было слишком полезным с FTP-соединениями. Короче говоря, если у вас есть современное корпоративное устройство UTM, попробуйте привязать TCP / 990 к вашему FTP-сайту и пропустить его через брандмауэр, если вы используете FTPS. Служба «Помощник FTP» в UTM может мешать, потому что она ожидает увидеть незашифрованный трафик, проходящий через TCP / 21.

Я написал запись в блоге с описанием проблемы и решений: http://www.lewisroberts.com/2010/08/06/scripting-ftpes-explicit-tlsssl-with-curl/

Вам также следует настроить диапазон пассивных портов FTP в IIS и открыть эти порты в брандмауэре. В IIS щелкните узел верхнего уровня (имя сервера), затем щелкните Поддержка брандмауэра FTP. Там определите диапазон портов, которые вы должны затем открыть в брандмауэре и перенаправить на FTP-сервер.

Скорее всего, вы можете проигнорировать части о cURL, но эй, возможно, вы найдете это полезным в будущем!

HTH

-Льюис

Для подтверждения: вам нужен клиент, поддерживающий FTPS. WinInet в Internet Explorer и FTP.EXE из командной строки Windows - нет.

Как насчет включения поддержки Clear Command Channel в подключении клиента ftps?

Этот пост соответствует моему предыдущему, но я хочу добавить больше информации. Вот несколько шагов, которые вы можете протестировать дальше (после обновления 3).

Для всего нижеперечисленного используйте локальный хост FileZilla

  • Попробуйте снова вернуть настройку пассивных портов, а затем проверьте на локальном компьютере. Локальный компьютер должен иметь возможность подключаться в активном и пассивном режимах.
  • Попробуйте установить для параметра SSL значение Разрешить, а не Требовать, просто чтобы исключить непонятное.
  • Попробуйте снова настроить новую учетную запись FTP и посмотрите, как это работает.
  • На всякий случай, вы ведь используете FTPES?

Напомним, что ваши настройки должны выглядеть примерно так: - Аутентификация FTP. анонимный отключен, базовый включен. - Правило авторизации FTP. Создайте правило «разрешить все» и удалите временное… только для тестирования. В какой-то момент произошла ошибка, которая не работала с определенными комбинациями пользователей для правила авторизации ... хотя она проявлялась как отказано в доступе, поэтому, вероятно, это не ваша проблема. - Обязательно тестируйте с учетной записью пользователя Windows (по сравнению с пользователем IIS), пока не сузите круг - Убедитесь, что у вашего пользователя Windows есть доступ к корневой папке FTP - Параметры FTP SSL должны быть Разрешены или Требуются для тестирования (требуется при работе ). Убедитесь, что ваш сертификат SSL действителен. Вы можете протестировать другой самозаверяющий сертификат, чтобы исключить это ... хотя, поскольку он работает в активном режиме, это, скорее всего, не проблема. - не используйте заголовки FTP (в привязках сайта), пока все остальное не заработает - Изоляция пользователя FTP: третий вариант вниз хорош во многих ситуациях, но самый верхний вариант - хороший простой для тестирования .

Я все еще считаю, что это связано с пассивными портами ftp или чем-то еще с брандмауэрами, поэтому многие из вышеперечисленных шагов не помогут, но не повредит их просмотреть.

Используете ли вы VPN или что-то еще между клиентской машиной и ftp-сервером? Это тоже может испортить пассивный FTP.

  1. Убедитесь, что вы настроили сертификат SSL в настройках FTP SSL на уровне сервера, и то же самое на уровне сайта. Почему-то сайт MS (https://learn.iis.net/page.aspx/304/using-ftp-over-ssl-in-iis-7/) показывает вам, как настроить сертификат в настройках FTP SSL только на сайте, а не на сервере и сайте. Этот блог мне помог: http://prestondev.wordpress.com/2012/02/24/iis-ftp-7-5-ftp-over-ssl-ftps-setup/

  2. Поскольку я использовал самозаверяющий сертификат, мне пришлось установить в FireZilla параметр «Требовать явный FTP через TLS». Затем он дал мне сообщение о том, что мое имя хоста не соответствует сертификату, которое я проигнорировал.

  3. Это не проблема брандмауэра или активного / пассивного устройства. Ваши журналы показывают, что вы можете установить канал управления через брандмауэр. Затем вы проведете согласование SSL и аутентифицируете, все еще находясь на канале управления. Как только это удастся, вы перейдете к настройке канала данных в активном или пассивном режиме, в зависимости от вашей конфигурации. Вот как будут выглядеть ваши журналы ...

    Status: Connecting to x.y.z.91:21...
    Status: Connection established, waiting for welcome message...
    Response:   220 Microsoft FTP Service
    Command:    AUTH TLS
    Response:   234 AUTH command ok. Expecting TLS Negotiation.
    Status: Initializing TLS...
    Status: Verifying certificate...
    Command:    USER ftp.myserver.com|ftpuser
    Status: TLS/SSL connection established.
    Response:   331 Password required for ftp.myserver.com|ftpuser.
    Command:    PASS *********
    Response:   230 User logged in.
    Command:    OPTS UTF8 ON
    Response:   200 OPTS UTF8 command successful - UTF8 encoding now ON.
    Command:    PBSZ 0
    Response:   200 PBSZ command successful.
    Command:    PROT P
    Response:   200 PROT command successful.
    Status: Connected
    Status: Retrieving directory listing...
    Command:    PWD
    Response:   257 "/" is current directory.
    Command:    TYPE I
    Response:   200 Type set to I.
    Command:    PASV
    Response:   227 Entering Passive Mode (x,y,z,91,194,245).
    Command:    LIST
    Response:   150 Opening BINARY mode data connection.
    ...
    

Удачи!