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

Как включить TLS 1.1 ** минимум ** на vsftpd

Я пытаюсь защитить свою инфраструктуру в соответствии со стандартом PCI-DSS с помощью securitymetrics.com. Стандарт требует использования минимум TLS 1.1 (с шифром CBC). TLS 1.0 не допускается.

Защищая ftp (vsftpd), я отключил sslv2 и sslv3, но не смог заблокировать TLS 1.0, не отключив также TLS 1.1 и TLS 1.2. В файл конфигурации имеет ssl_tlsv1 параметр, который может быть установлен на ДА или НЕТ, но я не вижу способа отличить 1.0 от более поздних версий.

Как включить только TLS 1.1 и выше?

Ответ не опубликован, поэтому я подумал, что буду следить за остальным ...

Чтобы отключить TLSv1.0 и включить TLSv1.1 и TLSv1.2, просто добавьте эти две строки и измените третью:

ssl_tlsv1_2=YES
ssl_tlsv1_1=YES
ssl_tlsv1=NO

Обратите внимание, что эти параметры доступны только в исправленной версии vsftpd, и, похоже, установлен только на CentOS, а именно не на Ubuntu. В других дистрибутивах также может быть исправленная версия.

Кажется, что текущая официальная версия 3.0.3 действительно отлично работает без патча RHEL, поскольку, похоже, вы можете ограничить подключение к TLSv1.2.
Как пишет @Chris Kennedy, вы можете установить следующую опцию в конфигурационном файле:

#Options: SSLv3, TLSv1.0, TLSv1.2, HIGH (see man ciphers)
ssl_ciphers=TLSv1.2

Результаты тестирования клиента WinSCP:

Установите для клиента значение Max SSL 3.0:
Ошибка подключения

Установите для клиента значение Max TLS 1.0:
Ошибка подключения

Установите клиент на Max TLS 1.1
Ошибка подключения

Установите для клиента значение Max TLS 1.2:
Подключение выполнено!

Журнал из WinSCP вер. 5.15.3 с подключением TLS 1.2:

...
. 2020-02-06 15:50:21.774 TLS connect: SSLv3 read server hello A
. 2020-02-06 15:50:21.775 TLS connect: SSLv3 read finished A
. 2020-02-06 15:50:21.775 TLS connect: SSLv3 write change cipher spec A
. 2020-02-06 15:50:21.775 TLS connect: SSLv3 write finished A
. 2020-02-06 15:50:21.775 TLS connect: SSLv3 flush data
. 2020-02-06 15:50:21.775 Using TLSv1.2, cipher TLSv1/SSLv3: ECDHE-RSA-AES256-GCM-        SHA384, 2048 bit RSA, ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
. 2020-02-06 15:50:21.775 TLS connection established

Я также поигрался с другими значениями опций TLSv1.2, TLSv1.0, SSLv3, и они, похоже, соблюдаются.

Опции vsftpd ssl_tlsv1_1 и ssl_tlsv1_2 похоже, было введено в патч под названием vsftpd-2.2.2-tlsv1_2.patch, который включен в исходный код vsftpd для дистрибутивов на основе RHEL (проверено на CentOS 7). Официальный веб-сайт vsftpd и исходный код из репозиториев Ubuntu, похоже, не включают этот патч или эти настраиваемые параметры (проверено в Ubuntu 18.04).

Чтобы ограничить VSFTPD до TLS 1.2, попробуйте установить: ssl_ciphers = TLSv1.2

Я не знаю, есть ли простой способ ограничить подключение к TLS 1.1 и 1.2.