Я пытаюсь защитить свою инфраструктуру в соответствии со стандартом 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.