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

Подключение к пассивному FTP через SSL (ftps)

Я настроил FTP-службу в Windows Azure, используя это руководство http://www.itq.nl/blogs/post/Walkthrough-Hosting-FTP-on-IIS-75-in-Windows-Azure-VM.aspx

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

НО, когда я пытаюсь подключиться с помощью SSL (порт 21, AUTH TLS - Explicit, CuteFTP), я получаю тайм-аут. Когда я делаю то же самое дома, соединение работает (SSL). Что я делаю не так? Использует ли SSL-соединение другие порты?

Аутентификация работает нормально, это когда клиент отправляет команду LIST, наступает таймаут

STATUS:>    [11.02.2013 12:56:28] Using UTF-8.
STATUS:>    [11.02.2013 12:56:28] This site can resume broken downloads.
COMMAND:>   [11.02.2013 12:56:28] REST 0
        [11.02.2013 12:56:28] 350 Restarting at 0.
COMMAND:>   [11.02.2013 12:56:28] PBSZ 0
        [11.02.2013 12:56:28] 200 PBSZ command successful.
COMMAND:>   [11.02.2013 12:56:28] PROT P
        [11.02.2013 12:56:28] 200 PROT command successful.
COMMAND:>   [11.02.2013 12:56:28] PASV
        [11.02.2013 12:56:28] 227 Entering Passive Mode (***,**,**,201,27,92).
COMMAND:>   [11.02.2013 12:56:28] LIST
STATUS:>    [11.02.2013 12:56:28] Connecting FTP data socket... ***.**.**.201:7004...
ERROR:>     [11.02.2013 12:56:49] The connection failed due to an error or timeout.

Я читал что-то о проблемах с FTPS и NAT, но не совсем уловил

Ах, в этом больше смысла. Проблема здесь в двухканальном характере FTP, плюс шифрование, плюс (скорее всего) адаптивный межсетевой экран. по пути.

Когда управляющее соединение FTP запрашивает некоторые данные (включая список каталогов), создается новое соединение; от сервера к клиенту в АКТИВНОМ режиме (что редко) или от клиента к серверу в ПАССИВНОМ режиме (что чаще).

Детали этого соединения согласовываются по каналу управления, новое соединение открывается в направлении, соответствующем режиму, а затем данные передаются (я предполагаю, что это ПАССИВНЫЙ режим для остальной части этого ответа; все аналогично, но даже сложнее, если вы пытаетесь использовать АКТИВНЫЙ режим).

Если только там установлен брандмауэр. Если брандмауэр не разрешает произвольные TCP-соединения изнутри наружу, канал данных не может быть построен.

Если только брандмауэр умен и наблюдает за потоком управляющих данных, ища FTP PORT команда, которая является предшественником создаваемого канала данных. Затем умный брандмауэр откроет временное разрешение и / или сопоставление портов на время этого канала данных. Это часто называют адаптивный межсетевой экран.

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

Имеет ли это смысл? По сути, использование SSL, скорее всего, мешает вашему брандмауэру знать, что он должен быть умным в этом отношении, поэтому он работает без SSL в офисе и отлично работает из дома, где у вас, вероятно, нет такого сложного брандмауэра.

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