====== FTPS ====== ===== Немного теории ===== [[ftp:ftps|FTPS]] -- расширение протокола FTP, функционально аналогичное https (для http) и включает полную поддержку TLS. Клиент запрашивает защищенную передачу данных у сервера и согласовывает шифрование. Если клиент не запросит защищенную передачу, FTPS сервер вправе как сохранить, так и закрыть незащищенное соединение. Наш FTP-сервер поддерживает как "простой" FTP, так и FTPS. Поэтому при настройке FTP-клиента необходимо убедиться, что он будет запрашивать защищенное соединение Этот вид конфигурации FTPS иногда называют **Явный или** **Explicit FTPS** (или **FTPES**), в противоположность [[https://tools.ietf.org/html/draft-murray-auth-ftp-ssl-07#appendix-A|устаревшему]] (но еще поддерживаемому некоторыми серверами и клиентами **Implicit FTPS**) Наш FTP-сервер поддерживает только **Explicit FTPS** и **TLS 1.2/1.3**. Учитывайте это при настройке FTP-клиента ===== Использование в FileZilla ===== Проверьте, что на вкладке //**Общие**// в //**Менеджере Сайтов**// выбрано шифрование //**использовать явный FTP через TLS если доступно**//. Для того, чтобы всегда использовалось только защищенное соединение, можно выбрать //**требовать FTP через TLS (явный)**//: {{gallery> fz-ftpes.png?300x300&lightbox}} \\ \\ \\ \\ \\ \\ \\ \\ При первом подключении //FileZilla// попросит проверить и принять сертификат сервера. В отличие от браузеров, //FileZilla// не проверяет наличие корневого сертификата в системе, вместо этого используя модель TOFU (Trust On First Use). На этом этапе имеет смысл сверить серийный номер (//**Детали/serial**//) и/или контрольную сумму сертификата. {{gallery> fz-tofu.png?300x300&lightbox}} Актуальный серийный номер нашего сертификата: **#@FTPS_SERIAL@#**\\ Контрольная сумма SHA-1: #@FTPS_SHA1@# Чтобы этот диалог более не появлялся, отметьте опцию //**Always trust this certificate in future sessions**// (//**Всегда доверять этому сертификату в дальнейшем**//) \\ \\ \\ \\ \\ ===== Альтернативный способ проверки ===== Выполнить команду \\ ''$ openssl s_client -starttls ftp -connect #@OUR_DOMAIN@#:21 /dev/null | openssl x509 -fingerprint -noout -in /dev/stdin'' \\ ...и проверить контрольную сумму: \\ ''SHA1 Fingerprint=#@FTPS_SHA1@#'' ===== Использование в файловых менеджерах ===== Большинство современных файловых менеджеров, исключая //Проводник Windows// поддерживают FTPS "из коробки". Достаточно ввести в адресной строке ''ftps:%%//%%**$USERNAME**@#@OUR_DOMAIN@#'' (где ''**$USERNAME**'' -- имя пользователя) и ввести пароль. Далее можно будет работать с файлами через FTPS так же, как с локальными. Вот так это выглядит в [[wp>Nemo_(file_manager)|Nemo]] (файловом менеджере среды рабочего стола Cinnamon): {{gallery> ftps-nemo.png?300x300&lightbox}} Рекомендуем добавить этот адрес в закладки файлового менеджера ===== Использование в lftp ===== Для принудительного FTPS в [[https://lftp.yar.ru/|lftp]] необходимо использовать следующие команды: ''**set ftp:ssl-force true; set ftps:initial-prot %%'%%P%%'%%;**''.\\ (Здесь и далее ''**жирным**'' выделены вводимые команды) ''$ **lftp #@OUR_DOMAIN@#**\\ lftp #@OUR_DOMAIN@#:~> **set ftp:ssl-force true;**\\ lftp #@OUR_DOMAIN@#:~> **set ftps:initial-prot %%'%%P%%'%%**;\\ lftp #@OUR_DOMAIN@#:~> **user megaseed**\\ Password:\\ lftp megaseed@#@OUR_DOMAIN@#:~> **ls**\\ -rw-r--r-- 1 megaseed seedbox 0 Mar 15 09:32 charset test - кириллица.txt'' {{section>:includes#lftp-tip}} ===== Достоинства и недостатки ===== * Так же, как и https, FTPS использует сертификаты [[wpru>X.509]], что позволяет (при наличии сертификата, подписанного CA) избежать уязвимостей типа [[wpru>Атака_посредника|MITM]]. * Если FTPS-сервер использует самоподписанные сертификаты и не публикует контрольных сумм своих ключей, то прямого и надежного способа проверить аутентификацию просто не существует. * Особенность протокола FTP, предусматривающая использование раздельных каналов для управляющего соединения и передачи данных, может потребовать дополнительной настройки файервола как на стороне сервера, так и на стороне клиента -- особенно в случае FTPS, когда фaйервол не может логически объединить физические сессии управления и передачи данных. * Ввиду долгой истории протокола FTP и разнообразия серверных и клиентских реализаций вопрос с согласованием кодировок между клиентом и сервером иногда приходится решать пользователю. Наш FTP-сервер использует порт //21// как для "простого" FTP, так и для FTPS. Это сделано для удобства настройки и для совместимости со старыми версиями FTP-клиентов ----- [[:ftp:SFTP|Читать далее: SFTP]] {{section>:includes#gethelp}}