ProFTPD: Значение «TLS Verify Client» и «NoCertRequest» в конфигурации TLS

Я знаю, что по умолчанию FTP небезопасен, потому что он не зашифрован. Чтобы избежать этого небезопасного поведения FTP, я хочу настроить шифрование TLS в моем ProFTPD. В соответствии с этим руководством здесь: https://www.howtoforge.com/tutorial/install-proftpd-with-tls-on-ubuntu-16-04/ конфигурация tls в ProFTPD должна выглядеть следующим образом:

 <IfModule mod_tls.c>
TLSEngine                  on
TLSLog                     /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions                 NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile      /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile   /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient            off
TLSRequired                on
RequireValidShell          no
</IfModule>

Многие из этих директив говорят сами за себя, но я до сих пор не знаю, что означает директива TLSVerifyClient.

Согласно руководству ProFTPD:

Если выключено, Сеанс SSL / TLS, но не будет проверять сертификат.

Если включено, модуль будет проверять сертификат клиента и, кроме того, откажется от всех попыток установления связи SSL, если только клиент не представит сертификат, когда сервер запросит его.

Но я думал, что сертификат исходит от самого сервера, так почему сервер должен принимать запросы сертификатов от клиента?

и мой второй вопрос, что означает параметр "nocertrequest" в директиве TLSoption?

В соответствии с руководством ProFTPD, функция этой опции:

Известно, что некоторые FTP-клиенты не работают с ошибками при работе с сервером. запрос сертификата. Эта опция заставляет сервер не включать такие запрос во время установления связи SSL

Здесь тот же вопрос, почему сервер отправляет клиенту запрос сертификата, если у самого сервера есть TLS-сертификаты.

2
задан 20 February 2017 в 08:19
2 ответа

Директива TLSVerifyClient предназначена для аутентификации клиентов ( то есть «клиентская аутентификация» или «взаимная аутентификация»);он используется для определения того, будет ли mod_tls запрашивать сертификат у клиента, и должен ли этот предоставленный клиентом сертификат быть действительным ( TLSVerifyClient на ) или нет. ( TLSVerifyClient необязательно ). Некоторые сайты хотят использовать предоставленный клиентом сертификат для управления доступом; Например, будут разрешены только клиенты, представляющие сертификат от центра сертификации, которому доверяет сервер.

Исходная реализация mod_tls всегда включала бы запрос сертификата клиента, независимо от параметра TLSVerifyClient . Таким образом, был параметр TLSO «NoCertRequest» для отключения этого запроса сертификата клиента. Теперь, однако, параметр NoCertRequest TLSO устарел в пользу использования только параметра TLSVerifyClient ; см. Ошибка № 4213 .

Надеюсь, это поможет!

1
ответ дан 3 December 2019 в 10:35

Для более безопасного протокола вы можете рассмотреть возможность использования SFTP (который поддерживает proftpd). SFTP работает через SSH, поэтому полностью зашифрован. Вы можете найти этот связанный вопрос полезным. Это руководство по настройке proftpd для использования SFTP также может помочь.

2
ответ дан 3 December 2019 в 10:35

Теги

Похожие вопросы