Ftp через tls как настроить

FTPS и явный SSL/TLS

Настройка

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

Будьте настолько достоверными, насколько это возможно, т.к. от этого зависит надежность сертификата.

Размер ключа для сертификата может быть указан в верхней части интерфейса генератора: 1024 бита, 2048 бит, 4096 бит. Чем больше размер ключа, тем более надежным будет сгенерированный сертификат и обмен ключами в начале каждого соединения. Тем не менее, размер ключа также влияет на загрузку процессора при создании подключения. При применении шифрования сервер FileZilla будет нагружать процессор вычислениями для зашифровки отсылаемых данных и дешифровки принимаемых. Размер канала также влияет на загрузку процессора. Если у вас установлен медленный канал, к примеру около 1.5Mbps, вам не следует волноваться о нагрузке на процессор. Лучше всего определить нагрузку опытным путем.

Примите во внимание, что серверу нужно указать путь к файлам сертификатов:

Если вы сгенерировали ваш персональный ключ и сертификат без указания пути перед именем файла, сервер FileZilla впишет только имя файла в соответствующее поле сертификата без уведомления об ошибке, при этом позже вы будет получать сообщение «Невозможно загрузить файл сертификата» в логе сервера, если кто-то будет подключаться через неявный FTPS/ явный FTPES.

По этой причине вам всегда следует указывать полный путь к файлам с персональным ключом и сертификатом в соответствующих полях.

После того как вы создали сертификат, введите его имя и путь к директории в поле «Файл с персональным ключом».

Если ваш сервер подключен к интернету напрямую, дальнейшая настройка тривиальна, просто отметьте пункт «Включить поддержку SSL/TLS».

Узнать больше о FTPS вы можете здесь.

Настройка при использовании NAT

Обратитесь к руководству по настройке сети, если ваш сервер расположен за NAT.

Включение явного SSL/TLS

В меню настроек SSL/TLS отметьте пункт «Разрешить явный SSL/TLS для обычных подключений». При этом также рекомендуется поставить отметку для «Запретить нешифрованный FTP» и «Принудительно шифровать передачи файлов с помощью PROT P в режиме SSL/TLS». Если вы хотите разрешить шифрование только для определенных пользователей или групп, вы можете сделать это в редакторе пользователей и групп. Если вы все-таки хотите сделать доступными некоторые данные, вам следует отключить опции принудительного шифрования.

Источник

Протоколы SSL/TLS

Содержание

Настройка сервера

Откройте интерфейс администратора и перейдите к настройкам. Выберите в настройках SSL/TLS (FTPS) и затем выберите «Сгенерировать новый сертификат». Двухсимвольный код страны можно найти в Google (Соединенный Штаты обозначаются US; не запутайтесь, так как символы могут состоять не только из двух букв, но и из двух цифр).

Как только Вы создали сертификат и выбрали путь для его сохранения, клиент FileZilla автоматически заполнит файл с персональным ключом и поля файла сертификата для указания на общий сертификат.

На этом этапе Вы можете выбрать «Разрешить SSL/TLS по выбору пользователя» или «Всегда использовать SSL/TLS», а также «Не подключаться, если клиент не используется».

PROT P относится к передаче данных. Коммуникация с сервером всегда шифруется с использованием протокола SSL/TLS.

Зашифрованная коммуникация: PROT C, Коммуникация + Зашифрованные данные: PROT P.

Если использование PROT P не обязательно, клиент может отправить PROT C и передать файлы в незашифрованном виде. Если использование PROT P обязательно, PROT C отклоняется.

Настройка клиента

Хост для подключения клиента к серверу с использованием протокола SSL необходимо установить на FTPS. В клиенте FileZilla этот хост обозначен префиксом «FTPES://» для «неявного» FTPS, или «FTPS://» для обычного «явного» FTPS.

Удаление сертификата

Файл trustedcerts.xml содержит сертификаты для безопасных веб-сайтов, которые Вы обозначили как доверенные для FileZilla. Не перепутайте этот файл с другими сертификатами, которые Вы используете, если пользуетесь сервером FileZilla.

ОС Windows

Для удаления сохраненного сертификата перейдите к %APPDATA%\FileZilla и удалите, переименуйте или измените файл trustedcerts.xml .

Читайте также:  Как настроить электро гитар

ОС Linux

Для удаления сохраненного сертификата переименуйте или измените файл

Отличия между явным и неявным FTPS

FTPS (SSL/TLS) обслуживается в двух несовместимых режимах. При использовании явного FTPS клиент подключается к нормальному порту FTP и явно переключается в безопасный режим (SSL/TLS) при помощи «AUTH TLS», в то время как неявный FTPS является более старой версией, которая предполагает переход в режим SSL/TLS непосредственно после подключения (и, как правило, сигнал поступает на порт TCP 990, а не 21). В клиенте FileZilla этот хост обозначен префиксом «FTPES://» для подключения к «явному» серверу FTPS, или «FTPS://» для обычного «неявного» сервера (для которого Вам, скорее всего, понадобится настройка порта 990).

