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

Как обеспечить безопасные FTP-соединения (с сервером, который позволяет как безопасные, так и незащищенные)

Я разрабатываю процесс загрузки файлов на FTP-сервер конечными пользователями. Критическое требование - обеспечить безопасное соединение с сервером.

Я знаю, что многие клиентские приложения FTP могут создать безопасное FTP-соединение (например, FTPES или SFTP - и да, FTP-сервер поддерживает их), но это необязательный параметр в клиенте. Другими словами, мы можем попросить людей создать безопасные FTP-соединения, но не можем заставить их это сделать.

Я должен упомянуть здесь, что FTP-сервер принадлежит стороннему провайдеру, и если есть настройки сервера для обеспечения соединений FTPES или SFTP, мы не можем включить их.

Итак, вопрос в том, есть ли способ обеспечить безопасные FTP-соединения? Вот несколько предположений:

  1. Может быть, есть FTP-клиент, который заставляет использовать безопасное FTP-соединение, и я говорю конечным пользователям, что это единственный клиент, который они могут использовать. Это немного хромает!

  2. Возможно, есть FTP-клиент, который может получить данные о своем FTP-соединении (URL-адрес, протокол и логин) с удаленного сервера (то есть с сервера, который я контролирую), и поэтому я могу их диктовать, и конечный пользователь никогда их не видит.

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

Ваша третья идея кажется наиболее многообещающей: подумайте о Прокси-сервер FTP. Ваши пользователи подключаются к прокси с установленными вами требованиями к соединению, такими как шифрование, а прокси-сервер подключается к целевому серверу с параметрами, которые вы настраиваете.

Если вы не можете обеспечить соблюдение или аудит политики, вы не сможете заставить пользователей следовать ей. А структура безопасности настолько сильна, насколько сильна ее самое слабое звено.

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

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

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

Еще одним преимуществом этого подхода является то, что у вас есть своего рода «резервная копия» данных FTP и вы можете получить более быстрый локальный доступ к данным, а не переходить к ним через веб-каналы. Можно сэкономить на пропускной способности с помощью этого «ftp-прокси».

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

Я думаю, что действительно будет работать только многоэлементный подход.

Может быть, вы могли бы установить брандмауэр на сервере, чтобы он не принимал соединения через стандартный порт ftp?

Купите виртуальную машину где-нибудь подальше от вашей полосы пропускания / хранилища и сделайте то, что предлагает Барт.

(Под sftp я предполагаю, что вы имеете в виду sftp, связанный с ssh.)

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

Я предполагаю, особенно поскольку вы имеете в виду ftp-сервер третьей стороны, что службы ftp и sftp работают на соответствующих портах по умолчанию, которые отличаются. Можете ли вы настроить брандмауэры на остановку ftp-подключений к этому серверу, но разрешить передачу sftp / ssh?