Я пытаюсь защитить свою инфраструктуру в соответствии со стандартом 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 и выше?
Чтобы ограничить VSFTPD до TLS 1.2, попробуйте установить: ssl_ciphers = TLSv1.2
Я не знаю, есть ли простой способ ограничить подключение к TLS 1.1 и 1.2.
Ответ не опубликован, поэтому я решил проследить за остальными...
Чтобы отключить TLSv1.0 и включить TLSv1.1 и TLSv1.2, просто добавьте эти две строки и измените третью:
ssl_tlsv1_2=YES
ssl_tlsv1_1=YES
ssl_tlsv1=NO
Обратите внимание, что эти опции доступны только с исправленной версией vsftpd
, и похоже, что они установлены только на CentOS, а именно а не на Ubuntu. Другие дистрибутивы также могут иметь исправленную версию.
Параметры vsftpd для ssl_tlsv1_1
и ] ssl_tlsv1_2
, похоже, был введен в патч под названием vsftpd-2.2.2-tlsv1_2.patch, который включен в исходный код vsftpd для дистрибутивов на основе RHEL (проверено на CentOS 7). Официальный веб-сайт vsftpd и исходный код из репозиториев Ubuntu, похоже, не включают этот патч или эти настраиваемые параметры (проверено в Ubuntu 18.04).
Похоже, текущая официальная версия 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, и они, кажется, соблюдаются.