SSL/TLS (FTPS) в сравнении с SSH (SFTP)

Не перепутайте FTPS (FTP, зашифрованный при помощи SSL/TLS) с SFTP (SSH). SFTP совершенно другой протокол. Больше информации Вы сможете найти здесь.

Источник

Установка и Настройка Vsftpd с SSL/TLS на Ubuntu 20.04

Vsftpd (Very Secure FTP daemon) — это программное обеспечение FTP-сервера для Linux и других Unix — подобных систем. Программное обеспечение FTP — сервера облегчает передачу файлов с клиентского компьютера на сервер и наоборот.

В этой инструкции вы узнаете, как установить Vsftpd на Ubuntu 20.04, а так же как включить безопасную передачу файлов (FTPS) через SSL/TLS.

Требования к установке

  • Система Ubuntu 20.04 Linux
  • Пользователь с правами sudo
  • FTP-клиент с поддержкой SSL, такой как FileZilla

Установка Vsftpd на Ubuntu

Vsftpd доступен в репозитории пакетов Ubuntu по умолчанию. Вы можете начать с обновления доступных пакетов. Делается это с помощью следующей команды.

Затем выполните следующую команду для того чтоб установить Vsftpd.

Введите Y, если вам будет предложено продолжить установку.

После успешной установки Vsftpd вы можете проверить версию с помощью приведенной ниже команды.

Кроме того, проверьте состояние сервера Vsftpd, сделать это можно следующим образом.

Служба vsftpd уже должна быть активна. Нажмите кнопку q, чтобы вернуться в командную строку.

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

Настройка Vsftpd

Есть много вариантов, которые вы можете настроить для vsftpd, но в этой инструкции мы рассмотрим только основы. Откройте файл конфигурации vsftpd с помощью следующей команды.

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

Настройка анонимного FTP-доступа

По умолчанию анонимный FTP отключен. Мы рекомендуем оставить этот параметр по умолчанию как есть. Однако если по какой-либо причине вы хотите включить анонимный FTP-доступ, например для тестирования, измените значение параметра anonymous_enable с » NO» На «YES«.

А пока оставь все как есть.

Настройка анонимного FTP-доступа для vsftpd

Разрешить локальным пользователям входить в систему

По умолчанию локальным пользователям разрешен вход в систему. Если вы хотите запретить локальным пользователям входить на сервер Vsftpd, измените значение local_enable с YES на NO.

Разрешить локальным пользователям входить на сервер Vsftpd

Вы также можете разрешить только определенным локальным пользователям входить на сервер Vsftpd. Для этого убедитесь, что local_enable имеет значение YES.

После этого добавьте следующие строки внизу.

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Сохраните и закройте файл vsftpd.conf.

Далее создайте файл userlist со следующей командой и введите разрешенных пользователей по одному на строку.

Сохраните и закройте файл userlist.

Перезагрузите vsftpd с помощью:

Включить команду записи FTP

Чтобы разрешить пользователям FTP создавать, удалять, переименовывать и сохранять файлы, раскомментируйте параметр write_enable и убедитесь, что он установлен в значение YES.

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

Вход на сервер Vsftpd

Для этого создадим тестового пользователя и назначим пароль следующим образом.

$ sudo useradd -m myftpuser
$ sudo passwd myftpuser

Примечание: Если вы включили список пользователей vsftpd ранее, не забудьте добавить пользователя ftp в /etc/vsftpd.userlist . По умолчанию пользователи имеют ssh-доступ, рекомендуется отключить shell-доступ для FTP-пользователей.

Теперь запустите FTP-клиент с поддержкой SSL, такой как FileZilla, а затем войдите в систему с помощью вновь созданного тестового пользователя.

В моем случае FileZilla уведомила, что сервер небезопасен, так как он не поддерживает FTP через TLS.

Уведомление о небезопасном FTP — сервере

Отмените соединение. Давайте исправим это в следующем разделе.

Включите SSL/TLS для безопасной передачи файлов

Чтобы включить безопасную передачу файлов по протоколу TLS, выполните следующие действия.

Читайте также:  Если фен не работает что может быть

Во-первых, откройте конфигурационный файл vsftpd с помощью приведенной ниже команды.

Затем найдите параметры rsa_cert_file и rsa_private_key_file и обновите значения, как показано ниже.

Кроме того, найдите строку ssl_enable и измените значение на YES.

Сохраните и закройте файл конфигурации vsftpd.

Создать закрытый ключ и сертификат

Теперь вам нужно будет создать закрытый ключ и сгенерировать сертификат TLS/SSL с помощью openssl. Вы можете использовать бесплатный SSL-сертификат Let’s Encrypt, если у вас есть домен, указывающий на FTP-сервер.

