Netbeans не может загрузить FTP при включенном шифровании

718
user1111929

Я недавно переключился на новый веб-хостинг, и они предлагают FTP вместо SFTP. Нет проблем, мой обычный клиент (WinSCP) справляется с этим безупречно, в том числе с (явным) шифрованием. Однако, когда я настраиваю NetBeans для автоматической загрузки файлов туда при сохранении с шифрованием, я получаю странную ошибку при включении inc.

220 ProFTPD Server ready. AUTH TLS 234 AUTH TLS successful USER my_username 331 Password required for my_username PASS ****** 230 User my_username logged in PBSZ 0 200 PBSZ 0 successful PROT P 200 Protection set to Private TYPE I 200 Type set to I CWD /domains/mydomain.org/public_html/dev2 250 CWD command successful PWD 257 "/domains/mydomain.org/public_html/dev2" is the current directory CWD /domains/mydomain.org/public_html/dev2/js 250 CWD command successful PASV 227 Entering Passive Mode (185,182,56,157,137,191). STOR examplefile.js.new 150 Opening BINARY mode data connection for examplefile.js.new 425 Unable to build data connection: Operation not permitted PASV 227 Entering Passive Mode (185,182,56,157,138,255). STOR examplefile.js.new 150 Opening BINARY mode data connection for examplefile.js.new 425 Unable to build data connection: Operation not permitted PASV 227 Entering Passive Mode (185,182,56,157,139,229). STOR examplefile.js.new 150 Opening BINARY mode data connection for examplefile.js.new 425 Unable to build data connection: Operation not permitted DELE examplefile.js.new 250 DELE command successful QUIT 221 Goodbye. 

Я не совсем понимаю. Я могу войти идеально и даже CWD / DELE, но я не могу загружать файлы? Некоторое прибегая к помощи указывало на то, что я переключаюсь в активный режим, но это просто приводит к вечному сообщению синхронизации, за которым следует тайм-аут. И это работает безупречно при отключении шифрования или даже при проверке «только процесса аутентификации с шифрованием». Но это не то, что я хочу, так как мне иногда нужно передавать пароли в виде открытого текста в моем конфигурационном файле PHP.

Как я могу заставить Netbeans корректно загружать файлы на мой хост, подобно тому, как это делают другие программы (например, WinSCP)? Я проверил логи WinSCP, и они также шифруют передачу данных.

0

1 ответ на вопрос

2
Steffen Ullrich

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

Этот вид анализа хорошо работает, если контрольное соединение не зашифровано. Но это не удается для зашифрованных управляющих соединений, поскольку брандмауэр больше не может видеть команды PORT и ответы на PASV в открытом виде и, таким образом, динамически создавать соответствующие правила брандмауэра для соединений данных. И это приводит к проблемам, которые вы видите.

Чтобы обойти эту FTPS (т. Е. FTP через SSL, в отличие от SFTP, который является передачей файлов по SSH), предусмотрена команда CCC, которую можно использовать для переключения канала управления обратно на очистку после выполнения аутентификации, что позволяет снова создать динамическое создание правил., Но похоже, что Netbeans не использует это. Я не знаком с возможностями конфигурации в Netbeans, но ищу варианты того, как включить шифрование только для аутентификации или подобного. Если таких опций нет, вам, вероятно, не повезло, и вам нужно либо отключить шифрование, либо ослабить брандмауэры, которые могут повлиять на трафик. Обратите внимание, что в некоторых случаях не существует настоящего брандмауэра, отвечающего за проблемы, кроме преобразования NAT, выполняемого маршрутизаторами или Интернет-провайдером, как правило, также в контексте мобильных подключений или подключений DS-Lite.

«ищите варианты, как включить шифрование только для аутентификации или подобного» -> эта опция есть, как я также писал в своем посте, и она работает с этим включенным, но теперь она не будет шифровать файлы, которые я загружаю, правильный? Не может быть намерения, что каждый может читать вместе, когда я загружаю или загружаю материал ... user1111929 6 лет назад 0
@ user1111929: теоретически управляющее соединение может быть переключено обратно в обычное состояние с помощью `CCC`, но передача файла все еще шифруется. Я не знаю, поддерживает ли Netbeans это, но если вы найдете `PROT P` в выходных данных отладки с успешным ответом от сервера, то вы знаете, что передача данных будет зашифрована. Steffen Ullrich 6 лет назад 0
К сожалению, похоже, что это не так: при активации «только шифрованного процесса аутентификации» вывод будет таким: https://pastebin.com/DnmXwEJ2, и он больше не будет содержать PROT P (хотя это было с этой опцией отключен). Итак ... я правильно понимаю, что это проблема Netbeans (а не проблема с моим хостом)? Должен ли я подать отчет об ошибке с ними или я могу что-нибудь сделать сам? user1111929 6 лет назад 0
@ user1111929: Если вы считаете, что это проблема NetBeans, или если вы считаете, что это невозможно, если ваш хост поддерживает SFTP вместо только FTP (S), или если вы считаете, что это проблема с вашим интернет-соединением из-за наличия брандмауэра и / или Решение проблемы с NAT зависит от вас - решение любой из них, вероятно, решит вашу проблему. Steffen Ullrich 6 лет назад 1

Похожие вопросы