Чтобы сгенерировать закрытый ключ, выполните команду:

$ sudo openssl genrsa -out /etc/ssl/private/vsftpd.key

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

$ sudo openssl req -new -key /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.csr

Теперь создайте и подпишите сертификат, который будет действителен в течение 365 дней следующим образом.

$ sudo openssl x509 -req -days 365 -in /etc/ssl/certs/vsftpd.csr -signkey /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.pem

Перезагрузите vsftpd с помощью:

Попробуйте снова подключиться к серверу Vsftpd.

Безопасное FTP соединение по протоколу TLS

Конечно, на этот раз FileZilla смогла безопасно подключиться через TLS. Вы можете смело выбрать вариант, чтобы всегда доверять этому сертификату в будущих сеансах. Затем нажмите кнопку ОК, чтобы продолжить подключение.

Доверительный самозаверяющий сертификат

Если вы попытаетесь подключиться к FTP-серверу через командную строку, которая не поддерживает FTP через TLS, вы получите сообщение об ошибке. Например:

Это еще одно доказательство того, что ваш сервер Vsftpd включен для безопасной передачи файлов по протоколу TLS.

Заключение

В этой инструкции мы показали вам, как установить сервер Vsftpd на Ubuntu 20.04. Мы также показали, как включить безопасную передачу файлов по протоколу TLS. Мы рассмотрели только основные параметры Vsftpd в этой статье, но вы можете изучить дополнительные параметры на странице руководства параметры конфигурации vsftpd.

Источник

Как настроить FTPS сервер на базе Windows Server 2012 R2

Все знают или должны знать что работа через протокол FTP увеличивает риски по перехвату передаваемых аутентификационных данных, т. к. отсутствуют какие-либо средства его защиты, т. е. Имеется реальная возможность перехвата логина и пароля на подключение. Чтобы защитить Ваш FTP сервер я бы порекомендовал настроить работу FTP через SSL или использовать связку FTP через SSH (SFTP). Ладно, ранее я показал и сам использую развернутый FTP сервис, как на Windows серверных системах, таких как Server 2008 R2 & Server 2012 R2 & Ubuntu Server. В самом последней системе я использую защиту, а вот как это сделать до сегодняшней заметки я не знал применительно к Windows системам, но задокумментировав все шаги по этому исправлению текущей ситуации я покажу Вам как это сделать.

В данной заметке все действия будут ориентированы на серверную систему Windows Server 2012 R2

Устанавливаем роль IIS (это будет версия: 8.5.9600.16384) с компонентами FTP см. предыдущую заметку, за исключение что для роли IIS потребуется поставить компоненты — я бы поставил все, дабы потом не искать чего не хватает. Но это мое мнение.

Win + X — Control Panel — Administrative Tools — Internet Information Service (IIS) Manager — SRV-HOST (SRV-HOST\Administrator) — Server Certificates, далее запускаю действия по созданию самоподписанного сертификата: Create Self-Signed Certificate

  • Specify a friendly name for the certificate: FTP over SSL
  • Select a certificate store for the new certificate: выбираю Web Hosting

Такими вот простыми действиями создается Ваш первый самоподписанный сертификат сроком на один год, как это проверить, он появился в элементе настройки Server Certificates

Теперь если вспомнить, когда создавали Ваш первый FTP ресурс не важно на базе Windows Server 2008 R2 или Server 2012 R2 в мастере присутствовала настройка выбора, как будет осуществляться защита ресурса, но т. к. у меня не было сертификата (я тогда даже не знал насколько просто создать свой собственный самоподписанный), я выбирал: SSL: No SSL, но теперь я смело указываю, что в роли защиты использовать:

Если FTP ресурс имеется: Sites — srv-host — FTP SSL Settings —

  • SSL Certificate: выбираю FTPoverSSL
  • SSL Policy: Require SSL Connections

и нажимаю Apply

Если FTP ресурса нет, то на этапе настройки безопасности все шаги выше идентичны.

Когда настройки применены должна быть надпись: The changes have been successfully saved.

Теперь проверяю, когда кто-либо подключается к FTP ресурсу, то при обычном вводе параметров подключения: ftp:\\IP&DNS в ответ получает лишь:

Читайте также:  Почему не работает курсплей

C:\Users\Admin>ftp IP&DNS

220 Microsoft FTP Service

Пользователь (IP&DNS:(none)): ftpuser1

534 Policy requires SSL.

или через утилиту telnet пробуем подключиться к FTP сервису с Windows 7 рабочей станции:

C:\Users\Admin>telnet 10.7.8.177 21

220 Microsoft FTP Service

534 Policy requires SSL.

С текущей серверной части где развернут сервис FTP:

C:\Users\Administrator>ftp 10.7.8.177

Connected to 10.7.8.177.

220 Microsoft FTP Service

User (10.7.8.177:(none)): ftpuser1

534-Policy requires SSL.

Win32 error: Access is denied.

Error details: SSL policy requires SSL for control channel.

Если с помощью программы FileZilla (версия: 3.25.1) происходит подключение, параметры нового соединения следующие с рабочей станции под управлением Windows 7 Pro SP1:

Пуск — Все программы — FileZilla FTP Client — FileZilla — Файл — Менеджер сайтов — Новый сайт:

  • Хост: 10.7.8.177
  • Порт: ничего не указываем
  • Протокол: FTP — Протокол передачи файлов
  • Шифрование: Требовать FTP через TLS (явный)
  • Тип входа: нормальный
  • Пользователь: ftpuser1
  • Пароль: Aa1234567@!
  • После нажимаю Соединиться

Но мой клиент FileZilla отказывается подключаться, в ответ пишет:

Ошибка GnuTLS -48: Key usage vilation in certificate has been detected.

Невозможно подключиться к серверу

А чтобы подключить с Ubuntu Trusty Server через консоль командной строки:

Connected to 10.7.8.177.

220 Microsoft FTP Service

Name (10.7.8.177:ekzorchik): ftpuser1

331 Password required

230 User logged in.

Remote system type is Windows_NT.

ftp> ls

200 PORT command successful.

125 Data connection already open; Transfer starting.

03-24-17 04:44PM dfdf

226 Transfer complete.

ftp> quit

Как видно подключение происходит без проблем, это если в настройках FTP ресурса стоит политика SSL Policy в значении: Allow SSL Connections, а если выставить в Require SSL Connections, то как раз происходит уведомление, что требуется подтверждение использования сертификата:

Connected to 10.7.8.177.

220 Microsoft FTP Service

Name (10.7.8.177:ekzorchik): ftpuser1

534 Policy requires SSL.

Remote system type is Windows_NT.

Раз так, то значит мне нужен клиент ftp для работы с сертификатами, ставлю его:

$ sudo apt-get install ftp-ssl -y

На заметку: устанавливая пакет ftp-ssl удаляется пакет ftp, т. е. Если это обычный ftp то подключиться уже к нему будет нельзя.

Connected to 10.7.8.177.

220 Microsoft FTP Service

Name (10.7.8.177:ekzorchik): ftpuser1

234 AUTH command ok. Expecting TLS Negotiation.

[SSL Cipher ECDHE-RSA-AES256-SHA384]

331 Password required

230 User logged in.

Remote system type is Windows_NT.

ftp> ls

200 PORT command successful.

534 Policy requires SSL.

ftp> ls

200 PORT command successful.

534 Policy requires SSL.

ftp> mkdir 1

257 «1» directory created.

ftp> quit

Подключение с Ubuntu системы прошло успешно.

Итого делаю вывод, что сервис настроенный на Windows с поддержкой самоподписанного сертификата работает, но вот подключиться к нему можно только с Linux системы, с рабочей станции при использовании пакета FileZilla не представляется возможным, почему-то пишет ошибку:

Ошибка GnuTLS -48: Key usage vilation in certificate has been detected.

Невозможно подключиться к серверу

Повторил еще раз данную заметку, если отключаю профили брандмауэера на Server 2012 R2 то могу подключиться с Ubuntu системы через утилиту ftp-ssl, а с Windows систем подключиться не могу. Бред. Нет не бред, это косяк клиента FileZilla самой последней версии (3.25.1) по другому я бы не сказал. Если поставить раннюю версию, к примеру: 3.2.7, то при подключении: File — Site Manager — New Site

вкладка: General

  • Host: 10.7.8.177
  • Servertype: FTPES — FTP over explicit TLS/SSL
  • Logontype: Normal
  • User: ftpuser1
  • Password: Aa1234567@!

нажимаю «Connect» и вот то окно которое должно сопровождать подключение свидетельствующее что FTP сервис защищен самоподписанным сертификатом и без него к нему нельзя будет подключиться.

На этой информации по сертификату видна дата окончания (через 1 год) и тип шифрования. Для следующего подключения дабы данное окно о сертификате не показывалось следует отметить галочкой настройку: Always trust certificate in future sessions и нажать кнопку Ok

Вот теперь работает. А все проблемы были из-за клиента под Windows, в частности самого последнего клиента утилиты FileZilla, только почему так. А потому я бы все же развернул FTP сервер на Ubuntu системе проблем бы с подключением было бы на порядок меньше. Но не важно, мне же главное иметь представление, как и что нужно сделать дабы защитить подключение клиента и сервера от перехвата и посягательств. На этом я прощаюсь, заметка выполнена, с уважением автор блога Олло Александр aka ekzorchik.

Источник

Оцените статью